2016-11-11 3 views
1

Ich habe einen Bildschirm mit einer Tabelle Steuerelement, die Werte von meinem internen db angezeigt. Es funktionierte einwandfrei.Deleted Table Control führt zu Laufzeitfehler

Ich habe ein weiteres Table Control hinzugefügt, das nicht so funktioniert hat, wie ich es wollte.

Ich löschte die Steuer CONTROLS: tc_two TYPE TABLEVIEW USING SCREEN 9000.

Und jetzt einen Laufzeitfehler CONTROL-Variable not found Ich erhalte.

F: Was passiert, wenn ich neue Kontrollen deklariere? Wo werden sie implementiert?

Ich habe versucht, meinen Code zu debuggen, und der Fehler erscheint bei CALL SCREEN 9000.

Hier wird der vollständige Code ist:

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. 

Schirm 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. 

Danke!

leider ist es in Deutsch enter image description here

+1

Nochmal: Zeigen Sie uns das ganze Problem, nicht nur ein Fragment. Versuchen Sie, sich in die Position eines anderen zu versetzen - "Ich habe etwas gemacht, dann etwas verändert, jetzt funktioniert es nicht mehr, wo ist das Problem?" – vwegert

+0

Ich möchte verstehen, was passiert, wenn ich neue Kontrollen deklariere. Wenn jemand mir die Antwort sagen könnte, kann ich es beheben :). Ich kann keinen Code über meine Steuerung finden: tc_two. Deshalb dachte ich, dass es mehr als nur den Code gibt, mit dem ich normalerweise arbeite. –

+1

Es ist sicherlich - die Bildschirmdefinition (die mehr als die Verarbeitungslogik ist), und Sie haben das (noch) nicht zur Frage hinzugefügt - bitte tun Sie es. – vwegert

Antwort

0

Aus der Tatsache, dass das Problem ohne weitere Maßnahmen offenbar verschwunden, könnte man annehmen, dass dies entweder ein Puffer Problem war (das ist, warum sollen Sie die gesamte Transaktion neu starten, wenn eine Prüfung Programm geändert) oder Sie haben versehentlich das gesamte Programm nicht aktiviert (und z. B. nur die Berichtsquelle, aber nicht die Bildschirmdefinition aktiviert).

+0

Wenn ich auf dieses Problem erneut stoßen werde ich die Transaktion neu starten. Danke für Ihre Hilfe! –

Verwandte Themen