2016-11-11 1 views
1

내 내부 db의 값을 표시하는 하나의 테이블 컨트롤이있는 화면이 있습니다. 그것은 완벽하게 작동했습니다.삭제 된 테이블 컨트롤이 런타임 오류로 연결됨

내가 원하는대로 작동하지 않는 다른 테이블 컨트롤을 추가했습니다.

내가 컨트롤을 CONTROLS: tc_two TYPE TABLEVIEW USING SCREEN 9000.

을 삭제 그리고 지금은 런타임 오류 CONTROL-Variable not found납니다.

Q : 새 컨트롤을 선언하면 어떻게됩니까? 그들은 어디에서 실행됩니까?

나는 내 코드를 디버깅하기 위해 노력하고 오류가 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

이 문제가 다시 발생하면 트랜잭션을 다시 시작합니다. 당신의 도움을 주셔서 감사합니다! –

관련 문제