Dynpro zeigt immer wieder das gleiche ALV

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

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

Dynpro zeigt immer wieder das gleiche ALV

Beitrag von mareikemei92 (ForumUser / 49 / 19 / 0 ) »
Hallo zusammen,

Ich brauche dringend eure Hilfe! Nachdem ich nun mit jeglichen SAP-Entwicklern meiner Abteilung gesucht habe und den Fehler immernoch nicht gefunden habe, hoffe ich hier auf Hilfe.

Ich habe ein ALV-Grid, in dem ich mit einem Hotspot-Klick ein zweites ALV-Grid aufrufe, das Änderungen zu einer Stücklistenposition anzeigt. Nun ist es so, dass (egal auf welcher Zeile meines ALV-Grids ich den Hotspot-Klick auslöse) ich immer die Änderungen der zuerst angeklickten Position gezeigt bekomme. Nun habe ich es mit FREE instance probiert, wenn ich zum zweiten Mal Änderungen anzeigen möchte ist meine Instance (die das ALV-Grid und die Anzeigetabelle im Bauch hat) leer. Laut Debugger hat die neu erstellte Instanz auch die richtige Ausgabetabelle im Bauch. Aber es kommt immer wieder das ALV-Grid der zuerst angezeigten Änderung.

Hier mal mein Code aus dem PBO des Dynpros 201 (das vom Dynpro 200 aus aufgerufen wird):

Code: Alles auswählen.

  FIELD-SYMBOLS: <fs_grid>        TYPE REF TO  cl_gui_alv_grid.
  FIELD-SYMBOLS: <fs_data_s>    TYPE             /gebf/tf_data_eplan.
  FIELD-SYMBOLS: <fs_data_tab> TYPE             /gebf/tf_data_eplan_tab.

  DATA: lo_eplan_aend   TYPE REF TO /gebf/cl_tf_eplan_aend.
  DATA: lt_eplan_aend   TYPE        /gebf/tt_tf_eplan_aend.
  DATA: lv_row              TYPE        i.
  DATA: ls_row_id          TYPE        lvc_s_row.

FREE: lo_eplan_aend.

  ASSIGN go_tf_eplan->go_grid TO <fs_grid>.

  CALL METHOD <fs_grid>->get_current_cell
    IMPORTING
      e_row     = lv_row
      es_row_id = ls_row_id.

  ASSIGN go_tf_eplan->gt_data_eplan TO <fs_data_tab>.

  READ TABLE <fs_data_tab> INDEX lv_row ASSIGNING <fs_data_s>.

  CREATE OBJECT lo_eplan_aend
    EXPORTING
      iv_stlnr = <fs_data_s>-stlnr
      iv_stlty = <fs_data_s>-stlty
      iv_stlkn = <fs_data_s>-stlkn
      iv_stpoz = <fs_data_s>-stpoz
      iv_idnrk = <fs_data_s>-idnrk.
Und das passiert bei CREATE OBJECT:

Code: Alles auswählen.

METHOD start.

    me->read_changedocument( ).

  me->create_output_tab( ).

  CREATE OBJECT mo_container
    EXPORTING
      container_name              = mc_container_name
    EXCEPTIONS
      cntl_error                  = 1
      cntl_system_error           = 2
      create_error                = 3
      lifetime_error              = 4
      lifetime_dynpro_dynpro_link = 5
      OTHERS                      = 6.

  CREATE OBJECT mo_grid
    EXPORTING
      i_parent = mo_container.

  me->set_alv_grid( ).

ENDMETHOD.
In der Methdode set_alv_grid:

Code: Alles auswählen.

  CALL METHOD mo_grid->set_table_for_first_display
    EXPORTING
      i_structure_name              = mc_structure_name
      is_variant                    = ms_variant
      is_layout                     = ms_layout
    CHANGING
      it_outtab                     = mt_output
    EXCEPTIONS
      invalid_parameter_combination = 1
      program_error                 = 2
      too_many_lines                = 3
      OTHERS                        = 4.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
Ich hoffe wirklich, dass jemand von euch eine zündende Idee hat! Ich glaube, ich steh total auf dem Schlauch und seh den Wald vor lauter Bäumen nicht mehr.. :-(

In Hoffnung auf baldige Rückmeldung!
Mareike

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


Re: Dynpro zeigt immer wieder das gleiche ALV

Beitrag von black_adept (Top Expert / 4099 / 128 / 941 ) »
Hallo Mareike,

das ist doch der "typische" Gridfehler. Du baust bei bei jedem Verzweigen den 2. ALV in einem neuen Container neu auf statt den bisherige weiter zu verwenden oder nach Verwendung abzubauen. Das hat zur Folge, dass im Container auf denem Screen beim 2. Aufruf 2, beim 3. Aufruf 3 usw Customcontainer sind. ( Kannst du nachprüfen indem du einen Breakpoint hinter das Erzeugen von mo_container setzt, dann im Debugger im mo_container den Parent Container suchst und dort dann feststellen wirst, dass diese nun mehrere Children in seiner Childliste hat ). Da neue Container aber immer HINTER aktuellen Containern eingereiht werden siehst du halt weiterhin den zuerst erstellten Container + Grid.

Korrekturmöglichkeiten.
Entweder schaust du nach, ob dein mo_container und mo_grid schon existieren und wenn ja erzeugst du keine neuen Instanzen. Und wenn du auf ein schon bestehendes Grid triffst verwendest du dann den refresh um die neuen Daten anzuzeigen statt des SET_TABLE_FOR_FIRST_DISPLAY
Oder du sorgst nach dem Verlassen des Detaildynpros dafür, dass sowohl dein Grid als auch den Container mittels "FREE" sauber abgebaut werden, so dass du dann beim nächsten Aufruf wieder alles neu erzeugen kannst aber dieses mal kein "alter" Container mehr existiert, der deinen neuen Container/Grid verdeckt.

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

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Dynpro zeigt immer wieder das gleiche ALV

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
black_adept hat geschrieben:... dass sowohl dein Grid als auch den Container mittels "FREE" sauber abgebaut werden ...
Gemeint ist die Methode FREE( ) und nicht der Befehl FREE. (mareikemei92 verwendet in seinem ersten Post ganz oben das obsolete FREE)
Siehe dazu auch die Hilfe zu diesem Befehl. Dieses FREE hat aber nichts mit der Methode FREE( ) der CL_GUI_CONTROLs gemeinsam und bewirkt etwas völlig anderes.

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

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: Dynpro zeigt immer wieder das gleiche ALV

Beitrag von mareikemei92 (ForumUser / 49 / 19 / 0 ) »
Hallo zusammen,

Klingt natürlich total logisch! Ich dachte mir schon, dass der Fehler bei einer recht einfachen Sache liegt, ich aber total auf dem Schlauch stehe.

Ich habe die Methode gewählt, dass ich beim Schließen des Detaildynpros den Container und das Grid sauber abbaue. Das hatte ich gestern auch schon probiert, aber dabei nur das Grid abgebaut, aber nicht den Container. Das wird mir nicht mehr passieren, wieder was gelernt. Danke!

Seite 1 von 1

Vergleichbare Themen

3
Antw.
1539
Views
Gleiche Fubas in Web-Dynpro aufrufen wie in SAP Gui?
von hund555 » 17.11.2022 16:37 • Verfasst in Web-Dynpro, BSP + BHTML
2
Antw.
1589
Views
Gleiche Zeilen zusammenfassen
von EnginT » 22.12.2020 14:59 • Verfasst in ABAP® Core
4
Antw.
1803
Views
Gleiche Parameter mehrfach verwenden?
von erzoo24 » 24.06.2015 13:23 • Verfasst in ABAP® für Anfänger
1
Antw.
1659
Views
Groups - gleiche Anordnung der Felder
von sidneyweiher » 18.08.2014 09:00 • Verfasst in Web-Dynpro, BSP + BHTML
2
Antw.
5792
Views
Gleiche Datensätze aus interner Tabelle auslesen
von Marc K. » 06.03.2012 09:36 • Verfasst in ABAP® für Anfänger

Ü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

Regex in where
vor 9 Stunden von edwin 7 / 166
Daten an Tabelle binden
vor 22 Stunden von Bright4.5 3 / 1487

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

Regex in where
vor 9 Stunden von edwin 7 / 166
Daten an Tabelle binden
vor 22 Stunden von Bright4.5 3 / 1487

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9822