2017-07-06 1 views
0

Ich habe eine Tabellensteuerung (ctrl) und eine interne Tabelle (snctab). Ich möchte Artikel snctab aus dem Table Control hinzufügen. Ich kann einen Datensatz von snctab hinzufügen, aber nicht ändern. Hier sind meine PBO und PAI-Module:Interne Tabelle ist nicht von Tabellensteuerung geändert

PROCESS BEFORE OUTPUT. 
    MODULE status_0100. 

    LOOP AT snctab WITH CONTROL ctrl CURSOR ctrl-current_line. 
    ENDLOOP. 

PROCESS AFTER INPUT. 

    LOOP AT snctab. 
     MODULE update. 
    ENDLOOP. 

    MODULE user_command_0100. 

    MODULE update INPUT. "my update module 
     READ TABLE snctab INDEX ctrl-current_line. 
     IF sy-subrc <> 0. 
      APPEND snctab. 
     ELSE. 
      MODIFY snctab INDEX ctrl-current_line. 
     ENDIF. 
    ENDMODULE.     " UPDATE INPUT 
+0

Nur um zu verdeutlichen, wenn ein Element in "scntab" und "ctrl" ist, wird der Inhalt von 'ctrl' nicht in Ihrem Code aktualisiert? Aber wenn der Datensatz nicht in 'ctrl' existiert, wird er erfolgreich zu' ctrl' hinzugefügt? – gkubed

+0

Tatsächliches Problem ist, wenn ein Element in beiden Scntab und Strg ist, ich einige Felder dieses Datensatzes auf dem Bildschirm ändern, aber es gibt keine Änderung weder von Snctab und Strg im Hintergrund. –

Antwort

1

Ich aktualisierte das Update-Modul wie folgt und Problem gelöst.

MODULE update INPUT. "my update module 
    MODIFY snctab INDEX ctrl-current_line. 
    IF sy-subrc <> 0. 
     APPEND snctab. 
    ENDIF. 
ENDMODULE. 
0

Ihre LOOP Aussage im PAI-Modul nicht die Tabellensteuerung berücksichtigen - Sie sind eine veraltete Variante verwenden, die verwendet wurde, zu dem Prozessschritt Schleife dort. Überprüfen Sie das Demo-Programm DEMO_DYNPRO_TABCONT_LOOP in Ihrem System, um ein funktionierendes Beispiel zu sehen.

Verwandte Themen