У меня есть экран с одним элементом управления таблицей, который отображает значения из моего внутреннего db. Это получилось безупречно.Удаленное управление таблицами приводит к ошибке времени выполнения
Я добавил еще один элемент управления таблицей, который не сработал так, как я хотел.
Я удалил элемент управления 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.
Спасибо!
, к сожалению, это на немецком
Снова: показать нам всю проблему, а не только фрагмент. Попытайтесь поставить себя на чужую позицию - «Я что-то сделал, потом что-то изменил, теперь он больше не работает, в чем проблема?» – vwegert
Я хотел бы понять, что произойдет, если я объявлю новые элементы управления. Если кто-то может сказать мне ответ, я могу это исправить :). Я не могу найти какой-либо код слева от моего контроля: tc_two. Вот почему я думал, что есть больше, чем просто код, с которым я обычно работаю. –
Конечно, есть - определение экрана (это больше, чем логика обработки), и вы еще не добавили этого вопроса (пока) - пожалуйста, сделайте это. – vwegert