Dynpro错误对话框编程

2020-08-18 09:43发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我试图创建2个屏幕,屏幕9002...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我试图创建2个屏幕,屏幕9002是不可编辑的,屏幕9003是可编辑的,对于这2个屏幕,我使用了不同的变量,但使用了相同的ztables。 我正在显示9003 frm 9001屏幕PAI屏幕。

当我调用屏幕9003时,它引发了Dyn Pro错误,代码如下

 *&---------------------------------------------  ------------------------ *
 *&包括MZDLGPROG_03_REPORTTOP-模块池SAPMZDLGPROG_03_REPORT
 *&------------------------------------------------  --------------------- *
 程序SAPMZDLGPROG_03_REPORT。

 表格:ZEKKO_03,
         ZEKPO_03。

 控件:使用屏幕9002,""的TC_ZEKPO类型表视图,用于显示
           使用屏幕9003的TC_ZEKPO2类型表视图。""进行编辑


 数据:OK_CODE TYPE SY-UCOMM,
        ZEKKO_03的GT_ZEKKO类型表,
        GWA_ZEKKO TYPE ZEKKO_03,
        ZEKPO_03的GT_ZEKPO类型表,
        GWA_ZEKPO就像LINE OF gt_zekpo,
        GV_EBELN TYPE ZEBELN_EL。

 数据:
        ZEKKO_03的GT_ZEKKO2类型表,
        GWA_ZEKKO2 TYPE ZEKKO_03,
        ZEKPO_03的GT_ZEKPO2类型表,
        GWA_ZEKPO2类似于LINE OF gt_zekpo。


 数据:f1 TYPE char1,
       gv_tabix TYPE sy-tabix。
 *&---------------------------------------------  ------------------------ *
 *&包括MZDLGPROG_03_REPORTO01
 *&------------------------------------------------  --------------------- *

 *&------------------------------------------------  --------------------- *
 *&模块STATUS_9001输出
 *&------------------------------------------------  --------------------- *
 *&
 *&------------------------------------------------  --------------------- *
 模组STATUS_9001输出。
  设置PF-STATUS'ZSTATUS'。
  设置标题栏" ZTITLE"。
 ENDMODULE。

 *&------------------------------------------------  --------------------- *
 *&模块STATUS_9002 OUTPUT
 *&------------------------------------------------  --------------------- *
 *&
 *&------------------------------------------------  --------------------- *
 MODULE STATUS_9002 OUTPUT。
  设置PF-STATUS'ZSTATUS'。
  设置标题栏" ZTITLE1"。
 ENDMODULE。

 *&------------------------------------------------  --------------------- *
 *&模块STATUS_9002 OUTPUT
 *&------------------------------------------------  --------------------- *
 *&
 *&------------------------------------------------  --------------------- *
 MODULE STATUS_9003 OUTPUT。
  设置PF-STATUS'ZSTATUS'。
  设置标题栏" ZTITLE2"。
 ENDMODULE。
 *&------------------------------------------------  --------------------- *
 *&模块FETCH_DATA OUTPUT
 *&------------------------------------------------  --------------------- *
 *&
 *&------------------------------------------------  --------------------- *
 模块FETCH_DATA输出。

 如果f1 <> 1。

 SELECT ebeln lifnr ekorg ekgrp bukrs waers zterm zdesc FROM zekko_03
   表格gt_zekko的对应字段
   其中ebeln = gwa_zekko-ebeln。

 选择单个ebeln lifnr ekorg ekgrp bukrs waers zterm zdesc从zekko_03
   gwa_zekko的对应字段
   其中ebeln = gwa_zekko-ebeln。

 读取表gt_zekko INTO gwa_zekko索引sy-tabix。

 SELECT EBELP MATNR怪异LGORT Menge Meins
   来自zekpo_03的表格gt_zekpo的对应字段
    其中ebeln = gwa_zekko-ebeln。

 其他。

   如果gv_tabix不是INITIAL。
       删除gt_zekko索引gv_tabix。
       删除gt_zekpo索引gv_tabix。
   万一。
 万一。



 ENDMODULE。

 *&------------------------------------------------  --------------------- *
 *&模块FETCH_DATA_EDIT输出
 *&------------------------------------------------  --------------------- *
 *&
 *&------------------------------------------------  --------------------- *
 MODULE FETCH_DATA_EDIT输出。
 *设置PF-STATUS'xxxxxxxx'。
 * SET TITLEBAR'xxx'。

   SELECT ebeln lifnr ekorg ekgrp bukrs waers zterm zdesc FROM zekko_03
   表格gt_zekko的对应字段
   其中ebeln = gwa_zekko-ebeln。

 选择单个ebeln lifnr ekorg ekgrp bukrs waers zterm zdesc从zekko_03
   gwa_zekko的对应字段
   其中ebeln = gwa_zekko-ebeln。

 读取表gt_zekko INTO gwa_zekko索引sy-tabix。

 SELECT EBELP MATNR怪异LGORT Menge Meins
   来自zekpo_03的表格gt_zekpo的对应字段
    其中ebeln = gwa_zekko-ebeln。

 ENDMODULE。
 *&---------------------------------------------  ------------------------ *
 *&模块USER_COMMAND_9003 INPUT
 *&------------------------------------------------  --------------------- *
 *文字
 * -------------------------------------------------  --------------------- *
 模组USER_COMMAND_9003输入。
 *案例ok_code。
 *
 *结束。

 ENDMODULE。
 *&------------------------------------------------  --------------------- *
 *&包括MZDLGPROG_03_REPORTI01
 *&------------------------------------------------  --------------------- *
 *&------------------------------------------------  --------------------- *
 *&模块USER_COMMAND_9002 INPUT
 *&------------------------------------------------  --------------------- *
 *文字
 * -------------------------------------------------  --------------------- *
 模组USER_COMMAND_9002输入。
   情况为OK_CODE。
     当"返回"时。
       设置屏幕0。
       离开屏幕0。

        当" DEL"。
     获取光标行gv_tabix。
     f1 = 1。
    呼叫屏幕9002。

 *在gt_zekpo的WHERE MARK ='X'处循环。
 *删除gt_zekpo。
 * ENDLOOP。
 *如果SY-SUBRC <> 0。
 *获取光标字段FLD线LINNO偏移量OFF。
 *设置光标字段FLD线LINNO偏移量OFF。
 *如果FLD CP'GT_ZEKPO *'并且SY-SUBRC = 0。
 * LINNO = LINNO + TC_ZEKPO-TOP_LINE-1。
 *删除GT_ZEKPO索引LINNO。
 * TC_ZEKPO-LINES = TC_ZEKPO-LINES-1。
 *        万一。
 *      万一。


 *使用键gwa_zekko-ebeln读取gt_zekko到gwa_zekko中。
 *如果gwa_zekko-ebeln不是INITIAL。
 *从表gt_zekko中删除ZEKKO_03。
 *从表gt_zekpo中删除zekpo_03。
 *      万一。

   结束。

 ENDMODULE。
 *&------------------------------------------------  --------------------- *
 *&模块MODIFY_IT_ZEKPO INPUT
 *&------------------------------------------------  --------------------- *
 *文字
 * -------------------------------------------------  --------------------- *
 模组MODIFY_GT_ZEKPO输入。
   从gwa_zekpo2修改gt_zekpo2
   索引TC_ZEKPO2-CURRENT_LINE。

 ENDMODULE。
 *&------------------------------------------------  --------------------- *
 *&模块USER_COMMAND_9001 INPUT
 *&------------------------------------------------  --------------------- *
 *文字
 * -------------------------------------------------  --------------------- *
 模组USER_COMMAND_9001输入。



   情况为OK_CODE。
     当"返回"或"退出"或"取消"时。
       离开程序。
     当"删除"时。
       如果GWA_ZEKKO-EBELN是INITIAL。
         信息"请输入文件编号" TYPE" E"。
       其他。
         致电屏幕9002。
       万一。

     当"显示"时。
             如果GWA_ZEKKO-EBELN是INITIAL。
         信息"请输入文件编号" TYPE" E"。
       其他。
         致电屏幕9002。
       万一。

     当"创建"时。
       呼叫屏幕9003。<<<<以显示可编辑屏幕


   结束。

 ENDMODULE。

(25.4 kB)
付费偷看设置
发送
7条回答
梦想连接
1楼-- · 2020-08-18 10:15

您好,您可以对以下代码提供一些注释吗? ,从逻辑上讲有意义或不有意义的地方以及代码的顺序,请欣赏

 *&---------------------------------------------  ------------------------ *
 *&模块池SAPMZDLGPROG_03_REPORT
 *&------------------------------------------------  --------------------- *
 *&
 *&------------------------------------------------  --------------------- *

 *包括MZDLGPROG_03_REPORTTOP。 全球数据
 *
 *包括MZDLGPROG_03_REPORTO01。  PBO模块
 *包括MZDLGPROG_03_REPORTI01。  PAI模块
 *包括MZDLGPROG_03_REPORTF01。 表格程序

 *&------------------------------------------------  --------------------- *
 *&包括MZDLGPROG_03_REPORTTOP-模块池SAPMZDLGPROG_03_REPORT
 *&------------------------------------------------  --------------------- *
 程序SAPMZDLGPROG_03_REPORT。

 表格:ZEKKO_03,
         ZEKPO_03。

 控件:使用屏幕9002,""的TC_ZEKPO类型表视图,用于显示
           使用屏幕9003的TC_ZEKPO2类型表视图。""进行编辑


 数据:OK_CODE TYPE SY-UCOMM,
        ZEKKO_03的GT_ZEKKO类型表,
        GWA_ZEKKO TYPE ZEKKO_03,
        ZEKPO_03的GT_ZEKPO类型表,
        GWA_ZEKPO就像LINE OF gt_zekpo,
        GV_EBELN TYPE zekko_03-ebeln,
        f1 TYPE char1,
        gv_lines TYPE c的值为100,
        gv_tabix TYPE sy-tabix。


 *&------------------------------------------------  --------------------- *
 *&包括MZDLGPROG_03_REPORTO01
 *&------------------------------------------------  --------------------- *

 *&------------------------------------------------  --------------------- *
 *&模块STATUS_9001输出
 *&------------------------------------------------  --------------------- *
 *&
 *&------------------------------------------------  --------------------- *
 模组STATUS_9001输出。
  设置PF-STATUS'ZSTATUS'。
  设置标题栏" ZTITLE"。
 ENDMODULE。

 *&------------------------------------------------  --------------------- *
 *&模块STATUS_9002 OUTPUT
 *&------------------------------------------------  --------------------- *
 *&
 *&------------------------------------------------  --------------------- *
 MODULE STATUS_9002 OUTPUT。
  设置PF-STATUS'ZSTATUS'。
  设置标题栏" ZTITLE1"。
 ENDMODULE。

 *&------------------------------------------------  --------------------- *
 *&模块STATUS_9003 OUTPUT
 *&------------------------------------------------  --------------------- *
 *&
 *&------------------------------------------------  --------------------- *
 MODULE STATUS_9003 OUTPUT。
  设置PF-STATUS'ZSTATUS'。
  设置标题栏" ZTITLE2"。
 描述表gt_zekpo行gv_lines。
 tc_zekpo-lines = gv_lines。
 ENDMODULE。
 *&------------------------------------------------  --------------------- *
 *&模块FETCH_DATA_EDIT输出
 *&------------------------------------------------  --------------------- *
 *&
 *&------------------------------------------------  --------------------- *
 MODULE FETCH_DATA_EDIT输出。
 *设置PF-STATUS'xxxxxxxx'。
 * SET TITLEBAR'xxx'。

   SELECT ebeln lifnr ekorg ekgrp bukrs waers zterm zdesc FROM zekko_03
   表格gt_zekko的对应字段
   其中ebeln = gwa_zekko-ebeln。

 选择单个ebeln lifnr ekorg ekgrp bukrs waers zterm zdesc从zekko_03
   gwa_zekko的对应字段
   其中ebeln = gwa_zekko-ebeln。

 读取表gt_zekko INTO gwa_zekko索引sy-tabix。

 SELECT EBELP MATNR怪异LGORT Menge Meins
   来自zekpo_03的表格gt_zekpo的对应字段
    其中ebeln = gwa_zekko-ebeln。


 ENDMODULE。
 *&------------------------------------------------  --------------------- *
 *&模块USER_COMMAND_9003 INPUT
 *&------------------------------------------------  --------------------- *
 *文字
 * -------------------------------------------------  --------------------- *
 模组USER_COMMAND_9003输入。
   情况为OK_CODE。
     当"返回"时。
       设置屏幕0。
       离开屏幕0。
     当"插入"时。  """插
      将初始行附加到gt_zekko。
      将初始行附加到gt_zekpo。

     当" SVE"。  """编辑
       如果gwa_zekko-ebeln不是INITIAL。

          从表gt_zekko修改zekko_03。
          如果sy-subrc = 0。
            提交工作。
            其他。
              回滚工作。
          万一。

          从表gt_zekpo修改zekpo_03。
          如果sy-subrc = 0。
            提交工作。
            其他。
              回滚工作。
          万一。

       万一。
   结束。

 ENDMODULE。
 *&------------------------------------------------  --------------------- *
 *&包括MZDLGPROG_03_REPORTI01
 *&------------------------------------------------  --------------------- *
 *&------------------------------------------------  --------------------- *
 *&模块USER_COMMAND_9002 INPUT
 *&------------------------------------------------  --------------------- *
 *文字
 * -------------------------------------------------  --------------------- *
 模组USER_COMMAND_9002输入。
   情况为OK_CODE。
     当"返回"时。
       设置屏幕0。
       离开屏幕0。

     当" DEL"。
       获取光标线GV_tabix。
       F1 = 1。
       执行fetch_data。
       如果gv_tabix不是初始的。
       从表gt_zekko中删除zekko_03。
       从表gt_zekpo中删除zekpo_03。

       如果sy-subrc = 0。
       提交工作。
       其他。
       回滚工作。
         万一。
       万一。
   结束。
 ENDMODULE。
 *&------------------------------------------------  --------------------- *
 *&模块MODIFY_IT_ZEKPO INPUT
 *&------------------------------------------------  --------------------- *
 *文字
 * -------------------------------------------------  --------------------- *
 模组MODIFY_GT_ZEKPO输入。
   从GWA_ZEKPO修改GT_ZEKPO
   索引TC_ZEKPO2-CURRENT_LINE。
 ENDMODULE。
 *&------------------------------------------------  --------------------- *
 *&模块USER_COMMAND_9001 INPUT
 *&------------------------------------------------  --------------------- *
 *文字
 * -------------------------------------------------  --------------------- *
 模组USER_COMMAND_9001输入。
   情况为OK_CODE。
     当"返回"或"退出"或"取消"时。
       离开程序。
     当"删除"时。
       如果GWA_ZEKKO-EBELN是INITIAL。
         信息"请输入文件编号" TYPE" E"。
       其他。
         致电屏幕9002。
         执行fetch_data。
       万一。

     当"显示"时。
       如果GWA_ZEKKO-EBELN是INITIAL。
         信息"请输入文件编号" TYPE" E"。
       其他。
         致电屏幕9002。
       万一。
 *
     在"编辑"时。
       致电屏幕9003。

     当"创建"时。
       致电屏幕9003。


   结束。

 ENDMODULE。

 *&------------------------------------------------  --------------------- *
 *&表格FETCH_DATA
 *&------------------------------------------------  --------------------- *
 *和文字
 *&------------------------------------------------  --------------------- *
 *&-> p1文字
 *&<-p2文字
 *&------------------------------------------------  --------------------- *
 表格FETCH_DATA。

 如果f1 = 1。

 SELECT ebeln lifnr ekorg ekgrp bukrs waers zterm zdesc FROM zekko_03
   表格gt_zekko的对应字段
   其中ebeln = gwa_zekko-ebeln。

 选择单个ebeln lifnr ekorg ekgrp bukrs waers zterm zdesc从zekko_03
   gwa_zekko的对应字段
   其中ebeln = gwa_zekko-ebeln。

 读取表gt_zekko INTO gwa_zekko索引sy-tabix。

 SELECT EBELP MATNR怪异LGORT Menge Meins
   来自zekpo_03的表格gt_zekpo的对应字段
    其中ebeln = gwa_zekko-ebeln。



 万一。

 ENDFORM。

一周热门 更多>