Neue Zeile in ALV Grid prüfen

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

Neue Zeile in ALV Grid prüfen

Beitrag von bapimueller (ForumUser / 70 / 4 / 0 ) » 05.10.2020 11:55
Hallo zusammen,

ich würde gerne, wenn in ein ALV Grid eine neue Zeile eingefügt wird, die eingegebenen Werte überprüfen. Leider nützt /h hier nichts oder gibt es doch eine Möglichkeit hier in den Debugger zu springen?
Welches Event wird denn vom ALV Grid für das Einfügen einer neuen Zeile verwendet?

Viele Grüße,
bapimueller/Thomas
Thomas Müller
SAP Beratung
M: +49 (0) 173 / 870 39 31
T: +49 (0) 6228 / 924 560
F: +49 (0) 6228 / 924 559


Re: Neue Zeile in ALV Grid prüfen

Beitrag von a-dead-trousers (Top Expert / 3539 / 115 / 918 ) » 05.10.2020 12:06
Beim Einfügen kenn ich jetzt nichts, aber zum Prüfen der Eingabe gibt es den Event DATA_CHANGED. Der wird immer dann durchlaufen, wenn die Informationen aus dem Grid am Client endgültig an den Applikationsserver übertragen werden. Also entweder bei PAI/PBO, Aufruf von CHECK_CHANGED_DATA oder wenn einer der On-Edit-Eventauslöser (Cell Leave oder Enter) registiert ist.
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.

ECC: 6.07
Basis: 7.40

Re: Neue Zeile in ALV Grid prüfen

Beitrag von bapimueller (ForumUser / 70 / 4 / 0 ) » 05.10.2020 15:11
Danke für den Tip. Jetzt habe ich noch folgendes Problem:

Meine Tabelle besteht aus 7 Feldern, wovon nur 1 eingabebereit ist. Wenn ich eine neue Zeile hinzufüge, dann sollen alle Felder eingabebereit sein. Wie mache ich das, wenn ich nicht an das interne Event rankomme? Gibt es da so etwas wie ein Callback den ich verwenden kann?
Thomas Müller
SAP Beratung
M: +49 (0) 173 / 870 39 31
T: +49 (0) 6228 / 924 560
F: +49 (0) 6228 / 924 559

Re: Neue Zeile in ALV Grid prüfen

Beitrag von jocoder (Specialist / 210 / 3 / 60 ) » 05.10.2020 15:45
Wie mache ich das, wenn ich nicht an das interne Event rankomme?
Dazu ist es notwendig das DATA_CHANGED-Event zu implementieren. In der Klasse CL_ALV_CHANGED_DATA_PROTOCOL gibt es für diesen Zweck das Attribut MT_INSERTED_ROWS.
Das ALV-Grid braucht dann noch eine Spalte mit dem Typ LVC_T_STYL, mit der die Editierbarkeit pro Zelle festgelegt wird. Bei einer neuen Zeile müssen dann alle Zellen der Zeile als editierbar festgelegt werden.

Re: Neue Zeile in ALV Grid prüfen

Beitrag von bapimueller (ForumUser / 70 / 4 / 0 ) » 05.10.2020 19:21
Hallo,
das Event 'ON_DATA_CHANGED' ist registriert und wird auch angesprungen. Hier hole ich mir dann über die Methode GR_GRID_APPLICATION->CHANGE_DATA( ) die Referenz ER_DATA_CHANGED.
Soweit so gut. In dem Attribut MT_MOD_CELLS sind ja die neuen Felder/Feldinhalte aufgelistet. Wenn ich jetzt zu jeder Zelle den Style setze, dann passiert nichts. Die Felder welche vorher schon Read-Only waren bleiben auch Read-Only.
Bisher habe ich folgende Konstanten verwendet:
CL_GUI_ALV_GRID=>MC_STYLE_ENABLED, MC_EVT_MODIFIED, MC_EVT_ENTER, leider ohne Erfolg.

Das Programm BCALV_GRID_EDIT hat mir mit meinem Problem erstmal nicht weitergeholfen. Hier wird allerdings ein editierbares Grid angezeigt und über die Stylestabelle einzelne Zelen auf Read-Only gesetzt.

Hast Du vielleicht ein Beispielprogramm oder ein Schnipet für mich?

Vg,
Thomas
Thomas Müller
SAP Beratung
M: +49 (0) 173 / 870 39 31
T: +49 (0) 6228 / 924 560
F: +49 (0) 6228 / 924 559

Re: Neue Zeile in ALV Grid prüfen

Beitrag von a-dead-trousers (Top Expert / 3539 / 115 / 918 ) » 05.10.2020 20:46
Möglich, dass du die Sache etwas anders angehen musst:
1) Alle Spalten in deinem Grid und auch das Grid selbst auf "editierbar" stellen.
2) In allen Zeilen im Feld für die Styleinformationen (Typ LVC_T_STYL) die Zellen auf "nicht editierbar" stellen.
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.

ECC: 6.07
Basis: 7.40

Seite 1 von 1

Über diesen Beitrag



Unterstütze die Community und teile den Beitrag für mehr Leser und besseren Inhalt:

Vergleichbare Themen

ALV GRID (OO) - Zeile ändern?
von Mavrix » 19.06.2007 10:18
ALV-Grid Zeile farbig
von nikibert » 01.09.2008 09:56
ALV Grid / Zeile fixieren
von Mike » 14.09.2004 16:41
Zeile aus ALV Grid auslesen
von HUMA_11 » 15.10.2004 13:00
Zeile markieren ALV Grid
von MichaelK » 27.06.2015 16:30