|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622 。
您需要 登录 才可以下载或查看,没有帐号?注册
x
各位早上好,我现在用application Designer做psoft的report,请问各位一下,如何调试peoplecode,查找报错的原因?我以前是做delphi开发的,psoft中有类似delphi的单步调试功能吗,如没有的话,如何实现调试功能找peoplecode的bug?
Function WA016A_Inquiry_Validation()
Local Rowset &RS_COM, &RS_DEP; /*&RS_RES; &RS_EMP*/
Local string &Rec_Field, &Rec_Field1, &Field_Label, &Field_Label1, &Rec_Name, &Rec_Name1, &LabelID, &LabelID1; /*&Rec_Field2,&Field_Label2, &Rec_Name2,, &LabelID2*/
Local Field &Field, &Field1; /*, &Field2*/
Local Record &RC_COM, &RC_DEP; /*&RC_EMP;*/
Local Grid &GRID, &GRID1; /* &GRID2;*/
Local GridColumn &GRIDCOL, &GRIDCOL1;
Rem &GRIDCOL2;
&RS_COM = GetLevel0()(1).GetRowset(Scroll.YR_RUNCL_WA16AC);
&RS_DEP = GetLevel0()(1).GetRowset(Scroll.YR_RUNCL_WA16AD);
Rem &RS_EMP = GetLevel0()(1).GetRowset(Scroll.YR_RUNCL_WA16AE);
&YR_Found = "N";
&YR_FromDT = YR_RUNCL_WA016A.FROMDATE.Value;
&LabelID = "FROMDATE";
&Field_Label = YR_RUNCL_WA016A.FROMDATE.GetLongLabel(&LabelID);
If None(&YR_FromDT) Then
SetCursorPos(%Page, YR_RUNCL_WA016A.FROMDATE);
Error MsgGet(32000, 10, "Message not found", &Field_Label);
End-If;
&YR_ThruDT = YR_RUNCL_WA016A.THRUDATE.Value;
&LabelID1 = "ENDDATE";
&Field_Label1 = YR_RUNCL_WA016A.THRUDATE.GetLongLabel(&LabelID1);
If None(&YR_ThruDT) Then
SetCursorPos(%Page, YR_RUNCL_WA016A.THRUDATE);
Error MsgGet(32000, 10, "Message not found", &Field_Label1);
End-If;
If All(&YR_FromDT) And
All(&YR_ThruDT) And
(&YR_FromDT > &YR_ThruDT) Then
SetCursorPos(%Page, YR_RUNCL_WA016A.FROMDATE);
Error MsgGet(32000, 15, "Message not found", &Field_Label1, &Field_Label);
End-If;
Evaluate Upper(YR_RUNCL_WA016A.YR_OPTION_CD)
When "ALL"
/* Do Nothing */
Break;
When "COM"
&GRID = GetGrid(%Page, "YR_RUNCL_WA16AC");
&GRIDCOL = &GRID.GetColumn("COMPANY");
&Field_Label = &GRIDCOL.Label;
&RC_COM = &RS_COM(1).GetRecord(Record.YR_RUNCL_WA16AC);
&Rec_Name = &RS_COM.Name;
&Field = &RC_COM.GetField(Field.COMPANY);
&LabelID = "COMPANY";
&Rec_Field = &Rec_Name | "." | &Field.Name;
&YR_CompanyID = "";
For &J = 1 To &RS_COM.ActiveRowCount
&YR_CompanyID = &RS_COM(&J).YR_RUNCL_WA16AC.COMPANY.Value;
If All(&YR_CompanyID) Then
&YR_Found = "Y";
Break;
End-If;
End-For;
If &YR_Found = "N" Then
SetCursorPos(%Page, @(&Rec_Field), 1);
Error MsgGet(32000, 10, "Message not found", &Field_Label);
Break;
End-If;
Break;
When "DEP"
&GRID1 = GetGrid(%Page, "YR_RUNCL_WA16AD");
&GRIDCOL1 = &GRID1.GetColumn("DEPTID");
&Field_Label1 = &GRIDCOL1.Label;
&RC_DEP = &RS_DEP(1).GetRecord(Record.YR_RUNCL_WA16AD);
&Rec_Name1 = &RC_DEP.Name;
&Field1 = &RC_DEP.GetField(Field.DEPTID);
&LabelID1 = "DEPTID";
&Rec_Field1 = &Rec_Name1 | "." | &Field1.Name;
&YR_DeptID = "";
For &J = 1 To &RS_DEP.ActiveRowCount
&YR_DeptID = &RS_DEP(&J).YR_RUNCL_WA16AD.DEPTID.Value;
If All(&YR_DeptID) Then
&YR_Found = "Y";
Break;
End-If;
End-For;
If &YR_Found = "N" Then
SetCursorPos(%Page, @(&Rec_Field1), 1);
Error MsgGet(32000, 10, "Message not found", &Field_Label1);
Break;
End-If;
Break;
Rem When "EMP"
Rem
Rem &GRID2 = GetGrid(%Page, "YR_RUNCL_WA16AE");
Rem
Rem &GRIDCOL2 = &GRID2.GetColumn("EMPLID");
Rem
Rem &Field_Label2 = &GRIDCOL2.Label;
Rem
Rem
Rem
Rem &RC_EMP = &RS_EMP(1).GetRecord(Record.YR_RUNCL_WA16AE);
Rem
Rem &Rec_Name2 = &RC_EMP.Name;
Rem
Rem
Rem
Rem &Field2 = &RC_EMP.GetField(Field.EMPLID);
Rem
Rem &LabelID2 = "EMPLID";
Rem
Rem &Rec_Field2 = &Rec_Name2 | "." | &Field2.Name;
Rem
Rem &YR_EmplID = "";
Rem
Rem For &J = 1 To &RS_EMP.ActiveRowCount
Rem
Rem
Rem
Rem &YR_EmplID = &RS_EMP(&J).YR_RUNCL_WA16AE.EMPLID.Value;
Rem
Rem
Rem
Rem If All(&YR_EmplID) Then
Rem
Rem &YR_Found = "Y";
Rem
Rem Break;
Rem
Rem End-If;
Rem
Rem
Rem
Rem End-For;
Rem
Rem
Rem
Rem If &YR_Found = "N" Then
Rem
Rem SetCursorPos(%Page, @(&Rec_Field2), 1);
Rem
Rem Error MsgGet(32000, 10, "Message not found", &Field_Label2);
Rem
Rem Break;
Rem
Rem End-If;
Rem
Rem Break;
End-Evaluate; |
|