Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

ALV Layout on selection screen?

rainer_hbenthal
Active Contributor
0 Likes
2,794

Is it possible to offer the ALV Layouts on the selection screen? And how can i pass such a variant to the reuse-FM?

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
772

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.

Is it possible to offer the ALV Layouts on the selection screen? And how can i pass such a variant to the reuse-FM?

3 REPLIES 3
Read only

Former Member
0 Likes
773

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.

Read only

Former Member
0 Likes
772

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.

Read only

0 Likes
772

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.