Hallo, ich mache seit kurzem ein Praktikum und beschäftige mich zum ersten mal mit abap. Ich will ein ALV Grid erstellen und möchte die inhalte der felder ändern und speichern z.b menge in nem aufrag. Die Ausgabe von den daten habe ich soweit hin bekommen. Wäre sehr nett, wenn jemand mir weiterhelfen bzw. einen tip geben könnte. vielen dank im vorraus.
Ich danke dir für die schnelle Antwort, hat mir sehr geholfen. Kannst du mir eventuel auch sagen wie ich die geänderten daten am besten speichern kann und dann auf die transparente tabelle zurück schreiben.
Da gibt es viele Wege... Du kannst mit dem event on_data_changed anfangen und dir dort die geänderten Zellen merken. Ist aber doof, wenn der Benutzer eine Zelle ändert und danach die Ändernung wieder rückgängig macht. Dann hattest du zweimal die Änderung auf der Zelle aber geändert hat sich nichts. Das macht es kompliziert.
Zweite Version: Wenn der Benutzer speichert, nimmst du dir die outtab und klebst sie blind auf die DB. Ob geändert oder nicht, soll sich das System drum kümmern.
Dritte Version. Du hast die outtab und am Anfang merkst du dir eine Kopie:
original[]=outtab[].
Wenn der Benutzer dann speichern will, kannst du die beiden Tabellen vergleichen. Ich gehe mal davon aus, dass du jede Zeile eindeutig identifizieren kannst!!
Jetzt gibt es drei Varianten:
1. Der Benutzer hat eine bestehende Ziele gelöscht. Dann muss die auch weg von der DB. Also Loop über die original[] und Suche in outtab[]. Wenn nicht gefunden, auf DB löschen.
2. Der Benutzer hat Zeilen angefügt. Also Loop über outtab[] und suchen in original[]. Wenn nicht gefunden, auf DB einfügen.
3. Der Benutzer hat eine Zeile geändert. Also Loop über outtab[]. Suche in original[]. Gefunden, Zeilen vergleichen und wenn nicht identisch, auf DB ändern.
2. und 3. kannst du in einem Rutsch (Loop) machen.
Grüße
uh
Folgende Benutzer bedankten sich beim Autor uh für den Beitrag: warup