ALV GRID: Erneutes Lesen der veränderten Daten von der Datenbank und Refresh des ALV GRID

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

Getting started ... Alles für einen gelungenen Start.
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

ALV GRID: Erneutes Lesen der veränderten Daten von der Datenbank und Refresh des ALV GRID

Beitrag von Steffen (ForumUser / 28 / 1 / 0 ) »
Hallo zusammen,

ich verwende die Klasse „cl_gui_alv_grid“, um Daten, welche zuvor von der Datenbank gelesen wurden, anzuzeigen. Soweit so gut.

Im nächsten Schritt, wird über einen Button in der ALV Toolbar, die zuvor selektierten Daten aus dem ALV GRID auf der Datenbank verändert. Diese Veränderung der Daten, möchte ich nun wieder im ALV GRID anzeigen, indem ich die Daten erneut von der Datenbank lese und den ALV aktualisiere.

Das Ganze läuft im Event Handler des ALV ab und zwar in der Methode „HANDLE_USER_COMMAND“.


Mein Problem:

Die ALV Ausgabetabelle (ALV interne Tabelle) beschaffe ich mir aus dem ALV Objekt und überschreibe diese, mit den veränderten Daten, welche zuvor von der Datenbank gelesen wurden. Für die Aktualisierung der Anzeige wird die Methode „refresh_table_display“ verwendet.

Wird nach der Aktualisierung der Anzeige erneut die Funktionalität über den Button ausgelöst, wird folgende Meldung ausgegeben und das Programm wird beendet – ohne Dump.
ALV_Abbruch.png
Hat jemand von Euch eine Idee, voran das liegen könnte bzw. wie man so einen Refresh korrekt realisiert?

Vielen Dank.

Beste Grüße
Steffen

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


Re: ALV GRID: Erneutes Lesen der veränderten Daten von der Datenbank und Refresh des ALV GRID

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin.
Ein ALV, wie Du beschreibst, habe ich ich hier verwendet
http://www.bb1.gate2app.com/viewtopic.php?f=36&t=20626
oder
http://www.bb1.gate2app.com/viewtopic.php?f=36&t=20623
Bild
Vergleiche doch mal die Codings mit Deinem. Ansonsten müßtest Du mal Dein Coding posten, um genaueres aussagen zu können.

gruß Jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: ALV GRID: Erneutes Lesen der veränderten Daten von der Datenbank und Refresh des ALV GRID

Beitrag von Steffen (ForumUser / 28 / 1 / 0 ) »
Hallo Jens,

vielen Dank für Deine Rückmeldung und für die Beispiele. Leider, konnte ich mir aus Deinen Beispielen keine Lösung für mein Problem erarbeiten. Ich würde Dir gerne anhand des Beispiels http://www.bb1.gate2app.com/viewtopic.php?f=36&t=20623 kurz erläutern, wo mein Problem liegt.

Und zwar in dem Form „Handle_User_Command“ in Deinem Beispiel (siehe Screenshot), würde man den Inhalt der „IT_TAB“ zunächst „clearen“, dann per „Select“ die Daten neu von der DB lesen und erneut anzeigen.
Codingauszug.png
Dieses Vorgehen führt zu meinem beschriebenen Problem. Hast Du vielleicht eine Idee, wie man dies korrekt realisiert bzw. welche Codingstellen würdest Du benötigen?

Vielen Dank.

Beste Grüße
Steffen

Re: ALV GRID: Erneutes Lesen der veränderten Daten von der Datenbank und Refresh des ALV GRID

Beitrag von Tron (Top Expert / 1327 / 35 / 332 ) »
Moin.
Beim Arbeiten mit Feldsymbolen auf Tabellen muß man sehr vorsichtig sein und den sy-subrc nach dem assign abfragen.

Code: Alles auswählen.

READ TABLE it_data ASSIGNING <p> INDEX ls_selected_row-row_id.
if sy-subrc = 0.
........
Unassign <p>. " wirkt manchmal Wunder
endif.
Kritischer als das Bearbeiten von Zeilen über Assign ist das Löschen / Einfügen .
Deshalb benutzte ich auch : Delete IT-DATA where Flag = 'X'.
Ist Deine ALV Datentabelle / Feldsymbol global angelegt ?

gruß Jens
<:: XING-Gruppe Tricktresor::>
Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen –
Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

Re: ALV GRID: Erneutes Lesen der veränderten Daten von der Datenbank und Refresh des ALV GRID

Beitrag von Steffen (ForumUser / 28 / 1 / 0 ) »
Hallo Jens,

ja genau, meine ALV Tabelle ist global im TOP-Include angelegt.

Code: Alles auswählen.

DATA:
  gt_data_alv     TYPE tty_data_alv.
Grober Ablauf:
Die Daten werden von der Datenbank gelesen und über den Dynpro-Aufruf in einem ALV (gt_data_alv) angezeigt.

Im ALV selbst gibt es eine Funktion über einen Button, welche grob gesagt eine Datenbankänderung vornimmt. Danach, sollen die geänderten Daten wiederum im ALV (gt_data_alv) angezeigt werden.

Für das erneute Lesen der Daten von der Datenbank verwende ich die gleiche Logik, wie zum Programmstart. Danach, soll die ALV Tabelle innerhalb des ALV Objektes aktualisiert werden. Hierzu habe ich eine eigene Klasse erstellt, welche von der Klasse „cl_gui_alv_grid“ abgleitet ist. Zum setzen der internen ALV Tabelle habe ich folgende Methode erstellt.

Code: Alles auswählen.

  METHOD set_alv_outtab.

    FIELD-SYMBOLS: <ft_outtab> TYPE ANY TABLE.


* CL_GUI_ALV_GRID=>MT_OUTTAB ist eine Datenreferenz und
* muss zunächst dereferenziert werden
    ASSIGN mt_outtab->* TO <ft_outtab>.


* Übergabe der Daten in das ALV Grid Objekt
    <ft_outtab> = it_itab.

  ENDMETHOD.
Diese Methode wird wiederum in einer weiteren Methode aufgerufen inkl. der ALV Standardmethode „refresh_table_display( )“:

Code: Alles auswählen.

  METHOD set_alv_outtab.


    "Übergabe der veränderten ALV Outtab an das Objekt ALV GUI Grid
    mo_grid->set_alv_outtab( it_itab = it_itab ).

    "ALV Grid aktualisieren
    mo_grid->refresh_table_display( ).

  ENDMETHOD.
Danach wird die Fehlermeldung, wie oben beschrieben, angezeigt und das Programm wird beendet.

Beste Grüße
Steffen

Re: ALV GRID: Erneutes Lesen der veränderten Daten von der Datenbank und Refresh des ALV GRID

Beitrag von Steffen (ForumUser / 28 / 1 / 0 ) »
Hallo,

das Problem war kein ALV-Problem, sondern eines FuBa's, welcher die Daten auf die Datenbank schreibt.

Das Thema hat sich somit erledigt.

Beste Grüße
Steffen

Seite 1 von 1

Vergleichbare Themen

4
Antw.
7037
Views
Refresh ALV-Grid
von sapdepp » 04.08.2011 10:24 • Verfasst in ABAP Objects®
2
Antw.
9615
Views
Refresh von ALV GRID
von mcan » 18.01.2006 16:27 • Verfasst in ABAP Objects®
1
Antw.
1740
Views
alv grid automatisch refresh
von norty » 20.07.2009 16:40 • Verfasst in ABAP® für Anfänger
4
Antw.
2474
Views
Aus ALV-Grid und Datenbank löschen
von PFCLER » 12.03.2017 15:15 • Verfasst in ABAP® für Anfänger
-1
Antw.
7
Views
ALV Grid nach Refresh nicht mehr eingabebereit
von Dorough » 15.11.2024 10:44 • Verfasst in Dialogprogrammierung

Ü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

Eclipse - warum/wann verwendet ihr es [nicht]
vor 34 Minuten von tar 21 / 1378
Dialog-Container mit Toolbar/Status
vor 3 Stunden von DeathAndPain gelöst 22 / 2785
Daten an Tabelle binden
vor 7 Stunden von Lukas Sanders 2 / 866
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 421

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

Eclipse - warum/wann verwendet ihr es [nicht]
vor 34 Minuten von tar 21 / 1378
Dialog-Container mit Toolbar/Status
vor 3 Stunden von DeathAndPain gelöst 22 / 2785
Daten an Tabelle binden
vor 7 Stunden von Lukas Sanders 2 / 866
Zeilenumbrüche ersetzen
vor 2 Tagen von ralf.wenzel 6 / 421

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2457
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9043