ich habe die Anforderung, dass bei einem editierbaren ALV die Nachkommastellen auf 3 beschränkt sein soll (Ein- und Ausgabe).
Die Ausgabe erfolgt mittels OO-ALV (CL_GUI_ALV_GRID), der Feldkatalog ist vom Typ lvc_t_fcat.
Im Feldkatalog nutze ich folgende Einstellungen:
lwa_fieldcat-fieldname = 'MENGE_MDF'.
lwa_fieldcat-tabname = 'LT_MOV_OUT'.
lwa_fieldcat-ref_field = 'MENGE_MDF'.
lwa_fieldcat-ref_table = 'Z_MOVDAT'.
lwa_fieldcat-qfieldname = 'MEINS'.
lwa_fieldcat-scrtext_l = 'MDFgewicht'(d02).
Das Referenzfeld MENGE_MDF ist mit Datenelement MENGE_D definiert (Domäne MENG13, QUAN, Länge 13, 3 Dezimalstellen).
Bei der Eingabe passiert es immer wieder, dass anstelle der 3 Nachkommastellen 4 oder mehr eingegeben werden. Kann das aufgrund der Feldkatalog-Einstellungen sofort geprüft und ein Fehler angezeigt werden?
Derzeit ist es so, dass die Änderungen mittels Methode check_changed_data geprüft werden. Es kommt dann zwar ein Fehlerprotokoll hoch, geht man da drüber, werden die Eingaben mit den ursprünglichen überschrieben.
Die Eingabeprüfung in einem ALV-Grid ist leider nur über das Protokoll möglich.
Wobei mir nicht ganz klar ist, was du mit "werden die Eingaben mit den ursprünglichen überschrieben" meinst.
Wenn das Protokoll hochkommt (entweder duch Standardprüfung oder einer Eigenimplementierung) kann man erst weiterarbeiten, wenn die Fehler beseitigt wurden (= korrigiert = überschrieben). Außer natürlich man hat hier "hintenrum" was implementiert, das die Daten direkt aus dem check_changed_data heraus in die Datentabelle zurückschreibt.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.