内部 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.