内部 table 未从 table 控件修改
Internal table isn't modified from table control
我有一个 table 控件 (ctrl
) 和一个内部 table (snctab
)。
我想从 table 控件添加项目 snctab
。我可以添加但不能修改来自 snctab
的记录。这是我的 PBO 和 PAI 模块:
PROCESS BEFORE OUTPUT.
MODULE status_0100.
LOOP AT snctab WITH CONTROL ctrl CURSOR ctrl-current_line.
ENDLOOP.
PROCESS AFTER INPUT.
LOOP AT snctab.
MODULE update.
ENDLOOP.
MODULE user_command_0100.
MODULE update INPUT. "my update module
READ TABLE snctab INDEX ctrl-current_line.
IF sy-subrc <> 0.
APPEND snctab.
ELSE.
MODIFY snctab INDEX ctrl-current_line.
ENDIF.
ENDMODULE. " UPDATE INPUT
您在 PAI 模块中的 LOOP
语句没有考虑 table 控制 - 您使用的是用于处理步进循环的过时变体。检查系统中的演示程序 DEMO_DYNPRO_TABCONT_LOOP
以查看工作示例。
我这样更新了更新模块,问题解决了。
MODULE update INPUT. "my update module
MODIFY snctab INDEX ctrl-current_line.
IF sy-subrc <> 0.
APPEND snctab.
ENDIF.
ENDMODULE.
我有一个 table 控件 (ctrl
) 和一个内部 table (snctab
)。
我想从 table 控件添加项目 snctab
。我可以添加但不能修改来自 snctab
的记录。这是我的 PBO 和 PAI 模块:
PROCESS BEFORE OUTPUT.
MODULE status_0100.
LOOP AT snctab WITH CONTROL ctrl CURSOR ctrl-current_line.
ENDLOOP.
PROCESS AFTER INPUT.
LOOP AT snctab.
MODULE update.
ENDLOOP.
MODULE user_command_0100.
MODULE update INPUT. "my update module
READ TABLE snctab INDEX ctrl-current_line.
IF sy-subrc <> 0.
APPEND snctab.
ELSE.
MODIFY snctab INDEX ctrl-current_line.
ENDIF.
ENDMODULE. " UPDATE INPUT
您在 PAI 模块中的 LOOP
语句没有考虑 table 控制 - 您使用的是用于处理步进循环的过时变体。检查系统中的演示程序 DEMO_DYNPRO_TABCONT_LOOP
以查看工作示例。
我这样更新了更新模块,问题解决了。
MODULE update INPUT. "my update module
MODIFY snctab INDEX ctrl-current_line.
IF sy-subrc <> 0.
APPEND snctab.
ENDIF.
ENDMODULE.