Klasse CL_SALV_LAYOUT_SERVICE funktioniert nicht für Z Report

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

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

Klasse CL_SALV_LAYOUT_SERVICE funktioniert nicht für Z Report

Beitrag von ABAPlerv (ForumUser / 81 / 24 / 1 ) »
Hallo,

Wenn ich die Klasse CL_SALV_LAYOUT_SERVICE verwende direkt in der SE24 und den Namen von meinem Z Report in der Methode GET_DEFAULT_LAYOUT mitgebe, bekomme ich meine Layouts nicht. Layouts sind im ALV natürlich vorhanden.

Bei dem Versuch mit einem Demo Programm SALV_DEMO_TABLE_LAYOUT funktioniert es wunderbar.

Weiß wer wieso?

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


Re: Klasse CL_SALV_LAYOUT_SERVICE funktioniert nicht für Z Report

Beitrag von ewx (Top Expert / 4846 / 311 / 642 ) »
Hast du denn ein Layout als "Default" markiert?

Re: Klasse CL_SALV_LAYOUT_SERVICE funktioniert nicht für Z Report

Beitrag von ABAPlerv (ForumUser / 81 / 24 / 1 ) »
ewx hat geschrieben:
21.11.2022 11:42
Hast du denn ein Layout als "Default" markiert?

Ja habe ich.

Auch habe ich die andere Methode get_layouts verwendet

Re: Klasse CL_SALV_LAYOUT_SERVICE funktioniert nicht für Z Report

Beitrag von ST22 (Specialist / 279 / 43 / 41 ) »
Evtl. Groß/Kleinschrift in der SE24 markiert?
Programname groß und korrekt geschrieben?
Layout Puffer refreshed?

Re: Klasse CL_SALV_LAYOUT_SERVICE funktioniert nicht für Z Report

Beitrag von ABAPlerv (ForumUser / 81 / 24 / 1 ) »
ST22 hat geschrieben:
22.11.2022 09:19
Evtl. Groß/Kleinschrift in der SE24 markiert?
Programname groß und korrekt geschrieben?
Layout Puffer refreshed?

Alles gemacht. Layout im Report wurde mit der Klasse cl_salv_layout generiert.

Kann es damit zusammenhängen?

Re: Klasse CL_SALV_LAYOUT_SERVICE funktioniert nicht für Z Report

Beitrag von ewx (Top Expert / 4846 / 311 / 642 ) »
poste doch mal deinen relevanten lauffähigen Quelltext.
Das kann evtl. auch ein Release-abhängiger Fehler sein.

Re: Klasse CL_SALV_LAYOUT_SERVICE funktioniert nicht für Z Report

Beitrag von ABAPlerv (ForumUser / 81 / 24 / 1 ) »
das wäre mal der Report, aber die klasse cl_salv_layout_service sollte trotzdem mir die Layouts in se24 zeigen unabhänging wie mein Programm läuft oder nicht?

Code: Alles auswählen.

PARAMETERS:       p_layout    TYPE disvariant-variant.

INITIALIZATION.
  PERFORM get_default_layout CHANGING p_layout.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_layout.
  PERFORM f4_layouts CHANGING p_layout.

START-OF-SELECTION.
  TRY.
      CALL METHOD cl_salv_table=>factory
        EXPORTING
          r_container  = cl_gui_custom_container=>default_screen
        IMPORTING
          r_salv_table = DATA(r_alv)
        CHANGING
          t_table      = gt_data
    CATCH cx_salv_msg.
  ENDTRY. 

    ls_layout-report = sy-repid.
    data(r_layout)= _r_alv->get_layout( ).
if r_layout is bound.
   r_layout->set_key( ls_layout ).
    r_layout->set_save_restriction( if_salv_c_layout=>restrict_none ).
endif.

" 2 includes für Unterprogramme
FORM get_default_layout  CHANGING p_p_layout.
  DATA:
    ls_layout TYPE salv_s_layout_info,
   ls_key    TYPE salv_s_layout_key.

  ls_key-report = sy-repid.

  ls_layout = cl_salv_layout_service=>get_default_layout(
    s_key = ls_key
    ).

 p_layout = ls_layout-layout.

ENDFORM.

FORM f4_layout  CHANGING p_p_layout.
  DATA: ls_layout TYPE SALV_S_LAYOUT_INFO,
        ls_key    TYPE salv_s_layout_key.

  ls_key-report = sy-repid.

  ls_layout       = cl_salv_layout_service=>GET_DEFAULT_LAYOUT( s_key    = ls_key ).
*  p_layout = ls_layout-layout.

ENDFORM.

Re: Klasse CL_SALV_LAYOUT_SERVICE funktioniert nicht für Z Report

Beitrag von ST22 (Specialist / 279 / 43 / 41 ) »
Du solltest nicht SY-REPID verwenden, sondern lieber explizit dein Programmnamen übergeben.
Ich vermute, dass du die Layouts zu einem anderen Pgm. abspeicherst.

Folgende Benutzer bedankten sich beim Autor ST22 für den Beitrag:
ABAPlerv


Re: Klasse CL_SALV_LAYOUT_SERVICE funktioniert nicht für Z Report

Beitrag von ABAPlerv (ForumUser / 81 / 24 / 1 ) »
ST22 hat geschrieben:
22.11.2022 14:16
Du solltest nicht SY-REPID verwenden, sondern lieber explizit dein Programmnamen übergeben.
Ich vermute, dass du die Layouts zu einem anderen Pgm. abspeicherst.
Stark! Hätte ich niemals gedacht!!!
Danke..
Wieso hilft SY-REPID nicht?

Re: Klasse CL_SALV_LAYOUT_SERVICE funktioniert nicht für Z Report

Beitrag von ST22 (Specialist / 279 / 43 / 41 ) »
Weil SY-REPID irgendwo im Aufruf Stack wieder überschrieben wird.
Allgemein gilt, beim Umgang mit den SY-Feldern immer zu bedenken, dass die systemseitig "ständig" wieder überschrieben werden können. Von daher ist es oft angebracht, sich den aktuellen Wert lieber in einer eigenen Variablen zwischen zu speichern und mit der eigenen Variablen weiter zu arbeiten.
Typische Falle sind da SY-TABIX und SY-INDEX aber auch SY-REPID ;-)
VG
Frank

Re: Klasse CL_SALV_LAYOUT_SERVICE funktioniert nicht für Z Report

Beitrag von ewx (Top Expert / 4846 / 311 / 642 ) »
Ich habe immer SY-CPROG für solche Fälle genommen.
Ab einem bestimmten Release hat sich das Verhalten auch geändert, so dass SY-REPID immer den Programmnamen des Aufrufers behalten hat.
Welches Release habt ihr?

Seite 1 von 1

Vergleichbare Themen

2
Antw.
736
Views
SALV - gespeichertes Layout als ITAB
von nickname8 » 03.04.2019 12:16 • Verfasst in ABAP® für Anfänger
0
Antw.
1475
Views
SALV - Layout wird nicht gezogen
von ralf.wenzel » 15.02.2019 16:16 • Verfasst in ABAP Objects®
7
Antw.
2175
Views
SALV Refresh funktioniert nicht
von Abapanfänger » 27.08.2019 12:48 • Verfasst in ABAP® für Anfänger
8
Antw.
9760
Views
web service und klasse
von youno » 23.01.2012 13:03 • Verfasst in ABAP® für Anfänger
2
Antw.
1969
Views
Form / Endform in Layout funktioniert nicht
von Kona » 02.05.2006 11:30 • Verfasst in Web-Dynpro, BSP + BHTML

Ü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

Dialog-Container mit Toolbar/Status
vor einer Stunde von DeathAndPain gelöst 22 / 2758
Daten an Tabelle binden
vor 6 Stunden von Lukas Sanders 2 / 839

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

Dialog-Container mit Toolbar/Status
vor einer Stunde von DeathAndPain gelöst 22 / 2758
Daten an Tabelle binden
vor 6 Stunden von Lukas Sanders 2 / 839

Unbeantwortete Forenbeiträge

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