ALV: alten Wert eines editierbaren Feldes ermitteln

Benutzeroberflächen in SAP®-Systemen.
10 Beiträge • Seite 1 von 1
10 Beiträge Seite 1 von 1

ALV: alten Wert eines editierbaren Feldes ermitteln

Beitrag von Spaulding (ForumUser / 21 / 0 / 0 ) »
Hi,

habe ein kleines Problem mit einem ALV-Grid (OO). Einige Felder sind editierbar. Damit ich auf Änderungen reagieren kann habe ich habe ich das Event data_changed registriert:

Code: Alles auswählen.

set handler gr_event_handler->handle_data_changed for gr_alvgrid.
    
call method gr_alvgrid->register_edit_event
 EXPORTING
   i_event_id = cl_gui_alv_grid=>mc_evt_modified.
call method gr_alvgrid->register_edit_event
 EXPORTING
   i_event_id = cl_gui_alv_grid=>mc_evt_enter.
In der Form handle_data_changed werden nun u.a. einige Prüfungen auf die Richtigkeit des geänderten Wertes durchgeführt.
Sollte der Wert nicht korrekt sein, will ich ihn wieder auf den Originalwert zurück setzen.

Leider kenne ich keine Möglichkeit, den Originalwert zu ermittlen :(

Irgendwelche Vorschläge?

Danke und Gruß,
Spaulding[/quote]

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von Arno Simon (ForumUser / 84 / 0 / 1 ) »
:?: Du hast dem ALV-Grid doch eine Tabelle mit den Originalwerten übergeben.... Im Event bekommst Du eine Tabelle übermittelt, in welcher - soweit ich mich erinner - enthalten ist, welcher Wert in welcher Spalte /Zeile sich geändert hat. Sofern Du bereits zuvor die Werte der manipulierten Tabelle abgreifst, solltest Du Dir ein Speicherbackup der Originaltabelle anlegen.

vG

Arno

Beitrag von Spaulding (ForumUser / 21 / 0 / 0 ) »
Hi Arno,

danke für die Anwort.
Wenn das Event "data_changed" autritt, findet man im Event in "mt_mod_cells" die geänderten Zeilen (mit den neuen Werten). Anhand mt_mod_cells-row_id kann über den Index in der Originaltabelle natürlich immer noch den Originalwert finden...

Wer weiß, was ich gestern da wieder im Debugger gesehen hatte?

Danke,
Spaulding

Beitrag von Arno Simon (ForumUser / 84 / 0 / 1 ) »
Keine Ursache...

Aber mal eine Gegenfrage zum ALV-Grid, da Du das gleiche Event (data_changed) benutzt, das ich derzeit auch benutze!

Wann wird das Event vom Control ausgelöst? Mir will es derzeit einfach nicht gelingen entsprechende Regeln für das Event zu erkennen. Mal wird es ausgelöst, wenn ich Datenfreigabe drücke und mal bei einem Doppelklick?!

Irgendwas kann dort doch nicht mit rechten Dingen zugehen!

vG

Arno

Beitrag von Spaulding (ForumUser / 21 / 0 / 0 ) »
Hi Arno,

ich verstehe die wohl Frage nicht richtig.
Das Event data_changed wird jedesmal ausgelöst, wenn sich der Wert eines Feldes im ALV geändert hat. Damit das Event ausgelöst wird, muss man in ein anderes Feld springen bzw. <ENTER> drücken (ich glaube, dadurch wird ein refresh_display gemacht, was letzendlich das Event data_changed triggert).

Beitrag von Arno Simon (ForumUser / 84 / 0 / 1 ) »
Hi Spaulding,

nunja, ich arbeite derzeit auf einem 4.6C-System mit aufgespieltem IS-U/CCS(4.64+) mit diversen Erweiterungen, die aber nicht die cl_gui_alv_grid betreffen.

Weder das Springen in ein anderes Feld (egal ob mit Tab, Cursor oder Mausklick) noch das drücken von Enter löst bei mir das Ereignis aus. Es wird nur hin und wieder mal getriggert, wenn ich scheinbar wie wild mit doppel- und dreifachklicks im Grid rumacker.....

Irgendwie seltsam....

Naja, mal sehen, was ich da noch finde. Vielleicht wird das Evnt auch nicht richtig registriert oder ich habe die falsche Event-Konstante genommen....

vG

Arno

Beitrag von Spaulding (ForumUser / 21 / 0 / 0 ) »
@Arno

Hmm, ich bin schon auf 7.10. Ist halt doch schon etwas anders...

So lange Du jedoch die Events richtig registriert hast (siehe mein erstes Posting) sollte es problemlos klappen...

Gruß,
Spaulding

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
Moinsen.

Bei 4.6C ist das so'n bisken von hinten durch die Brust ins Auge: Der Event wird von der Methode CHECK_CHANGED_DATA gefeuert. Diese Methode ist Public und kann z.B. von Event-Handlern gerufen werden oder aus PAI.

Gruss,
Haubi
Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...

Beitrag von Arno Simon (ForumUser / 84 / 0 / 1 ) »
@Haubi,

besten Dank :) Werde ich beizeiten ausprobieren. Bin gerade an einer anderen Baustelle im Projekt.

vG

Arno

Beitrag von Arno Simon (ForumUser / 84 / 0 / 1 ) »
Hmpf..... sollte hin und wieder mal meine ToDo's mit den Done's abgleichen..... den Punkt habe ich in 2 der enthaltenen ALVs und in einem davon bereits so umgesetzt gehabt, wie von Haubi beschrieben. In dem einen funktionierts und in dem anderen nicht....

Und warum? Weil ich's in dem anderen gar nicht erst umgesetzt habe..... Grmbl.....

Naja... Die TA an der ich schreibe enthält nur 3 TViews, 5 Grids, 3 Notepads und diverse SubScreens (12 + 5 PopUps).... Dann kann so'n kleiner "Lapsus" schon'mal vorkommen :D :D

vG

Arno

Seite 1 von 1

Vergleichbare Themen

6
Antw.
5421
Views
Bezeichnung zu Wert eines Feldes lesen
von BubbleSort » 24.01.2017 15:59 • Verfasst in ABAP® für Anfänger
1
Antw.
1988
Views
Stammdaten von alten Kreditorn sperren
von schoda3 » 18.01.2010 13:31 • Verfasst in Financials
4
Antw.
2588
Views
Saldovortrag im alten Jahr? Auswirkung auf Zahllauf?
von Blueshape » 28.12.2005 10:24 • Verfasst in Financials
2
Antw.
2852
Views
Neuer Kontenplan im alten Buchungskreis / Landeskontenplan?
von FW » 13.07.2005 09:43 • Verfasst in Financials
3
Antw.
2731
Views
Eigene Feldprüfung im editierbaren ALV
von Nordlicht » 28.09.2016 11:05 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
Gestern von Bright4.5 1 / 510
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2145
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8741