壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2409|回复: 1

如何调试peoplecode?

[复制链接]
发表于 2008/11/28 09:19:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服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;
 楼主| 发表于 2008/12/9 21:18:46 | 显示全部楼层
ok,问题已经解决!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/28 23:36 , Processed in 0.014973 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表