Удаленный контроль таблицы приводит к ошибке времени выполнения
У меня есть экран с одним элементом управления таблицей, который отображал значения из моей внутренней базы данных. Это сработало без нареканий.
Я добавил еще один элемент управления таблицей, который не сработал так, как я хотел.
Я удалил контроль CONTROLS: tc_two TYPE TABLEVIEW USING SCREEN 9000.
И теперь я получаю ошибку во время выполнения CONTROL-Variable not found
,
В: Что произойдет, если я объявлю новые элементы управления? Где они реализуются?
Я попытался отладить мой код, и ошибка появляется в CALL SCREEN 9000.
Вот полный код:
REPORT zsch_test.
CONTROLS: tc_one TYPE TABLEVIEW USING SCREEN 9000.
DATA: it_uebung TYPE TABLE OF zsch_uebung,
ok_code TYPE sy-ucomm,
fill TYPE i.
TABLES zsch_uebung.
DATA: lines TYPE i,
limit TYPE i.
SELECT * FROM zsch_uebung INTO CORRESPONDING FIELDS OF TABLE it_uebung WHERE status = '1'.
CALL SCREEN 9000.
MODULE status_9000 OUTPUT.
SET PF-STATUS 'STATUS9000'.
* SET TITLEBAR 'xxx'.
DESCRIBE TABLE it_uebung LINES fill.
tc_one-lines = fill.
ENDMODULE.
MODULE fill_table_control OUTPUT.
READ TABLE it_uebung INTO zsch_uebung INDEX tc_one-current_line.
ENDMODULE.
MODULE cancel INPUT.
LEAVE PROGRAM.
ENDMODULE.
MODULE read_table_control INPUT.
lines = sy-loopc.
MODIFY it_uebung FROM zsch_uebung INDEX tc_one-current_line.
ENDMODULE.
MODULE user_command_9000 INPUT.
ok_code = sy-ucomm.
CASE ok_code.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN OTHERS.
ENDCASE.
ENDMODULE.
Экран 9000:
PROCESS BEFORE OUTPUT.
MODULE STATUS_9000.
LOOP WITH CONTROL TC_ONE.
MODULE fill_table_control.
ENDLOOP.
PROCESS AFTER INPUT.
MODULE cancel AT EXIT-COMMAND.
LOOP WITH CONTROL TC_ONE.
MODULE read_table_control.
ENDLOOP.
MODULE USER_COMMAND_9000.
Спасибо!
1 ответ
Из того факта, что проблема исчезла, по-видимому, без дальнейших действий, можно предположить, что это либо проблема с буфером (именно поэтому вам следует перезапустить всю транзакцию при тестировании измененной программы), либо вы случайно не активировали всю программу (и, например, активировал только источник отчета, но не определение экрана).