SALV Refresh

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

SALV Refresh

Beitrag von Mustafapmk0 (ForumUser / 18 / 11 / 0 ) »
Hallo zusammen,

ich habe ein Programm geschrieben, womit man Status von Aufgaben anzeigen und gegebenfalls freigeben kann. Allerdings habe ich ein Problem mit dem Freigabeprozess. Nach dem man einen Aufgabe freigegeben gedrückt hat, soll die Status erneut abgerufen, in itab aktualisiert und angezeigt werden. Wenn ich aber dafür komplette Prozesse erneut aufrufe, sodass die Tabelle erneut generiert wird, macht aber kein Sinn. Gibt es für Refresh eine bessere Methode oder wie macht man überhaupt sowas?

Vielen Dank im Voraus!

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


Re: SALV Refresh

Beitrag von black_adept (Top Expert / 3943 / 105 / 886 ) »
Hey Mustafa,

du hast doch dem Salv deine Tabelle zum Anzeigen übergeben. In dieser Tabelle tausche den alten Satz durch den neuen aus und benutze dann die REFRESH-MEthode des SALV um die Tabelle neu darstellen zu lassen. ( Hinweis - die Refresh-Methode hat 2 Parameter mit denen man dafür sorgen kann, dass die Scroll-Position sich nicht ändert, so dass es für den User dann so aussieht als ob lediglich die eine Zeile auf den neuesten Stand gebracht worden ist. )

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
Mustafapmk0

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: SALV Refresh

Beitrag von Mustafapmk0 (ForumUser / 18 / 11 / 0 ) »
Ich habe Refresh-Button eingebaut und sollte wie folgt verhalten, dass die Tabelle aktualisiert wird und wieder per SALV angezeigt. Allerdings funktioniert Refresh oder Display Methodenaufruf nicht, um Dynpro zu aktualisieren. Ich muss das Programm wieder schließen und öffnen, wenn ich neue Einträge sehen will, die inzwischen gekommen sind. Wo liegt eigentlich das Problem :x

Code: Alles auswählen.

  CASE gv_okcode.
    WHEN 'BACK'.
      LEAVE PROGRAM.
    WHEN 'CANCEL'.
      LEAVE PROGRAM.
    WHEN 'EXIT'.
      LEAVE PROGRAM.
    WHEN 'REFRESH'.
      REFRESH lt_tabchange.
      FREE gr_container.
      FREE gr_salv.

      SELECT zz_art zz_wert FROM zdr_tab_change INTO TABLE lt_tabchange.

      TRY.
          CALL METHOD cl_salv_table=>factory
            EXPORTING
              r_container  = gr_container
            IMPORTING
              r_salv_table = gr_salv
            CHANGING
              t_table      = lt_tabchange.

        CATCH cx_salv_msg.
      ENDTRY.

      gr_salv->refresh( ).
    WHEN OTHERS.
*      LEAVE PROGRAM.
  ENDCASE.

Re: SALV Refresh

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Hallo Mustafa,

wenn du einen Refresh machst, solltest du vorher nicht die FACTORY Methode aufrufen, damit initialisierst du das Objekt GR_SALV komplett neu. Im Prinzip reicht es, wenn du deinen Eintrag in der Tabelle lt_tabchange aktualisierst und dann die Methode REFRESH deines Objektes GR_SALV aufrufst.
Das Objekt ist ja aktiv vorhanden und hat die Tabelle als Objekt im Bauch. Das heißt, wenn du deine Tabelle änderst und einen REFRESH am bereits instanzierten Objekt durchführst, aktualisiert die SALV Klasse die Tabelle selbst mit den aktuellen Daten.

Folgende Benutzer bedankten sich beim Autor Thanatos82 für den Beitrag:
Mustafapmk0

Gruß,
der Matze

Re: SALV Refresh

Beitrag von Mustafapmk0 (ForumUser / 18 / 11 / 0 ) »
Hallo Matze,

genau! Das hatte ich beim Rumspielen hinzugefügt.
Ich habe das Problem gelöst, indem ich Display-Methode nach dem Refresh aufrufe, da regenerierte Anzeige erst dann angezeigt wird. Allein Refresh reicht nicht aus, um die Anzeige zu aktualisieren.

Danke für eure Unterstützung!

Code: Alles auswählen.

*...
    WHEN 'REFRESH'.

      REFRESH lt_tabchange.

      SELECT zz_art zz_wert FROM zdr_tab_change INTO TABLE lt_tabchange.

      gr_salv->refresh( ).
      gr_salv->display( ).
    WHEN OTHERS.
*...

Re: SALV Refresh

Beitrag von Mustafapmk0 (ForumUser / 18 / 11 / 0 ) »
Ich habe noch mal darauf gestoßen, dass Refresh nicht funktioniert, wenn man zweites mal betätigt hat. Woran kann es liegen?

Seite 1 von 1

Vergleichbare Themen

7
Antw.
1779
Views
SALV Refresh funktioniert nicht
von Abapanfänger » 27.08.2019 12:48 • Verfasst in ABAP® für Anfänger
0
Antw.
975
Views
SALV-Klassen
von mumcs » 27.02.2006 19:23 • Verfasst in ABAP® für Anfänger
1
Antw.
913
Views
GUI_STATUS im SALV
von Abapanfänger » 27.01.2017 09:14 • Verfasst in ABAP® für Anfänger
0
Antw.
961
Views
SALV add_function fehler
von SaskuAc » 23.10.2017 14:02 • Verfasst in ABAP® Core
8
Antw.
6292
Views
SALV - Problem mit der F4-Hilfe
von einar46 » 25.02.2014 11:58 • Verfasst in ABAP Objects®

Ü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

PDF-Anzeige unter EDGE
vor 4 Tagen von jocoder 2 / 66
Etikettendruck mit SmartForms
vor einer Woche von a-dead-trousers 2 / 67

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

PDF-Anzeige unter EDGE
vor 4 Tagen von jocoder 2 / 66
Etikettendruck mit SmartForms
vor einer Woche von a-dead-trousers 2 / 67

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Wochen von Lucyalison 1 / 129
Group Items auf einer Filterbar
vor 4 Wochen von Bright4.5 1 / 164