点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我试图创建2个屏幕,屏幕9002...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我试图创建2个屏幕,屏幕9002...
加入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)
AS ,
除非业务部门明确要求,否则最好将所有字段都放在一个屏幕中,以避免复杂性和更好的维护。
简而言之,了解模块编程中的事件非常重要:
PBO-输入之前的处理负责显示的所有字段特征,事件在触发之前触发 屏幕显示出来。 因此,必须在此处对屏幕的所有功能进行编码。
PAI-输入后的处理负责屏幕中所有字段的验证,此事件将针对您在屏幕中执行的所有操作触发
现在,让我们知道您要实现的目标以及面临的问题。
请注意!
一周热门 更多>