点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在使用创建的2个屏幕进行对话...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在使用创建的2个屏幕进行对话...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我正在使用创建的2个屏幕进行对话框编程。 第一个屏幕包含带有删除按钮的zebeln字段,第二个屏幕包含zekko_03的字段和zekpo_03的表控件。 我遇到的两个问题:
首先,对标头执行select语句时,提示错误,提示数据类型不兼容。
其次,表控件删除(删除按钮功能代码'DEL')存在问题,我在网上查找了一些不适用于我的案例的方法,包括以下逻辑。
我使用的表格如下
*&--------------------------------------------- ------------------------ * *&包括MZDLGPROG_03_REPORTTOP-模块池SAPMZDLGPROG_03_REPORT *&------------------------------------------------ --------------------- * 程序SAPMZDLGPROG_03_REPORT。 数据:OK_CODE TYPE SY-UCOMM, ZEKKO_03的GT_ZEKKO类型表, GWA_ZEKKO TYPE ZEKKO_03, ZEKPO_03的GT_ZEKPO类型表, GWA_ZEKPO TYPE ZEKPO_03, GV_EBELN TYPE ZEBELN_EL, MARK TYPE CE_MARK, gv_flag类型char1。 控件:使用屏幕9002的TC_ZEKPO类型表。 数据:f1 TYPE char1。
*&--------------------------------------------- ------------------------ * *&包括MZDLGPROG_03_REPORTO01 *&------------------------------------------------ --------------------- * *&------------------------------------------------ --------------------- * *&模块STATUS_9001输出 *&------------------------------------------------ --------------------- * *& *&------------------------------------------------ --------------------- * 模组STATUS_9001输出。 设置PF-STATUS'ZSTATUS'。 设置标题栏" ZTITLE"。 ENDMODULE。 *&------------------------------------------------ --------------------- * *&模块STATUS_9002 OUTPUT *&------------------------------------------------ --------------------- * *& *&------------------------------------------------ --------------------- * MODULE STATUS_9002 OUTPUT。 设置PF-STATUS'ZSTATUS'。 设置标题栏" ZTITLE1"。 ENDMODULE。 *&------------------------------------------------ --------------------- * *&模块FETCH_DATA OUTPUT *&------------------------------------------------ --------------------- * *& *&------------------------------------------------ --------------------- * 模块FETCH_DATA输出。 如果f1 <> 1。 从zekko_03到表gt_zekko中选择SELECT ebeln lifnr ekorg ekgrp bukrs waers zterm zdesc。 此选择语句的<<<<问题 选择单个ebeln lifnr ekorg ekgrp bukrs waers zterm zdesc从zekko_03 gwa_zekko的对应字段 其中ebeln = gwa_zekko-ebeln。 读取表gt_zekko INTO gwa_zekko INDEX sy-tabix。 SELECT EBELP MATNR怪异LGORT Menge Meins 来自zekpo_03的表格gt_zekpo的对应字段 其中ebeln = gwa_zekko-ebeln。 如果f1 = 1。 如果sy-tabix不是INITIAL。 删除gt_zekko索引sy-tabix。 删除gt_zekpo索引sy-tabix。 万一。 万一。 万一。 ENDMODULE。
*&--------------------------------------------- ------------------------ * *&包括MZDLGPROG_03_REPORTI01 *&------------------------------------------------ --------------------- * *&------------------------------------------------ --------------------- * *&模块USER_COMMAND_9002 INPUT *&------------------------------------------------ --------------------- * *文字 * ------------------------------------------------- --------------------- * 模组USER_COMMAND_9002输入。 情况为OK_CODE。 当"返回"时。 设置屏幕0。 离开屏幕0。 结束。 ENDMODULE。 *&------------------------------------------------ --------------------- * *&模块MODIFY_IT_ZEKPO INPUT *&------------------------------------------------ --------------------- * *文字 * ------------------------------------------------- --------------------- * 模组MODIFY_GT_ZEKPO输入。 从gwa_zekpo修改gt_zekpo INDEX TC_ZEKPO-CURRENT_LINE。 ENDMODULE。 *&------------------------------------------------ --------------------- * *&模块USER_COMMAND_9001 INPUT *&------------------------------------------------ --------------------- * *文字 * ------------------------------------------------- --------------------- * 模组USER_COMMAND_9001输入。 情况为OK_CODE。 当"返回"或"退出"或"取消"时。 离开程序。 当"删除"时。 如果GWA_ZEKKO-EBELN是INITIAL。 信息"请输入文件编号" TYPE" E"。 其他。 致电屏幕9002。 万一。 当" DEL"。 获取光标线sy-tabix。 f1 = 1。 结束。 ENDMODULE。
输出前的过程。 模块状态_9002。 模块fetch_data。 通过控制TC_ZEKPO光标将GT_ZEKPO放入GWA_ZEKPO中 TC_ZEKPO-CURRENT_LINE。 结局。 输入后的过程。 在gt_zekpo循环。 模块modify_gt_zekpo。 结束循环。 模组USER_COMMAND_9002。
(5.5 KB)
实际上我想删除 基于在第一个屏幕的参数中输入的选定记录(在不可编辑模式下,我将所有字段和表都设置为不可编辑的上级需求),因此我使用了sy-tabix。
我做的另一种方式是使用
我不确定我是否还错过了删除操作
一周热门 更多>