ich habe einen editierbaren ALV.
Ich suche nach einer Möglichkeit im data_changed/data_changed_finshed event die Bearbeitung abzubrechen, falls ein Benutzer in ein bestimmtes Feld eine zu hohen Wert ( z.B. über 500 ) eingegeben hat. Zugleich soll der alte Wert wieder dargestellt werden.
im Event DATA_CHANGED hast Du u.a. eine Tabelle ER_DATA_CHANGED->MT_PROTOCOL (o.ä.), in die Du Fehlermeldungen hineinstellen solltest, damit der User die Möglichkeit hat, bei der Eingabe darauf zu reagieren.
Wie das genau funktioniert, kann ich aber leider nicht sagen, da ich es noch nicht selbst angewendet habe.
Einfach abbrechen ist auf keinen Fall gute Usability.
Gruß
Ereglam
May the Force be with your code || .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .
Der Ansatz ist schon richtig: Über er_data_changed->add_protocol_entry kann man für eine bestimmte Zelle (i_fieldname, i_row_id) eine Meldung ins Protokoll schreiben. Je nach Message-Typ wird die Zelle dann grün, gelb oder rot umrandet. Bei Message-Typ 'E' wird verhindert, dass die Daten vom Frontend in die interne Tabelle geschrieben werden. Mit einem refresh_table_display (nicht zum Zeitpunkt data_changed!) kann man dann also die alten Werte wieder herstellen.