2005 Oct 12 11:09 AM
Is it possible to offer the ALV Layouts on the selection screen? And how can i pass such a variant to the reuse-FM?
2005 Oct 12 11:20 AM
Hello Rainer,
I suppose you mean for your own Abaps? Yes you can, just implement the following code:
*-For selection screen:
SELECTION-SCREEN BEGIN OF BLOCK disvar.
PARAMETERS:
pa_disva TYPE slis_vari.
SELECTION-SCREEN END OF BLOCK disvar.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_disva.
PERFORM variant_search
CHANGING pa_disva.
*-Form routine:
DATA:
zlv_f4_exit TYPE c,
zls_variant TYPE disvariant.
CLEAR:
zls_variant.
zls_variant-report = syst-repid.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = zls_variant
i_save = 'A'
IMPORTING
e_exit = zlv_f4_exit
es_variant = zls_variant
EXCEPTIONS
not_found = 1
program_error = 2
OTHERS = 3.
IF syst-subrc EQ 0 AND
zlv_f4_exit IS INITIAL.
pv_variant = zls_variant-variant.
ENDIF.
Regards,
John.
Hello Rainer,
I suppose you mean for your own Abaps? Yes you can, just implement the following code:
*-For selection screen:
SELECTION-SCREEN BEGIN OF BLOCK disvar.
PARAMETERS:
pa_disva TYPE slis_vari.
SELECTION-SCREEN END OF BLOCK disvar.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_disva.
PERFORM variant_search
CHANGING pa_disva.
*-Form routine:
DATA:
zlv_f4_exit TYPE c,
zls_variant TYPE disvariant.
CLEAR:
zls_variant.
zls_variant-report = syst-repid.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = zls_variant
i_save = 'A'
IMPORTING
e_exit = zlv_f4_exit
es_variant = zls_variant
EXCEPTIONS
not_found = 1
program_error = 2
OTHERS = 3.
IF syst-subrc EQ 0 AND
zlv_f4_exit IS INITIAL.
pv_variant = zls_variant-variant.
ENDIF.
Regards,
John.
2005 Oct 12 11:20 AM
Hello Rainer,
I suppose you mean for your own Abaps? Yes you can, just implement the following code:
*-For selection screen:
SELECTION-SCREEN BEGIN OF BLOCK disvar.
PARAMETERS:
pa_disva TYPE slis_vari.
SELECTION-SCREEN END OF BLOCK disvar.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_disva.
PERFORM variant_search
CHANGING pa_disva.
*-Form routine:
DATA:
zlv_f4_exit TYPE c,
zls_variant TYPE disvariant.
CLEAR:
zls_variant.
zls_variant-report = syst-repid.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = zls_variant
i_save = 'A'
IMPORTING
e_exit = zlv_f4_exit
es_variant = zls_variant
EXCEPTIONS
not_found = 1
program_error = 2
OTHERS = 3.
IF syst-subrc EQ 0 AND
zlv_f4_exit IS INITIAL.
pv_variant = zls_variant-variant.
ENDIF.
Regards,
John.
2005 Oct 12 11:24 AM
Hi,
Yes u can do it.Check this sample code
Variant for ALV display
SELECTION-SCREEN BEGIN OF BLOCK 0 WITH FRAME TITLE text-000.
<b>PARAMETERS: p_varnt LIKE disvariant-variant.</b>
DATA: w_save(1) TYPE c,
w_default(1) TYPE c,
i_variant LIKE disvariant,
i_variant1 LIKE disvariant.
INITIALIZATION.
i_variant-report = w_repid.
i_variant1 = i_variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = w_save
CHANGING
cs_variant = i_variant1
EXCEPTIONS
not_found = 2.
IF sy-subrc = 0.
p_varnt = i_variant1-variant.
ENDIF.
Process on value request (list of possible variants)
<b>AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_varnt.</b>
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = i_variant
i_save = w_save
it_default_fieldcat =
IMPORTING
e_exit = w_exit
es_variant = i_variant1
EXCEPTIONS
not_found = 2.
IF sy-subrc = 2.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
IF w_exit = space.
p_varnt = i_variant1-variant.
ENDIF.
ENDIF.
<b>AT SELECTION-SCREEN.</b>
IF NOT p_varnt IS INITIAL.
MOVE i_variant TO i_variant1.
MOVE p_varnt TO i_variant1-variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
i_save = w_save
CHANGING
cs_variant = i_variant1.
i_variant = i_variant1.
ELSE.
PERFORM variant_init.
ENDIF.
START_OF_SELECTION.
Call ABAP/4 List Viewer
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
i_callback_program = w_repid
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
i_structure_name = 'SFLIGHT'
i_background_id = 'ALV_BACKGROUND'
I_GRID_TITLE =
I_GRID_SETTINGS =
is_layout = i_layout
it_fieldcat = i_fieldcat[]
IT_EXCLUDING =
it_special_groups = i_sp_group[]
it_sort = i_sort[]
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
i_save = w_save
<b> is_variant = i_variant</b>
it_events = i_events[]
IT_EVENT_EXIT =
is_print = i_print
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = i_sflight
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Hope u understood.
Thanks&Regards,
Ruthra.
2006 Oct 10 4:04 PM
Hi ruthra..
I am not able to incorporate the code that u have given here can u please provide the total code for displaying the ALV layout on selection screen.
Thank's in advance.
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |