2016-11-11 18 views
1

У меня есть экран с одним элементом управления таблицей, который отображает значения из моего внутреннего 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. 

Спасибо!

, к сожалению, это на немецком enter image description here

+1

Снова: показать нам всю проблему, а не только фрагмент. Попытайтесь поставить себя на чужую позицию - «Я что-то сделал, потом что-то изменил, теперь он больше не работает, в чем проблема?» – vwegert

+0

Я хотел бы понять, что произойдет, если я объявлю новые элементы управления. Если кто-то может сказать мне ответ, я могу это исправить :). Я не могу найти какой-либо код слева от моего контроля: tc_two. Вот почему я думал, что есть больше, чем просто код, с которым я обычно работаю. –

+1

Конечно, есть - определение экрана (это больше, чем логика обработки), и вы еще не добавили этого вопроса (пока) - пожалуйста, сделайте это. – vwegert

ответ

0

Из того факта, что проблема исчезла, по-видимому, без дальнейших действий, можно было бы предположить, что это либо проблема буфера (именно поэтому вы должны повторно запустить всю транзакцию при тестировании измененная программа), или вы случайно не смогли активировать всю программу (и, например, активировали только источник отчета, но не определение экрана).

+0

Если я снова столкнулся с этой проблемой, я перезапущу транзакцию. Спасибо за вашу помощь! –