Buttonsteuerung ALV-Grid ausprogrammieren

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Buttonsteuerung ALV-Grid ausprogrammieren

Beitrag von 19KnarfRed81 (ForumUser / 2 / 1 / 0 ) »
Hallo Zusammen,

ich habe mir eine Z-Klasse als Unterklasse von einer anderen Z-Klasse erstellt, die wiederum als Oberklasse die CL_ICL_GRID_BASE hat, da ich bereits Funktionen der ersten Z-Klasse bei mir nutzen möchte.

Nun erstelle ich mir hiermit mein ALV-Grid.

Code: Alles auswählen.

data: gr_segment_alv TYPE REF TO zcl_segment_alv.

  IF gr_segment_alv IS NOT BOUND.
    CREATE OBJECT gr_segment_alv
      EXPORTING
        iv_colorfname  = 'ROWCOLOR'
        iv_selectfname = 'DETAIL_SELECT'
        iv_stylefname  = 'CELLSTYLE'. 

    gr_segment_alv->create_grid( EXPORTING iv_container_name  = 'Z_SEGMENT_ALV'
                                           iv_initial_lines   = 0
                                           iv_struc_name      = 'Z_S_SEGMENT_ALV'
                                           iv_xappl_events    = space
                                           ).
  ENDIF.
Wenn ich nun die Standard-Buttons z.B. "Zeile anhängen", "Zeile einfügen", "Zeile Löschen" betätige, funktioniert auf dem Dynpro auch alles wie erwartet. Nur sind die Änderungen beim nächsten Laden aus dem Memory (pbo_get_data) logischerweise wieder weg, da ich hier aktiv keinen Abgleich mit der iTab vornehme.

Wenn ich einen Breakpoint in der von der Masterklasse (CL_ICL_GRID_BASE) geerbten Methode HANDLE_USER_COMMAND setze, wird diese gar nicht durchlaufen.

Code: Alles auswählen.

METHOD handle_user_command .

  CASE e_ucomm.

    WHEN mc_fc_item_check.
*     Trigger PAI, unless we have system events anyway
      IF mv_xappl_events EQ space.
        CALL METHOD cl_gui_cfw=>set_new_ok_code
          EXPORTING
            new_code = mc_dummy_okcode.
      ENDIF.
    WHEN mc_fc_new_line.
      CALL METHOD add_initial_line.

    WHEN mc_fc_del_line.
      CALL METHOD delete_line.

    WHEN OTHERS.
  ENDCASE.

ENDMETHOD.
Warum ist das so und wo müsste ich mich reinhängen um das Löschen auszuprogrammieren? Das Hinzufügen habe ich in der PAI Methode (pai_set_data) gemacht. Das funktioniert zumindest...

Stehe voll auf dem Schlauch, da ich den Prozess halt auch nicht debuggt bekomme. Wenn ich die Buttons drücke, wird im Frontend die Änderung vollzogen aber der Debugger springt nicht an.

Ich bedanke mich voraus, für Eure Tipps!

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


Re: Buttonsteuerung ALV-Grid ausprogrammieren

Beitrag von a-dead-trousers (Top Expert / 4287 / 214 / 1142 ) »
Ich glaube, du hast da einen "Fehler" aus deiner ersten Z-Klasse geerbt.
Die Standardfunktionen für "Hinzufügen" und "Entfernen" werden vom Grid nicht direkt weitergegeben, weil die Operationen direkt auf der Tabelle, die man bei SET_TABLE_FOR_FIRST_DISPLAY als CHANGING-Parameter übergeben hat, erfolgen. Das heißt, man muss da eigentlich nichts mehr großartig nacharbeiten. Für den Fall, dass man in der neuen Zeile Ergänzungen oder bei bestehenden Zeilen Korrekturen vornehmen muss, bietet das Grid die DATA_CHANGED-Ereignisse an.

Der Fehler besteht meiner Meinung nach nun darin, dass in der ersten Z-Klasse mit einer lokalen(?) Variable gearbeitet wird, deren Änderung (durch das ALV-Grid) nicht an den Aufrufer durchgereicht wird. Du musst also vermutlich in der ersten Z-Klasse eine Möglichkeit vorsehen, dass die Tabelle die im Grid angezeigt wird mit der Tabelle die an die Z-Klasse übergeben wird abgeglichen wird.

Ich habe mir so ein ähnliches Konstrukt auch schon gebaut, um die ganzen Spezialfunktionen des Grids, die zusätzliche Spalten in der Ausgabetabelle benötigen, abbilden zu können indem zur Laufzeit dynamisch eine interne Tabelle mit den benötigten Spalten erstellt wird. Der Transport der Inhalte zwischen der Ausgabetabelle und dieser eigenen "Anzeigetabelle" erfolgt im Rahmen der DATA_CHANGED-Ereignisse.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
19KnarfRed81

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.18
Basis: 7.50

Re: Buttonsteuerung ALV-Grid ausprogrammieren

Beitrag von 19KnarfRed81 (ForumUser / 2 / 1 / 0 ) »
Hallo ADT,

danke für den Tipp. Allerdings verstehe ich es noch nicht so ganz... :-|
Der Fehler besteht meiner Meinung nach nun darin, dass in der ersten Z-Klasse mit einer lokalen(?) Variable gearbeitet wird, deren Änderung (durch das ALV-Grid) nicht an den Aufrufer durchgereicht wird
Ich übergebe doch letztendlich nur eine Struktur an die Methode CREATE_GRID welche 1:1 aus der Oberklasse stammt. Daraus wird dann ein protected Klassenattribut MR_ITEM für STFFD. Die Daten werden dann im PBO der geerbten Z-Klasse befüllt. Ich möchte jetzt in meiner 2. Z-Klasse einfach mit diesen Daten arbeiten und halt Änderungen vornehmen.
Du musst also vermutlich in der ersten Z-Klasse eine Möglichkeit vorsehen, dass die Tabelle die im Grid angezeigt wird mit der Tabelle die an die Z-Klasse übergeben wird abgeglichen wird.
Hast du da ein Beispiel oder kannst das noch etwas näher erläutern? Danke.

Re: Buttonsteuerung ALV-Grid ausprogrammieren

Beitrag von a-dead-trousers (Top Expert / 4287 / 214 / 1142 ) »
19KnarfRed81 hat geschrieben:
09.02.2023 09:36
Der Fehler besteht meiner Meinung nach nun darin, dass in der ersten Z-Klasse mit einer lokalen(?) Variable gearbeitet wird, deren Änderung (durch das ALV-Grid) nicht an den Aufrufer durchgereicht wird
Ich übergebe doch letztendlich nur eine Struktur an die Methode CREATE_GRID welche 1:1 aus der Oberklasse stammt. Daraus wird dann ein protected Klassenattribut MR_ITEM für STFFD. Die Daten werden dann im PBO der geerbten Z-Klasse befüllt. Ich möchte jetzt in meiner 2. Z-Klasse einfach mit diesen Daten arbeiten und halt Änderungen vornehmen.
Ja, aber irgendwann willst du Daten ja zurückgeliefert bekommen oder nicht? Und dafür benötigt das ALV Grid (Base) einen Ort wo es die Daten zurückspeichern kann.
19KnarfRed81 hat geschrieben:
09.02.2023 09:36
Du musst also vermutlich in der ersten Z-Klasse eine Möglichkeit vorsehen, dass die Tabelle die im Grid angezeigt wird mit der Tabelle die an die Z-Klasse übergeben wird abgeglichen wird.
Hast du da ein Beispiel oder kannst das noch etwas näher erläutern? Danke.
Nachdem du ein protected Attribut erwähnt hast, dürfte das dein "zentraler" Datenspeicher sein. Du musst also schauen, warum da die Daten nicht sauber gespeichert werden.
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.18
Basis: 7.50

Seite 1 von 1

Vergleichbare Themen

4
Antw.
4404
Views
ALV Grid Sortierung aktualisieren im grid 1 und grid 2
von c oco » 06.02.2012 10:09 • Verfasst in ABAP Objects®
5
Antw.
3585
Views
2
Antw.
1989
Views
ALV-Grid
von Bitfummler » 15.04.2009 10:37 • Verfasst in ABAP® Core
2
Antw.
2443
Views
Row ID in ALV Grid
von Namp » 14.03.2006 13:19 • Verfasst in SAP - Allgemeines
2
Antw.
2407
Views
ALV Grid
von Gast » 12.10.2004 14:31 • Verfasst in ABAP® Core

Über diesen Beitrag



Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Aktuelle Forenbeiträge

Artikel automatisch in va01
vor 2 Tagen von wreichelt 2 / 53
langtexte beim Fertigungsauftrag
vor 3 Tagen von ByteMeBaby 7 / 6426
Updates der Daten, Fehlermeldung
vor 4 Tagen von Egzon gelöst 1 / 75

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.

Aktuelle Forenbeiträge

Artikel automatisch in va01
vor 2 Tagen von wreichelt 2 / 53
langtexte beim Fertigungsauftrag
vor 3 Tagen von ByteMeBaby 7 / 6426
Updates der Daten, Fehlermeldung
vor 4 Tagen von Egzon gelöst 1 / 75

Unbeantwortete Forenbeiträge

Updates der Daten, Fehlermeldung
vor 4 Tagen von Egzon 1 / 75
Zwischensumme Adobe Forms
letzen Monat von Lucyalison 1 / 296