Hallo zusammen,
beim Hantieren mit einem ALV - "cl_gui_alv_table" - bin ich auf folgende Fragestellung getroffen:
Ich initialisiere ein ALV mit zwei Spalten und zwei leeren Zeilen, die erste Spalte ist editierbar.
Bei Eingabe eines Wertes in ein Feld (Partner-Nr.) fange ich erfolgreich das Event "data_changed" ab.
Dort kann ich abhängig von der Eingabe in Spalte 1 die Spalte 2 mit Detaildaten zum Partner füllen.
Dann mache ich "refresh_table_display" mit is_stable auf true.
Das funktioniert auch soweit.
Das Problem taucht auf, wenn man per STRG-V mehr als zwei Zeilen (z.B. 4) auf einmal einfügt.
Damit wird auch "data_changed" ausgelöst.
Ursprünglich waren in der Anzeige dann nur zwei Zeilen vorhanden, beide mit den modifizierten Detaildaten.
In der Hintergrundtabelle der ALV-Daten sind aber 4 Einträge vorhanden, die letzten beiden dann aber ohne ergänzte Detaildaten.
Nachdem ich nun umgestellt habe und bei der Ereignisbehandlung die beiden zusätzlichen (zuvor nicht angezeigten) Zeilen 3 + 4 selbst in die Datentabelle einfüge (mit den zuvor ermittelten Detaildaten) werden zwar alle 4 Zeilen angezeigt, aber die Detaildaten in Zeile 3 + 4 bleiben leer:
21 [Mustermann/Köln]
45 [Meier-Müller/Berlin]
55 [ ]
78 [ ]
Bis zur Anzeige des ALVs ist die Datentabelle aber immer korrekt gefüllt.
Erst nach Anzeige fehlen die Detaildaten ab Zeile 3.
Jetzt hege ich den Verdacht, dass
- die angezeigten Felder nicht den Daten entsprechen, die ich eingefügt habe, Zeile 3+4 also eher aus dem Paste stammen,
- die falsche Art der Aktualisierung verwendet wird,
- eine grundsätzlich falsche Vorgehensweise gewählt wurde, oder
- ich da noch einen Denkfehler im Verständnis vom ALV habe ...
Wie ist denn das korrekte Handling für die Modifikation und Aktualisierung des ALVs?
Würdet Ihr eher ein User-Command auslösen/durchreichen anstatt auf Events zu reagieren?
Eigentlich dachte ich, ich hätte das ALV verstanden. Aber nach nun 2 Tagen rumprobieren und debuggen bin ich eher wieder ratlos
Danke und Gruß
Alf