Può capitare di voler lanciare un report che utilizza una ALV e di voler visualizzare il risultato utilizzando un layout precedentemente salvato.
Per far ciò è possibile utilizzare il seguente codice:
Definire il parameter per il layout:
PARAMETERS: pa_vari TYPE slis_vari.
Implementare una function che verrà chiamata come help di ricerca del parametro in selezione:
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_vari.
PERFORM alv_variant_f4 CHANGING pa_vari.
La funzione alv_variant_f4 avrà il seguente codice:
FORM alv_variant_f4 CHANGING pa_vari.
DATA: rs_variant LIKE disvariant.
DATA nof4 TYPE c.
CLEAR nof4.
LOOP AT SCREEN.
IF screen-name = 'PA_VARI'.
IF screen-input = 0.
nof4 = 'X'.
ENDIF.
ENDIF.
ENDLOOP.
rs_variant-report = sy-repid.
rs_variant-username = sy-uname.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = rs_variant
i_save = 'A'
IMPORTING
es_variant = rs_variant
EXCEPTIONS
OTHERS = 1.
IF sy-subrc = 0 AND nof4 EQ space.
pa_vari = rs_variant-variant.
ENDIF.
ENDFORM.
Successivamente muovere il layout selezionato nel layout da utilizzare nell'alv:
MOVE pa_vari TO gs_variant-variant.
e passare il parametro alla function 'REUSE_ALV_GRID_DISPLAY' :
is_variant = gs_variant
Il risultato è una popup simile a quella mostrata in figura:
mercoledì 16 settembre 2009
Iscriviti a:
Commenti sul post (Atom)
Nessun commento:
Posta un commento