Внутренняя таблица не изменяется из элемента управления таблицей

У меня есть элемент управления таблицей (ctrl) и внутренняя таблица (snctab). Я хочу добавить элементы 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

person Nuran Yüksekce    schedule 06.07.2017    source источник
comment
Просто чтобы уточнить, когда элемент находится как в scntab, так и в ctrl, содержимое ctrl не обновляется в вашем коде? Но если запись не существует в ctrl, она будет успешно добавлена ​​в ctrl?   -  person gkubed    schedule 06.07.2017
comment
Фактическая проблема заключается в том, что когда элемент находится как в scntab, так и в ctrl, я меняю некоторые поля этой записи на экране, но нет изменений ни в snctab, ни в ctrl на фоне.   -  person Nuran Yüksekce    schedule 07.07.2017


Ответы (2)


Я обновил модуль обновления таким образом, и проблема решена.

 MODULE update INPUT.    "my update module
    MODIFY snctab INDEX ctrl-current_line.
    IF sy-subrc <> 0.
       APPEND snctab.
    ENDIF.
 ENDMODULE. 
person Nuran Yüksekce    schedule 12.07.2017

Ваш оператор LOOP в модуле PAI не учитывает управление таблицей - вы используете устаревший вариант, который использовался там для обработки пошаговых циклов. Проверьте демонстрационную программу DEMO_DYNPRO_TABCONT_LOOP в вашей системе, чтобы увидеть рабочий пример.

person vwegert    schedule 06.07.2017