ALV Layout Auswahl auf Selection Screen

Posten Sie hier Tutorials & Cookbooks.
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

ALV Layout Auswahl auf Selection Screen

Beitrag von Tron (Top Expert / 1231 / 26 / 303 ) »
Hallo.
Häufig gewünscht, ist die Auswahl einer ALV Layoutvariante auf dem Selection Screen (wie bei den Querys).
Das hat den Vorteil das bei Reportstart eine zuvor definierte Layout Variante mitgegeben werden kann.
Layout Varianten können Global , oder Benutzerbezogen sein. Beide Arten werden vom Baustein REUSE_ALV_VARIANT_F4 unterstützt.
Beispiel:

Code: Alles auswählen.


CONSTANTS: gc_save  TYPE c VALUE 'A'.
     :
     :
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-b02.
PARAMETERS: p_vari TYPE slis_vari DEFAULT '/GLOBAL'.
SELECTION-SCREEN END OF BLOCK b2.
     :
     :
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
  PERFORM f_alv_variant_f4 CHANGING p_vari.
     :
     :
*&---------------------------------------------------------------------*
*&      Form  ALV_VARIANT_F4
*&---------------------------------------------------------------------*
*       Layout variant search help
*----------------------------------------------------------------------*
FORM f_alv_variant_f4 CHANGING p_vari.

  DATA: lwa_variant TYPE disvariant.

  lwa_variant-report   = sy-repid.
  lwa_variant-username = sy-uname.

  CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
    EXPORTING
      is_variant    = lwa_variant
      i_save        = gc_save
    IMPORTING
      es_variant    = lwa_variant
    EXCEPTIONS
      not_found     = 1
      program_error = 2
      OTHERS        = 3.
  IF sy-subrc = 0.
    p_vari = lwa_variant-variant.
  ENDIF.
ENDFORM.                               " ALV_VARIANT_F4
 
     :
     :
    is_variant-report = sy-repid.
    is_variant-variant = p_vari.


    CALL METHOD grid1->set_table_for_first_display
      EXPORTING
        is_variant           = is_variant
        i_save               = gv_save
        is_layout            = gs_layout
        it_toolbar_excluding = lt_exclude
      CHANGING
        it_outtab            = it_data[]
        it_fieldcatalog      = gt_fieldcat[].

viel Erfolg
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 Layout Auswahl auf Selection Screen

Beitrag von a-dead-trousers (Top Expert / 3645 / 126 / 948 ) »
Wichtig wäre noch zu erwähnen, dass man mit "lwa_variant-handle" bzw. "is_variant-handle" unterschiedliche Listviewer Instanzen (wenn das Ergebnis mehrere unterschiedlich aufgebaute Listen umfasst) verwalten kann. Jeder Instanz wird ein eigener Handle zugewiesen und somit werden auch dann die Layouts nicht "vermischt".
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.07
Basis: 7.40

Re: ALV Layout Auswahl auf Selection Screen

Beitrag von Tron (Top Expert / 1231 / 26 / 303 ) »
Sehr gut...
Hier ein Beispiel mit Handles zur Unterstützung mehrerer ALV-GRIDS.

rb_ovrvw / rb_prcr / rb_otlg sind hier die Kriterien zur Unterscheidung von ALVs mit unterschiedlicher Ausgabe Struktur .

Code: Alles auswählen.

INITIALIZATION.
 DATA:gwa_variant TYPE disvariant.

  gwa_variant-report = sy-repid.
*  gwa_variant-username = sy-uname.

  IF NOT rb_ovrvw IS INITIAL.
    gwa_variant-handle = 'A001'.
  ELSEIF  NOT  rb_prcr IS INITIAL.
    gwa_variant-handle = 'A002'.
  ELSEIF NOT rb_otlg IS INITIAL.
    gwa_variant-handle = 'A003'.
  ENDIF.

  CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
    EXPORTING
      i_save        = gc_save
    CHANGING
      cs_variant    = gwa_variant
    EXCEPTIONS
      wrong_input   = 1
      not_found     = 2
      program_error = 3
      OTHERS        = 4.

  p_vari = gwa_variant-variant.
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 Layout Auswahl auf Selection Screen

Beitrag von black_adept (Top Expert / 3510 / 70 / 691 ) »
Und wer keine Funktionsbausteine mag weil Klassen viel, viel, viel moderner sind oder sich die beiden eben angesprochenen Bausteine nicht merken will nimmt die Klasse CL_SALV_LAYOUT_SERVICE welche dann nach ein paar Zeilen Coding dann auch die o.a. Funktionsbausteine aufruft.

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag (Insgesamt 3):
a-dead-trousersewxTron

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Über diesen Beitrag



Unterstütze die Community und teile den Beitrag für mehr Leser und besseren Inhalt:

Aktuelle Forenbeiträge

BATCH INPUT MAPPE
vor 2 Stunden von Juri 1 / 14
Batch-Job E-Mail Versand
vor 11 Stunden von jocoder 2 / 41

Vergleichbare Themen

Layout Auswahl
von Vittel » 25.07.2013 15:09
Nach Auswahl einen gewissen Screen aufbauen!!!!
von porto78 » 26.03.2008 16:57
Selection Screen
von burggartenkind » 02.08.2019 05:46
at selection-screen....
von domezug » 25.07.2007 09:07
At Selection-Screen
von L0w-RiDer » 22.08.2019 15:42