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

EVENT CATALOG

Former Member
0 Likes
392

AND WHAT IS EVENT CATALOG AND ITS UTILITY

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
355

The other function module is used to display the internal output table with the contents

FUNCTION reuse_alv_list_display.

*"----


""Lokale Schnittstelle:

*” IMPORTING

*" VALUE(I_INTERFACE_CHECK) DEFAULT SPACE

*" VALUE(I_CALLBACK_PROGRAM) LIKE SY-REPID DEFAULT SPACE

*" VALUE(I_CALLBACK_PF_STATUS_SET) TYPE SLIS_FORMNAME

*" DEFAULT SPACE

*" VALUE(I_CALLBACK_USER_COMMAND) TYPE SLIS_FORMNAME

*" DEFAULT SPACE

*" VALUE(I_STRUCTURE_NAME) LIKE DD02L-TABNAME OPTIONAL

*" VALUE(IS_LAYOUT) TYPE SLIS_LAYOUT_ALV OPTIONAL

*" VALUE(IT_FIELDCAT) TYPE SLIS_T_FIELDCAT_ALV OPTIONAL

*" VALUE(IT_EXCLUDING) TYPE SLIS_T_EXTAB OPTIONAL

*" VALUE(IT_SPECIAL_GROUPS) TYPE SLIS_T_SP_GROUP_ALV

*" OPTIONAL

*" VALUE(IT_SORT) TYPE SLIS_T_SORTINFO_ALV OPTIONAL

*" VALUE(IT_FILTER) TYPE SLIS_T_FILTER_ALV OPTIONAL

*" VALUE(IS_SEL_HIDE) TYPE SLIS_SEL_HIDE_ALV OPTIONAL

*" VALUE(I_DEFAULT) DEFAULT 'X'

" VALUE(I_SAVE) DEFAULT SPACE

" VALUE(IS_VARIANT) LIKE DISVARIANT

" STRUCTURE DISVARIANT DEFAULT SPACE

" VALUE(IT_EVENTS) TYPE SLIS_T_EVENT OPTIONAL

" VALUE(IT_EVENT_EXIT) TYPE SLIS_T_EVENT_EXIT OPTIONAL

" VALUE(IS_PRINT) TYPE SLIS_PRINT_ALV OPTIONAL

" VALUE(IS_REPREP_ID) TYPE SLIS_REPREP_ID OPTIONAL

" VALUE(I_SCREEN_START_COLUMN) DEFAULT 0

" VALUE(I_SCREEN_START_LINE) DEFAULT 0

" VALUE(I_SCREEN_END_COLUMN) DEFAULT 0

" VALUE(I_SCREEN_END_LINE) DEFAULT 0

" EXPORTING

" VALUE(E_EXIT_CAUSED_BY_CALLER)

" VALUE(ES_EXIT_CAUSED_BY_USER) TYPE SLIS_EXIT_BY_USER

" TABLES

" T_OUTTAB

" EXCEPTIONS

" PROGRAM_ERROR

Import parameters

I_INTERFACE_CHECK: Interface consistency check log output.

I_CALLBACK_PROGRAM: Name of the calling program

I_CALLBACK_PF_STATUS_SET: Set EXIT routine to status.

I_CALLBACK_USER_COMMAND: EXIT routine for command handling

I_STRUCTURE_NAME: Internal output table structure name

IS_LAYOUT: List layout specifications

IT_FIELDCAT: Field catalog with field descriptions

IT_EXCLUDING: Table of inactive function codes

IT_SPECIAL_GROUPS: Grouping fields for column selection

IT_SORT: Sort criteria for first list display

IT_FILTER: Filter criteria for first list output

IS_SEL_HIDE : Selection information modification

I_DEFAULT: Initial variant active/inactive logic

I_SAVE: Variants can be saved

IS_VARIANT : Variant information

IT_EVENTS: Table of events to perform

IT_EVENT_EXIT : Standard fcode exit requests table

IS_PRINT: Print information

IS_REPREP_ID: Initialization keys for Re/Re interface

I_SCREEN_START_COLUMN: Coordinates for list in dialog box

I_SCREEN_START_LINE: Coordinates for list in dialog box

I_SCREEN_END_COLUMN: Coordinates for list in dialog box

I_SCREEN_END_LINE: Coordinates for list in dialog box

IT_EVENT_EXIT: Standard fcode exit requests table

IS_PRINT: Print information

IS_REPREP_ID: Initialization keys for Re/Re interface

I_SCREEN_START_COLUMN: Coordinates for list in dialog box

I_SCREEN_START_LINE: Coordinates for list in dialog box

I_SCREEN_END_COLUMN: Coordinates for list in dialog box

I_SCREEN_END_LINE: Coordinates for list in dialog box

Export parameters

E_EXIT_CAUSED_BY_CALLER: Delete list in CALLBACK_USER_COMMAND

ES_EXIT_CAUSED_BY_USER: How the user left the list Tables

T_OUTTAB: Table with data to be displayed ---mandatory

Example Code

WS_REPNAME = SY-REPID.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = WS_REPNAME

I_INTERNAL_TABNAME = Internal output table field name

I_INCLNAME = WS_REPNAME

CHANGING

CT_FIELDCAT = I_FIELDTAB.

IF SY-SUBRC <> 0.

WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_FIELDCATALOG_MERGE'.

ENDIF.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = WS_REPNAME

I_STRUCTURE_NAME = Internal output table field name

IS_LAYOUT = I_LAYOUT

IT_FIELDCAT = I_FIELDTAB

I_DEFAULT = 'A'

I_SAVE = 'A'

IS_VARIANT = 'X'

IT_EVENTS = I_EVENTS[]

IT_SORT = I_SORT

IS_SEL_HIDE = I_SELINFO

TABLES

T_OUTTAB = Internal output table field name.

IF SY-SUBRC <> 0.

WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_LIST_DISPLAY'.

ENDIF

THIS IS THE POP UP TO ALLOW THE USER TO DYNAMICALLY SELECT THE FIELDS FOR DISPLAY. HE CAN CHOOSE FROM THIS FIELDS ACC. TO REQUIREMENT AND HIDE THE OTHER FIELDS

Example report output based prior to selection of the field

THE USER HAS HIDDEN SOME OF THE FIELD FROM THE TOTAL FIELDS TO CUSTOMIZE THE REPORT OUTPUT

Example report output after hiding some of the fields

USER CAN CHOOSE A PARTICULAR SET OF FIELD FROM THE OUTPUT AND CAN SAVE IT AS VARIANTS

Using other function module 'REUSE_ALV_GRID_DISPLAY’ can help us get list output in the form of a grid and also attach logos to the report output.

Sample code

1 Simple list output:

REPORT Y_DEMO_ALV NO STANDARD PAGE HEADING.

*

  • Data to be displayed

DATA: I_SFLIGHT TYPE TABLE OF SFLIGHT.

----


  • Selection

SELECT * FROM SFLIGHT INTO TABLE I_SFLIGHT.

  • Call ABAP List Viewer (ALV)

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_STRUCTURE_NAME = 'SFLIGHT'

TABLES

T_OUTTAB = I_SFLIGHT.

2.Simple grid output:

REPORT Y_DEMO_ALV_1.

*

  • Data to be displayed

DATA: I_SFLIGHT TYPE TABLE OF SFLIGHT.

----


  • Selection

SELECT * FROM SFLIGHT INTO TABLE I_SFLIGHT.

  • Call ABAP List Viewer (ALV)

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_STRUCTURE_NAME = 'SFLIGHT'

TABLES

T_OUTTAB = I_SFLIGHT.

3. Demo for 'REUSE_ALV_POPUP_TO_SELECT'

REPORT y_demo_alv_3.

TYPE-POOLS: slis.

DATA: BEGIN OF i_outtab OCCURS 0.

INCLUDE STRUCTURE sflight.

DATA: w_chk TYPE c. "For multiple selection

DATA: END OF i_outtab.

  • I_OUTTAB TYPE SFLIGHT OCCURS 0,

DATA: i_private TYPE slis_data_caller_exit,

i_selfield TYPE slis_selfield,

W_exit(1) TYPE c.

PARAMETERS: p_title TYPE sy-title.

*

START-OF-SELECTION.

SELECT * FROM sflight INTO TABLE i_outtab.

CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'

EXPORTING

i_title = p_title

i_selection = 'X'

i_zebra = 'X'

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

i_checkbox_fieldname = 'W_CHK'

  • I_LINEMARK_FIELDNAME =

  • I_SCROLL_TO_SEL_LINE = 'X'

i_tabname = 'I_OUTTAB'

i_structure_name = 'SFLIGHT'

  • IT_FIELDCAT =

  • IT_EXCLUDING =

  • I_CALLBACK_PROGRAM =

  • I_CALLBACK_USER_COMMAND =

  • IS_PRIVATE = I_PRIVATE

IMPORTING

es_selfield = i_selfield

e_exit = w_exit

TABLES

t_outtab = i_outtab

EXCEPTIONS

program_error = 1

OTHERS = 2.

IF sy-subrc <> 0.

  • MESSAGE i000(0k) WITH sy-subrc.

ENDIF.

*****the internal table is modified with a cross sign for marking the

***rows selected

LOOP AT i_outtab WHERE w_chk = 'X'.

WRITE: / i_outtab-carrid, i_outtab-price.

ENDLOOP.

4. Demo for ALV output using field catalog and layout:

REPORT y_demo_alv NO STANDARD PAGE HEADING.

  • ALV related data declaration

TYPE-POOLS: slis.

  • DB-Table

TABLES sflight.

  • Includes

INCLUDE <icon>.

INCLUDE <symbol>.

*

CONSTANTS:

c_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.

DATA: i_fieldcat TYPE slis_t_fieldcat_alv,

i_layout TYPE slis_layout_alv,

i_sp_group TYPE slis_t_sp_group_alv,

i_events TYPE slis_t_event,

i_print TYPE slis_print_alv,

i_sort TYPE slis_t_sortinfo_alv.

*internal table for data to be displayed

DATA: BEGIN OF i_sflight OCCURS 0.

INCLUDE STRUCTURE sflight.

DATA: box,

lights.

DATA: END OF i_sflight.

*

DATA: w_repid LIKE sy-repid.

DATA: i_list_top_of_page TYPE slis_t_listheader.

  • Report Selections

SELECT-OPTIONS s_carrid FOR sflight-carrid.

SELECT-OPTIONS s_connid FOR sflight-connid.

SELECT-OPTIONS s_fldate FOR sflight-fldate.

*SELECTION-SCREEN SKIP 1.

  • Parameters

PARAMETERS: p_maxrow TYPE i DEFAULT 30."to limit the selection

SELECTION-SCREEN SKIP 1.

  • Variant for ALV display

SELECTION-SCREEN BEGIN OF BLOCK 0 WITH FRAME TITLE text-000.

PARAMETERS: p_varnt LIKE disvariant-variant.

SELECTION-SCREEN END OF BLOCK 0.

  • Layout of the report display

SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-001.

PARAMETERS: p_zebra AS CHECKBOX DEFAULT ' ', "Striped pattern

p_nocolh AS CHECKBOX DEFAULT ' ', "No column heading

p_novlin AS CHECKBOX DEFAULT ' ', "No vertical lines

p_colopt AS CHECKBOX DEFAULT ' ', "Optimizes col. wd

p_keyhot AS CHECKBOX DEFAULT ' ', "Key fields hot

p_noinpt AS CHECKBOX DEFAULT ' '. "No field for input

SELECTION-SCREEN END OF BLOCK a.

SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-002.

PARAMETERS: p_lights AS CHECKBOX DEFAULT 'X',

p_lightc AS CHECKBOX DEFAULT 'X'.

SELECTION-SCREEN END OF BLOCK b.

SELECTION-SCREEN BEGIN OF BLOCK c WITH FRAME TITLE text-003.

PARAMETERS: p_totonl AS CHECKBOX DEFAULT ' ',

p_totext(60),

p_sttext(60).

SELECTION-SCREEN END OF BLOCK c.

SELECTION-SCREEN BEGIN OF BLOCK d WITH FRAME TITLE text-004.

PARAMETERS: p_chkbox AS CHECKBOX DEFAULT 'X',

p_detpop AS CHECKBOX DEFAULT 'X',

p_groupb AS CHECKBOX DEFAULT ' ',

p_groups AS CHECKBOX DEFAULT ' '.

SELECTION-SCREEN END OF BLOCK d.

SELECTION-SCREEN BEGIN OF BLOCK e WITH FRAME TITLE text-005.

PARAMETERS: p_print AS CHECKBOX DEFAULT ' ',

p_nosinf AS CHECKBOX DEFAULT ' ',

p_nocove AS CHECKBOX DEFAULT ' ',

p_nonewp AS CHECKBOX DEFAULT ' ',

p_nolinf AS CHECKBOX DEFAULT ' ',

p_reserv TYPE i.

SELECTION-SCREEN END OF BLOCK e.

DATA: w_boxnam TYPE slis_fieldname VALUE 'BOX',

w_f2code LIKE sy-ucomm VALUE '&ETA',

w_lignam TYPE slis_fieldname VALUE 'LIGHTS',

w_save(1) TYPE c,

w_default(1) TYPE c,

w_exit(1) TYPE c,

i_variant LIKE disvariant,

i_variant1 LIKE disvariant.

----


INITIALIZATION.

w_repid = sy-repid.

PERFORM fieldcat_init USING i_fieldcat.

PERFORM eventtab_build USING i_events.

PERFORM comment_build USING i_list_top_of_page.

PERFORM sp_group_build USING i_sp_group.

PERFORM t_sort_build USING i_sort.

  • Set Options: save variant userspecific or general

        • 'A or 'U' are for user-specific variants list

        • 'X' or 'space' for general

w_save = 'A'.

PERFORM variant_init.

  • Get default variant

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)

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_varnt.

PERFORM f4_for_variant.

  • PAI

AT SELECTION-SCREEN.

PERFORM pai_of_selection_screen.

START-OF-SELECTION.

PERFORM selection.

END-OF-SELECTION.

PERFORM layout_build USING i_layout. "wg. Parameters

PERFORM print_build USING i_print. "wg. Parameters

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = w_repid

  • i_internal_tabname = 'I_SFLIGHT'

i_structure_name = 'SFLIGHT'

i_client_never_display = 'X'

i_inclname = w_repid

CHANGING

ct_fieldcat = i_fieldcat[]

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

  • 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

is_variant = i_variant

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.

  • CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

  • EXPORTING

  • i_callback_program = w_repid

  • i_structure_name = 'SFLIGHT'

  • 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 = W_DEFAULT

  • i_save = w_save

  • is_variant = i_variant

  • it_events = i_events[]

    • IT_EVENT_EXIT =

  • is_print = i_print

    • 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 =

  • TABLES

  • t_outtab = i_sflight.

----


  • FORM FIELDCAT_INIT *

----


  • --> L_FIELDCAT *

----


FORM fieldcat_init USING l_fieldcat TYPE slis_t_fieldcat_alv.

DATA: ls_fieldcat TYPE slis_fieldcat_alv.

*

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'SEATSOCC'.

*The field is not displayed in the initial output, can be interactively

  • chosen for display

ls_fieldcat-no_out = 'X'.

*This field is assigned to a special group with tech. key 'A' and can be

*displayed using the special group buttons

ls_fieldcat-sp_group = 'A'.

*The field cannot be summed irrespective of its data type

ls_fieldcat-no_sum = 'X'.

APPEND ls_fieldcat TO l_fieldcat.

*

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'SEATSMAX'.

ls_fieldcat-no_out = 'X'.

ls_fieldcat-sp_group = 'A'.

APPEND ls_fieldcat TO l_fieldcat.

*

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'PRICE'.

ls_fieldcat-no_out = 'X'.

ls_fieldcat-sp_group = 'B'.

APPEND ls_fieldcat TO l_fieldcat.

*

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'CARRID'.

ls_fieldcat-outputlen = 7.

APPEND ls_fieldcat TO l_fieldcat.

ENDFORM.

----


  • FORM DATA_ADD *

----


  • --> L_SFLIGHT

----


FORM data_add TABLES l_sflight STRUCTURE i_sflight.

LOOP AT l_sflight.

IF sy-tabix > 10.

l_sflight-box = 'X'.

l_sflight-lights = '3'.

ELSE.

IF sy-tabix = 1.

l_sflight-lights = '2'.

ELSE.

l_sflight-lights = '1'.

ENDIF.

ENDIF.

MODIFY l_sflight.

ENDLOOP.

ENDFORM.

----


  • FORM EVENTTAB_BUILD *

----


  • --> l_EVENTS *

----


FORM eventtab_build USING l_events TYPE slis_t_event.

DATA: ls_event TYPE slis_alv_event.

*

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = l_events.

READ TABLE l_events WITH KEY name = slis_ev_top_of_page INTO ls_event.

IF sy-subrc = 0.

MOVE c_formname_top_of_page TO ls_event-form.

APPEND ls_event TO l_events.

ENDIF.

ENDFORM.

----


  • FORM COMMENT_BUILD *

----


  • --> L_TOP_OF_PAGE *

----


FORM comment_build USING l_top_of_page TYPE slis_t_listheader.

DATA: ls_line TYPE slis_listheader.

***Header

CLEAR ls_line.

ls_line-typ = 'H'.

  • LS_LINE-KEY: not used for this type

ls_line-info = 'Heading list'.

APPEND ls_line TO l_top_of_page.

***Selection

CLEAR ls_line.

ls_line-typ = 'S'.

ls_line-key = 'Key 1'.

ls_line-info = 'Information'.

APPEND ls_line TO l_top_of_page.

ls_line-key = 'Key 2'.

APPEND ls_line TO l_top_of_page.

***Action

CLEAR ls_line.

ls_line-typ = 'A'.

  • LS_LINE-KEY: not used for this type

Ls_line-info = 'Status list'.

APPEND ls_line TO l_top_of_page.

ENDFORM.

----


  • FORM LAYOUT_BUILD *

----


  • <-> LS_LAYOUT *

----


FORM layout_build USING ls_layout TYPE slis_layout_alv.

ls_layout-f2code = w_f2code.

ls_layout-zebra = p_zebra.

ls_layout-colwidth_optimize = p_colopt.

IF p_chkbox = 'X'.

*Fieldname for check box on the report output

ls_layout-box_fieldname = w_boxnam.

ELSE.

ls_layout-box_fieldname = space.

ENDIF.

ls_layout-no_input = p_noinpt.

ls_layout-no_vline = p_novlin.

ls_layout-no_colhead = p_nocolh.

IF p_lights = 'X' OR p_lightc = 'X'.

**Fieldname for lights on the report output

ls_layout-lights_fieldname = w_lignam.

ELSE.

CLEAR ls_layout-lights_fieldname.

ENDIF.

ls_layout-lights_condense = p_lightc.

ls_layout-totals_text = p_totext.

ls_layout-subtotals_text = p_sttext.

ls_layout-totals_only = p_totonl.

ls_layout-key_hotspot = p_keyhot.

ls_layout-detail_popup = p_detpop.

ls_layout-group_change_edit = p_groups.

  • E05_LS_LAYOUT-GROUP_BUTTONS = P_GROUPB.

  • ls_layout-group_buttons = 'X'.

ENDFORM.

----


  • FORM SP_GROUP_BUILD *

----


  • --> L_SP_GROUP *

----


FORM sp_group_build USING l_sp_group TYPE slis_t_sp_group_alv.

DATA: ls_sp_group TYPE slis_sp_group_alv.

*Fields are assigned to the special group

CLEAR ls_sp_group.

ls_sp_group-sp_group = 'A'.

ls_sp_group-text = 'Reservation status'.

APPEND ls_sp_group TO l_sp_group.

CLEAR ls_sp_group.

ls_sp_group-sp_group = 'B'.

ls_sp_group-text = 'Flight charges'.

APPEND ls_sp_group TO l_sp_group.

ENDFORM.

----


  • FORM SELECTION *

----


FORM selection.

SELECT * FROM sflight INTO CORRESPONDING FIELDS OF TABLE i_sflight

UP TO p_maxrow ROWS WHERE carrid IN s_carrid

AND connid IN s_connid AND fldate IN s_fldate.

PERFORM data_add TABLES i_sflight.

ENDFORM.

----


  • FORM TOP_OF_PAGE *

----


  • ........ *

----


FORM top_of_page.

*

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

i_logo = 'ENJOYSAP_LOGO'

it_list_commentary = i_list_top_of_page.

ENDFORM.

----


  • FORM F4_FOR_VARIANT *

----


FORM f4_for_variant.

*

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.

ENDFORM.

&----


*& Form PAI_OF_SELECTION_SCREEN

&----


  • to check whether right variant is entered on the selection scr

----


FORM pai_of_selection_screen.

*

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.

ENDFORM. " PAI_OF_SELECTION_SCREEN

&----


*& Form VARIANT_INIT

----


FORM variant_init.

*

CLEAR i_variant.

i_variant-report = w_repid.

ENDFORM. " VARIANT_INIT

----


  • FORM PRINT_BUILD *

----


  • ........ *

----


FORM print_build USING l_print TYPE slis_print_alv.

*

l_print-print = p_print.

l_print-no_print_selinfos = p_nosinf.

l_print-no_coverpage = p_nocove.

l_print-no_new_page = p_nonewp.

l_print-no_print_listinfos = p_nolinf.

l_print-reserve_lines = p_reserv.

l_print-print = p_print.

ENDFORM.

----


  • FORM T_SORT_BUILD *

----


FORM t_sort_build USING l_sort TYPE slis_t_sortinfo_alv.

DATA: ls_sort TYPE slis_sortinfo_alv.

ls_sort-fieldname = 'CARRID'.

ls_sort-spos = 1.

ls_sort-up = 'X'.

ls_sort-subtot = 'X'.

APPEND ls_sort TO l_sort.

ENDFORM.

The other function module is used to display the internal output table with the contents

FUNCTION reuse_alv_list_display.

*"----


""Lokale Schnittstelle:

*” IMPORTING

*" VALUE(I_INTERFACE_CHECK) DEFAULT SPACE

*" VALUE(I_CALLBACK_PROGRAM) LIKE SY-REPID DEFAULT SPACE

*" VALUE(I_CALLBACK_PF_STATUS_SET) TYPE SLIS_FORMNAME

*" DEFAULT SPACE

*" VALUE(I_CALLBACK_USER_COMMAND) TYPE SLIS_FORMNAME

*" DEFAULT SPACE

*" VALUE(I_STRUCTURE_NAME) LIKE DD02L-TABNAME OPTIONAL

*" VALUE(IS_LAYOUT) TYPE SLIS_LAYOUT_ALV OPTIONAL

*" VALUE(IT_FIELDCAT) TYPE SLIS_T_FIELDCAT_ALV OPTIONAL

*" VALUE(IT_EXCLUDING) TYPE SLIS_T_EXTAB OPTIONAL

*" VALUE(IT_SPECIAL_GROUPS) TYPE SLIS_T_SP_GROUP_ALV

*" OPTIONAL

*" VALUE(IT_SORT) TYPE SLIS_T_SORTINFO_ALV OPTIONAL

*" VALUE(IT_FILTER) TYPE SLIS_T_FILTER_ALV OPTIONAL

*" VALUE(IS_SEL_HIDE) TYPE SLIS_SEL_HIDE_ALV OPTIONAL

*" VALUE(I_DEFAULT) DEFAULT 'X'

" VALUE(I_SAVE) DEFAULT SPACE

" VALUE(IS_VARIANT) LIKE DISVARIANT

" STRUCTURE DISVARIANT DEFAULT SPACE

" VALUE(IT_EVENTS) TYPE SLIS_T_EVENT OPTIONAL

" VALUE(IT_EVENT_EXIT) TYPE SLIS_T_EVENT_EXIT OPTIONAL

" VALUE(IS_PRINT) TYPE SLIS_PRINT_ALV OPTIONAL

" VALUE(IS_REPREP_ID) TYPE SLIS_REPREP_ID OPTIONAL

" VALUE(I_SCREEN_START_COLUMN) DEFAULT 0

" VALUE(I_SCREEN_START_LINE) DEFAULT 0

" VALUE(I_SCREEN_END_COLUMN) DEFAULT 0

" VALUE(I_SCREEN_END_LINE) DEFAULT 0

" EXPORTING

" VALUE(E_EXIT_CAUSED_BY_CALLER)

" VALUE(ES_EXIT_CAUSED_BY_USER) TYPE SLIS_EXIT_BY_USER

" TABLES

" T_OUTTAB

" EXCEPTIONS

" PROGRAM_ERROR

Import parameters

I_INTERFACE_CHECK: Interface consistency check log output.

I_CALLBACK_PROGRAM: Name of the calling program

I_CALLBACK_PF_STATUS_SET: Set EXIT routine to status.

I_CALLBACK_USER_COMMAND: EXIT routine for command handling

I_STRUCTURE_NAME: Internal output table structure name

IS_LAYOUT: List layout specifications

IT_FIELDCAT: Field catalog with field descriptions

IT_EXCLUDING: Table of inactive function codes

IT_SPECIAL_GROUPS: Grouping fields for column selection

IT_SORT: Sort criteria for first list display

IT_FILTER: Filter criteria for first list output

IS_SEL_HIDE : Selection information modification

I_DEFAULT: Initial variant active/inactive logic

I_SAVE: Variants can be saved

IS_VARIANT : Variant information

IT_EVENTS: Table of events to perform

IT_EVENT_EXIT : Standard fcode exit requests table

IS_PRINT: Print information

IS_REPREP_ID: Initialization keys for Re/Re interface

I_SCREEN_START_COLUMN: Coordinates for list in dialog box

I_SCREEN_START_LINE: Coordinates for list in dialog box

I_SCREEN_END_COLUMN: Coordinates for list in dialog box

I_SCREEN_END_LINE: Coordinates for list in dialog box

IT_EVENT_EXIT: Standard fcode exit requests table

IS_PRINT: Print information

IS_REPREP_ID: Initialization keys for Re/Re interface

I_SCREEN_START_COLUMN: Coordinates for list in dialog box

I_SCREEN_START_LINE: Coordinates for list in dialog box

I_SCREEN_END_COLUMN: Coordinates for list in dialog box

I_SCREEN_END_LINE: Coordinates for list in dialog box

Export parameters

E_EXIT_CAUSED_BY_CALLER: Delete list in CALLBACK_USER_COMMAND

ES_EXIT_CAUSED_BY_USER: How the user left the list Tables

T_OUTTAB: Table with data to be displayed ---mandatory

Example Code

WS_REPNAME = SY-REPID.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = WS_REPNAME

I_INTERNAL_TABNAME = Internal output table field name

I_INCLNAME = WS_REPNAME

CHANGING

CT_FIELDCAT = I_FIELDTAB.

IF SY-SUBRC <> 0.

WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_FIELDCATALOG_MERGE'.

ENDIF.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = WS_REPNAME

I_STRUCTURE_NAME = Internal output table field name

IS_LAYOUT = I_LAYOUT

IT_FIELDCAT = I_FIELDTAB

I_DEFAULT = 'A'

I_SAVE = 'A'

IS_VARIANT = 'X'

IT_EVENTS = I_EVENTS[]

IT_SORT = I_SORT

IS_SEL_HIDE = I_SELINFO

TABLES

T_OUTTAB = Internal output table field name.

IF SY-SUBRC <> 0.

WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_LIST_DISPLAY'.

ENDIF

THIS IS THE POP UP TO ALLOW THE USER TO DYNAMICALLY SELECT THE FIELDS FOR DISPLAY. HE CAN CHOOSE FROM THIS FIELDS ACC. TO REQUIREMENT AND HIDE THE OTHER FIELDS

Example report output based prior to selection of the field

THE USER HAS HIDDEN SOME OF THE FIELD FROM THE TOTAL FIELDS TO CUSTOMIZE THE REPORT OUTPUT

Example report output after hiding some of the fields

USER CAN CHOOSE A PARTICULAR SET OF FIELD FROM THE OUTPUT AND CAN SAVE IT AS VARIANTS

Using other function module 'REUSE_ALV_GRID_DISPLAY’ can help us get list output in the form of a grid and also attach logos to the report output.

Sample code

1 Simple list output:

REPORT Y_DEMO_ALV NO STANDARD PAGE HEADING.

*

  • Data to be displayed

DATA: I_SFLIGHT TYPE TABLE OF SFLIGHT.

----


  • Selection

SELECT * FROM SFLIGHT INTO TABLE I_SFLIGHT.

  • Call ABAP List Viewer (ALV)

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_STRUCTURE_NAME = 'SFLIGHT'

TABLES

T_OUTTAB = I_SFLIGHT.

2.Simple grid output:

REPORT Y_DEMO_ALV_1.

*

  • Data to be displayed

DATA: I_SFLIGHT TYPE TABLE OF SFLIGHT.

----


  • Selection

SELECT * FROM SFLIGHT INTO TABLE I_SFLIGHT.

  • Call ABAP List Viewer (ALV)

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_STRUCTURE_NAME = 'SFLIGHT'

TABLES

T_OUTTAB = I_SFLIGHT.

3. Demo for 'REUSE_ALV_POPUP_TO_SELECT'

REPORT y_demo_alv_3.

TYPE-POOLS: slis.

DATA: BEGIN OF i_outtab OCCURS 0.

INCLUDE STRUCTURE sflight.

DATA: w_chk TYPE c. "For multiple selection

DATA: END OF i_outtab.

  • I_OUTTAB TYPE SFLIGHT OCCURS 0,

DATA: i_private TYPE slis_data_caller_exit,

i_selfield TYPE slis_selfield,

W_exit(1) TYPE c.

PARAMETERS: p_title TYPE sy-title.

*

START-OF-SELECTION.

SELECT * FROM sflight INTO TABLE i_outtab.

CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'

EXPORTING

i_title = p_title

i_selection = 'X'

i_zebra = 'X'

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

i_checkbox_fieldname = 'W_CHK'

  • I_LINEMARK_FIELDNAME =

  • I_SCROLL_TO_SEL_LINE = 'X'

i_tabname = 'I_OUTTAB'

i_structure_name = 'SFLIGHT'

  • IT_FIELDCAT =

  • IT_EXCLUDING =

  • I_CALLBACK_PROGRAM =

  • I_CALLBACK_USER_COMMAND =

  • IS_PRIVATE = I_PRIVATE

IMPORTING

es_selfield = i_selfield

e_exit = w_exit

TABLES

t_outtab = i_outtab

EXCEPTIONS

program_error = 1

OTHERS = 2.

IF sy-subrc <> 0.

  • MESSAGE i000(0k) WITH sy-subrc.

ENDIF.

*****the internal table is modified with a cross sign for marking the

***rows selected

LOOP AT i_outtab WHERE w_chk = 'X'.

WRITE: / i_outtab-carrid, i_outtab-price.

ENDLOOP.

4. Demo for ALV output using field catalog and layout:

REPORT y_demo_alv NO STANDARD PAGE HEADING.

  • ALV related data declaration

TYPE-POOLS: slis.

  • DB-Table

TABLES sflight.

  • Includes

INCLUDE <icon>.

INCLUDE <symbol>.

*

CONSTANTS:

c_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.

DATA: i_fieldcat TYPE slis_t_fieldcat_alv,

i_layout TYPE slis_layout_alv,

i_sp_group TYPE slis_t_sp_group_alv,

i_events TYPE slis_t_event,

i_print TYPE slis_print_alv,

i_sort TYPE slis_t_sortinfo_alv.

*internal table for data to be displayed

DATA: BEGIN OF i_sflight OCCURS 0.

INCLUDE STRUCTURE sflight.

DATA: box,

lights.

DATA: END OF i_sflight.

*

DATA: w_repid LIKE sy-repid.

DATA: i_list_top_of_page TYPE slis_t_listheader.

  • Report Selections

SELECT-OPTIONS s_carrid FOR sflight-carrid.

SELECT-OPTIONS s_connid FOR sflight-connid.

SELECT-OPTIONS s_fldate FOR sflight-fldate.

*SELECTION-SCREEN SKIP 1.

  • Parameters

PARAMETERS: p_maxrow TYPE i DEFAULT 30."to limit the selection

SELECTION-SCREEN SKIP 1.

  • Variant for ALV display

SELECTION-SCREEN BEGIN OF BLOCK 0 WITH FRAME TITLE text-000.

PARAMETERS: p_varnt LIKE disvariant-variant.

SELECTION-SCREEN END OF BLOCK 0.

  • Layout of the report display

SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-001.

PARAMETERS: p_zebra AS CHECKBOX DEFAULT ' ', "Striped pattern

p_nocolh AS CHECKBOX DEFAULT ' ', "No column heading

p_novlin AS CHECKBOX DEFAULT ' ', "No vertical lines

p_colopt AS CHECKBOX DEFAULT ' ', "Optimizes col. wd

p_keyhot AS CHECKBOX DEFAULT ' ', "Key fields hot

p_noinpt AS CHECKBOX DEFAULT ' '. "No field for input

SELECTION-SCREEN END OF BLOCK a.

SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-002.

PARAMETERS: p_lights AS CHECKBOX DEFAULT 'X',

p_lightc AS CHECKBOX DEFAULT 'X'.

SELECTION-SCREEN END OF BLOCK b.

SELECTION-SCREEN BEGIN OF BLOCK c WITH FRAME TITLE text-003.

PARAMETERS: p_totonl AS CHECKBOX DEFAULT ' ',

p_totext(60),

p_sttext(60).

SELECTION-SCREEN END OF BLOCK c.

SELECTION-SCREEN BEGIN OF BLOCK d WITH FRAME TITLE text-004.

PARAMETERS: p_chkbox AS CHECKBOX DEFAULT 'X',

p_detpop AS CHECKBOX DEFAULT 'X',

p_groupb AS CHECKBOX DEFAULT ' ',

p_groups AS CHECKBOX DEFAULT ' '.

SELECTION-SCREEN END OF BLOCK d.

SELECTION-SCREEN BEGIN OF BLOCK e WITH FRAME TITLE text-005.

PARAMETERS: p_print AS CHECKBOX DEFAULT ' ',

p_nosinf AS CHECKBOX DEFAULT ' ',

p_nocove AS CHECKBOX DEFAULT ' ',

p_nonewp AS CHECKBOX DEFAULT ' ',

p_nolinf AS CHECKBOX DEFAULT ' ',

p_reserv TYPE i.

SELECTION-SCREEN END OF BLOCK e.

DATA: w_boxnam TYPE slis_fieldname VALUE 'BOX',

w_f2code LIKE sy-ucomm VALUE '&ETA',

w_lignam TYPE slis_fieldname VALUE 'LIGHTS',

w_save(1) TYPE c,

w_default(1) TYPE c,

w_exit(1) TYPE c,

i_variant LIKE disvariant,

i_variant1 LIKE disvariant.

----


INITIALIZATION.

w_repid = sy-repid.

PERFORM fieldcat_init USING i_fieldcat.

PERFORM eventtab_build USING i_events.

PERFORM comment_build USING i_list_top_of_page.

PERFORM sp_group_build USING i_sp_group.

PERFORM t_sort_build USING i_sort.

  • Set Options: save variant userspecific or general

        • 'A or 'U' are for user-specific variants list

        • 'X' or 'space' for general

w_save = 'A'.

PERFORM variant_init.

  • Get default variant

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)

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_varnt.

PERFORM f4_for_variant.

  • PAI

AT SELECTION-SCREEN.

PERFORM pai_of_selection_screen.

START-OF-SELECTION.

PERFORM selection.

END-OF-SELECTION.

PERFORM layout_build USING i_layout. "wg. Parameters

PERFORM print_build USING i_print. "wg. Parameters

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = w_repid

  • i_internal_tabname = 'I_SFLIGHT'

i_structure_name = 'SFLIGHT'

i_client_never_display = 'X'

i_inclname = w_repid

CHANGING

ct_fieldcat = i_fieldcat[]

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

  • 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

is_variant = i_variant

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.

  • CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

  • EXPORTING

  • i_callback_program = w_repid

  • i_structure_name = 'SFLIGHT'

  • 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 = W_DEFAULT

  • i_save = w_save

  • is_variant = i_variant

  • it_events = i_events[]

    • IT_EVENT_EXIT =

  • is_print = i_print

    • 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 =

  • TABLES

  • t_outtab = i_sflight.

----


  • FORM FIELDCAT_INIT *

----


  • --> L_FIELDCAT *

----


FORM fieldcat_init USING l_fieldcat TYPE slis_t_fieldcat_alv.

DATA: ls_fieldcat TYPE slis_fieldcat_alv.

*

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'SEATSOCC'.

*The field is not displayed in the initial output, can be interactively

  • chosen for display

ls_fieldcat-no_out = 'X'.

*This field is assigned to a special group with tech. key 'A' and can be

*displayed using the special group buttons

ls_fieldcat-sp_group = 'A'.

*The field cannot be summed irrespective of its data type

ls_fieldcat-no_sum = 'X'.

APPEND ls_fieldcat TO l_fieldcat.

*

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'SEATSMAX'.

ls_fieldcat-no_out = 'X'.

ls_fieldcat-sp_group = 'A'.

APPEND ls_fieldcat TO l_fieldcat.

*

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'PRICE'.

ls_fieldcat-no_out = 'X'.

ls_fieldcat-sp_group = 'B'.

APPEND ls_fieldcat TO l_fieldcat.

*

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'CARRID'.

ls_fieldcat-outputlen = 7.

APPEND ls_fieldcat TO l_fieldcat.

ENDFORM.

----


  • FORM DATA_ADD *

----


  • --> L_SFLIGHT

----


FORM data_add TABLES l_sflight STRUCTURE i_sflight.

LOOP AT l_sflight.

IF sy-tabix > 10.

l_sflight-box = 'X'.

l_sflight-lights = '3'.

ELSE.

IF sy-tabix = 1.

l_sflight-lights = '2'.

ELSE.

l_sflight-lights = '1'.

ENDIF.

ENDIF.

MODIFY l_sflight.

ENDLOOP.

ENDFORM.

----


  • FORM EVENTTAB_BUILD *

----


  • --> l_EVENTS *

----


FORM eventtab_build USING l_events TYPE slis_t_event.

DATA: ls_event TYPE slis_alv_event.

*

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = l_events.

READ TABLE l_events WITH KEY name = slis_ev_top_of_page INTO ls_event.

IF sy-subrc = 0.

MOVE c_formname_top_of_page TO ls_event-form.

APPEND ls_event TO l_events.

ENDIF.

ENDFORM.

----


  • FORM COMMENT_BUILD *

----


  • --> L_TOP_OF_PAGE *

----


FORM comment_build USING l_top_of_page TYPE slis_t_listheader.

DATA: ls_line TYPE slis_listheader.

***Header

CLEAR ls_line.

ls_line-typ = 'H'.

  • LS_LINE-KEY: not used for this type

ls_line-info = 'Heading list'.

APPEND ls_line TO l_top_of_page.

***Selection

CLEAR ls_line.

ls_line-typ = 'S'.

ls_line-key = 'Key 1'.

ls_line-info = 'Information'.

APPEND ls_line TO l_top_of_page.

ls_line-key = 'Key 2'.

APPEND ls_line TO l_top_of_page.

***Action

CLEAR ls_line.

ls_line-typ = 'A'.

  • LS_LINE-KEY: not used for this type

Ls_line-info = 'Status list'.

APPEND ls_line TO l_top_of_page.

ENDFORM.

----


  • FORM LAYOUT_BUILD *

----


  • <-> LS_LAYOUT *

----


FORM layout_build USING ls_layout TYPE slis_layout_alv.

ls_layout-f2code = w_f2code.

ls_layout-zebra = p_zebra.

ls_layout-colwidth_optimize = p_colopt.

IF p_chkbox = 'X'.

*Fieldname for check box on the report output

ls_layout-box_fieldname = w_boxnam.

ELSE.

ls_layout-box_fieldname = space.

ENDIF.

ls_layout-no_input = p_noinpt.

ls_layout-no_vline = p_novlin.

ls_layout-no_colhead = p_nocolh.

IF p_lights = 'X' OR p_lightc = 'X'.

**Fieldname for lights on the report output

ls_layout-lights_fieldname = w_lignam.

ELSE.

CLEAR ls_layout-lights_fieldname.

ENDIF.

ls_layout-lights_condense = p_lightc.

ls_layout-totals_text = p_totext.

ls_layout-subtotals_text = p_sttext.

ls_layout-totals_only = p_totonl.

ls_layout-key_hotspot = p_keyhot.

ls_layout-detail_popup = p_detpop.

ls_layout-group_change_edit = p_groups.

  • E05_LS_LAYOUT-GROUP_BUTTONS = P_GROUPB.

  • ls_layout-group_buttons = 'X'.

ENDFORM.

----


  • FORM SP_GROUP_BUILD *

----


  • --> L_SP_GROUP *

----


FORM sp_group_build USING l_sp_group TYPE slis_t_sp_group_alv.

DATA: ls_sp_group TYPE slis_sp_group_alv.

*Fields are assigned to the special group

CLEAR ls_sp_group.

ls_sp_group-sp_group = 'A'.

ls_sp_group-text = 'Reservation status'.

APPEND ls_sp_group TO l_sp_group.

CLEAR ls_sp_group.

ls_sp_group-sp_group = 'B'.

ls_sp_group-text = 'Flight charges'.

APPEND ls_sp_group TO l_sp_group.

ENDFORM.

----


  • FORM SELECTION *

----


FORM selection.

SELECT * FROM sflight INTO CORRESPONDING FIELDS OF TABLE i_sflight

UP TO p_maxrow ROWS WHERE carrid IN s_carrid

AND connid IN s_connid AND fldate IN s_fldate.

PERFORM data_add TABLES i_sflight.

ENDFORM.

----


  • FORM TOP_OF_PAGE *

----


  • ........ *

----


FORM top_of_page.

*

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

i_logo = 'ENJOYSAP_LOGO'

it_list_commentary = i_list_top_of_page.

ENDFORM.

----


  • FORM F4_FOR_VARIANT *

----


FORM f4_for_variant.

*

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.

ENDFORM.

&----


*& Form PAI_OF_SELECTION_SCREEN

&----


  • to check whether right variant is entered on the selection scr

----


FORM pai_of_selection_screen.

*

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.

ENDFORM. " PAI_OF_SELECTION_SCREEN

&----


*& Form VARIANT_INIT

----


FORM variant_init.

*

CLEAR i_variant.

i_variant-report = w_repid.

ENDFORM. " VARIANT_INIT

----


  • FORM PRINT_BUILD *

----


  • ........ *

----


FORM print_build USING l_print TYPE slis_print_alv.

*

l_print-print = p_print.

l_print-no_print_selinfos = p_nosinf.

l_print-no_coverpage = p_nocove.

l_print-no_new_page = p_nonewp.

l_print-no_print_listinfos = p_nolinf.

l_print-reserve_lines = p_reserv.

l_print-print = p_print.

ENDFORM.

----


  • FORM T_SORT_BUILD *

----


FORM t_sort_build USING l_sort TYPE slis_t_sortinfo_alv.

DATA: ls_sort TYPE slis_sortinfo_alv.

ls_sort-fieldname = 'CARRID'.

ls_sort-spos = 1.

ls_sort-up = 'X'.

ls_sort-subtot = 'X'.

APPEND ls_sort TO l_sort.

ENDFORM.

1 REPLY 1
Read only

Former Member
0 Likes
356

The other function module is used to display the internal output table with the contents

FUNCTION reuse_alv_list_display.

*"----


""Lokale Schnittstelle:

*” IMPORTING

*" VALUE(I_INTERFACE_CHECK) DEFAULT SPACE

*" VALUE(I_CALLBACK_PROGRAM) LIKE SY-REPID DEFAULT SPACE

*" VALUE(I_CALLBACK_PF_STATUS_SET) TYPE SLIS_FORMNAME

*" DEFAULT SPACE

*" VALUE(I_CALLBACK_USER_COMMAND) TYPE SLIS_FORMNAME

*" DEFAULT SPACE

*" VALUE(I_STRUCTURE_NAME) LIKE DD02L-TABNAME OPTIONAL

*" VALUE(IS_LAYOUT) TYPE SLIS_LAYOUT_ALV OPTIONAL

*" VALUE(IT_FIELDCAT) TYPE SLIS_T_FIELDCAT_ALV OPTIONAL

*" VALUE(IT_EXCLUDING) TYPE SLIS_T_EXTAB OPTIONAL

*" VALUE(IT_SPECIAL_GROUPS) TYPE SLIS_T_SP_GROUP_ALV

*" OPTIONAL

*" VALUE(IT_SORT) TYPE SLIS_T_SORTINFO_ALV OPTIONAL

*" VALUE(IT_FILTER) TYPE SLIS_T_FILTER_ALV OPTIONAL

*" VALUE(IS_SEL_HIDE) TYPE SLIS_SEL_HIDE_ALV OPTIONAL

*" VALUE(I_DEFAULT) DEFAULT 'X'

" VALUE(I_SAVE) DEFAULT SPACE

" VALUE(IS_VARIANT) LIKE DISVARIANT

" STRUCTURE DISVARIANT DEFAULT SPACE

" VALUE(IT_EVENTS) TYPE SLIS_T_EVENT OPTIONAL

" VALUE(IT_EVENT_EXIT) TYPE SLIS_T_EVENT_EXIT OPTIONAL

" VALUE(IS_PRINT) TYPE SLIS_PRINT_ALV OPTIONAL

" VALUE(IS_REPREP_ID) TYPE SLIS_REPREP_ID OPTIONAL

" VALUE(I_SCREEN_START_COLUMN) DEFAULT 0

" VALUE(I_SCREEN_START_LINE) DEFAULT 0

" VALUE(I_SCREEN_END_COLUMN) DEFAULT 0

" VALUE(I_SCREEN_END_LINE) DEFAULT 0

" EXPORTING

" VALUE(E_EXIT_CAUSED_BY_CALLER)

" VALUE(ES_EXIT_CAUSED_BY_USER) TYPE SLIS_EXIT_BY_USER

" TABLES

" T_OUTTAB

" EXCEPTIONS

" PROGRAM_ERROR

Import parameters

I_INTERFACE_CHECK: Interface consistency check log output.

I_CALLBACK_PROGRAM: Name of the calling program

I_CALLBACK_PF_STATUS_SET: Set EXIT routine to status.

I_CALLBACK_USER_COMMAND: EXIT routine for command handling

I_STRUCTURE_NAME: Internal output table structure name

IS_LAYOUT: List layout specifications

IT_FIELDCAT: Field catalog with field descriptions

IT_EXCLUDING: Table of inactive function codes

IT_SPECIAL_GROUPS: Grouping fields for column selection

IT_SORT: Sort criteria for first list display

IT_FILTER: Filter criteria for first list output

IS_SEL_HIDE : Selection information modification

I_DEFAULT: Initial variant active/inactive logic

I_SAVE: Variants can be saved

IS_VARIANT : Variant information

IT_EVENTS: Table of events to perform

IT_EVENT_EXIT : Standard fcode exit requests table

IS_PRINT: Print information

IS_REPREP_ID: Initialization keys for Re/Re interface

I_SCREEN_START_COLUMN: Coordinates for list in dialog box

I_SCREEN_START_LINE: Coordinates for list in dialog box

I_SCREEN_END_COLUMN: Coordinates for list in dialog box

I_SCREEN_END_LINE: Coordinates for list in dialog box

IT_EVENT_EXIT: Standard fcode exit requests table

IS_PRINT: Print information

IS_REPREP_ID: Initialization keys for Re/Re interface

I_SCREEN_START_COLUMN: Coordinates for list in dialog box

I_SCREEN_START_LINE: Coordinates for list in dialog box

I_SCREEN_END_COLUMN: Coordinates for list in dialog box

I_SCREEN_END_LINE: Coordinates for list in dialog box

Export parameters

E_EXIT_CAUSED_BY_CALLER: Delete list in CALLBACK_USER_COMMAND

ES_EXIT_CAUSED_BY_USER: How the user left the list Tables

T_OUTTAB: Table with data to be displayed ---mandatory

Example Code

WS_REPNAME = SY-REPID.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = WS_REPNAME

I_INTERNAL_TABNAME = Internal output table field name

I_INCLNAME = WS_REPNAME

CHANGING

CT_FIELDCAT = I_FIELDTAB.

IF SY-SUBRC <> 0.

WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_FIELDCATALOG_MERGE'.

ENDIF.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = WS_REPNAME

I_STRUCTURE_NAME = Internal output table field name

IS_LAYOUT = I_LAYOUT

IT_FIELDCAT = I_FIELDTAB

I_DEFAULT = 'A'

I_SAVE = 'A'

IS_VARIANT = 'X'

IT_EVENTS = I_EVENTS[]

IT_SORT = I_SORT

IS_SEL_HIDE = I_SELINFO

TABLES

T_OUTTAB = Internal output table field name.

IF SY-SUBRC <> 0.

WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_LIST_DISPLAY'.

ENDIF

THIS IS THE POP UP TO ALLOW THE USER TO DYNAMICALLY SELECT THE FIELDS FOR DISPLAY. HE CAN CHOOSE FROM THIS FIELDS ACC. TO REQUIREMENT AND HIDE THE OTHER FIELDS

Example report output based prior to selection of the field

THE USER HAS HIDDEN SOME OF THE FIELD FROM THE TOTAL FIELDS TO CUSTOMIZE THE REPORT OUTPUT

Example report output after hiding some of the fields

USER CAN CHOOSE A PARTICULAR SET OF FIELD FROM THE OUTPUT AND CAN SAVE IT AS VARIANTS

Using other function module 'REUSE_ALV_GRID_DISPLAY’ can help us get list output in the form of a grid and also attach logos to the report output.

Sample code

1 Simple list output:

REPORT Y_DEMO_ALV NO STANDARD PAGE HEADING.

*

  • Data to be displayed

DATA: I_SFLIGHT TYPE TABLE OF SFLIGHT.

----


  • Selection

SELECT * FROM SFLIGHT INTO TABLE I_SFLIGHT.

  • Call ABAP List Viewer (ALV)

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_STRUCTURE_NAME = 'SFLIGHT'

TABLES

T_OUTTAB = I_SFLIGHT.

2.Simple grid output:

REPORT Y_DEMO_ALV_1.

*

  • Data to be displayed

DATA: I_SFLIGHT TYPE TABLE OF SFLIGHT.

----


  • Selection

SELECT * FROM SFLIGHT INTO TABLE I_SFLIGHT.

  • Call ABAP List Viewer (ALV)

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_STRUCTURE_NAME = 'SFLIGHT'

TABLES

T_OUTTAB = I_SFLIGHT.

3. Demo for 'REUSE_ALV_POPUP_TO_SELECT'

REPORT y_demo_alv_3.

TYPE-POOLS: slis.

DATA: BEGIN OF i_outtab OCCURS 0.

INCLUDE STRUCTURE sflight.

DATA: w_chk TYPE c. "For multiple selection

DATA: END OF i_outtab.

  • I_OUTTAB TYPE SFLIGHT OCCURS 0,

DATA: i_private TYPE slis_data_caller_exit,

i_selfield TYPE slis_selfield,

W_exit(1) TYPE c.

PARAMETERS: p_title TYPE sy-title.

*

START-OF-SELECTION.

SELECT * FROM sflight INTO TABLE i_outtab.

CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'

EXPORTING

i_title = p_title

i_selection = 'X'

i_zebra = 'X'

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

i_checkbox_fieldname = 'W_CHK'

  • I_LINEMARK_FIELDNAME =

  • I_SCROLL_TO_SEL_LINE = 'X'

i_tabname = 'I_OUTTAB'

i_structure_name = 'SFLIGHT'

  • IT_FIELDCAT =

  • IT_EXCLUDING =

  • I_CALLBACK_PROGRAM =

  • I_CALLBACK_USER_COMMAND =

  • IS_PRIVATE = I_PRIVATE

IMPORTING

es_selfield = i_selfield

e_exit = w_exit

TABLES

t_outtab = i_outtab

EXCEPTIONS

program_error = 1

OTHERS = 2.

IF sy-subrc <> 0.

  • MESSAGE i000(0k) WITH sy-subrc.

ENDIF.

*****the internal table is modified with a cross sign for marking the

***rows selected

LOOP AT i_outtab WHERE w_chk = 'X'.

WRITE: / i_outtab-carrid, i_outtab-price.

ENDLOOP.

4. Demo for ALV output using field catalog and layout:

REPORT y_demo_alv NO STANDARD PAGE HEADING.

  • ALV related data declaration

TYPE-POOLS: slis.

  • DB-Table

TABLES sflight.

  • Includes

INCLUDE <icon>.

INCLUDE <symbol>.

*

CONSTANTS:

c_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.

DATA: i_fieldcat TYPE slis_t_fieldcat_alv,

i_layout TYPE slis_layout_alv,

i_sp_group TYPE slis_t_sp_group_alv,

i_events TYPE slis_t_event,

i_print TYPE slis_print_alv,

i_sort TYPE slis_t_sortinfo_alv.

*internal table for data to be displayed

DATA: BEGIN OF i_sflight OCCURS 0.

INCLUDE STRUCTURE sflight.

DATA: box,

lights.

DATA: END OF i_sflight.

*

DATA: w_repid LIKE sy-repid.

DATA: i_list_top_of_page TYPE slis_t_listheader.

  • Report Selections

SELECT-OPTIONS s_carrid FOR sflight-carrid.

SELECT-OPTIONS s_connid FOR sflight-connid.

SELECT-OPTIONS s_fldate FOR sflight-fldate.

*SELECTION-SCREEN SKIP 1.

  • Parameters

PARAMETERS: p_maxrow TYPE i DEFAULT 30."to limit the selection

SELECTION-SCREEN SKIP 1.

  • Variant for ALV display

SELECTION-SCREEN BEGIN OF BLOCK 0 WITH FRAME TITLE text-000.

PARAMETERS: p_varnt LIKE disvariant-variant.

SELECTION-SCREEN END OF BLOCK 0.

  • Layout of the report display

SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-001.

PARAMETERS: p_zebra AS CHECKBOX DEFAULT ' ', "Striped pattern

p_nocolh AS CHECKBOX DEFAULT ' ', "No column heading

p_novlin AS CHECKBOX DEFAULT ' ', "No vertical lines

p_colopt AS CHECKBOX DEFAULT ' ', "Optimizes col. wd

p_keyhot AS CHECKBOX DEFAULT ' ', "Key fields hot

p_noinpt AS CHECKBOX DEFAULT ' '. "No field for input

SELECTION-SCREEN END OF BLOCK a.

SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-002.

PARAMETERS: p_lights AS CHECKBOX DEFAULT 'X',

p_lightc AS CHECKBOX DEFAULT 'X'.

SELECTION-SCREEN END OF BLOCK b.

SELECTION-SCREEN BEGIN OF BLOCK c WITH FRAME TITLE text-003.

PARAMETERS: p_totonl AS CHECKBOX DEFAULT ' ',

p_totext(60),

p_sttext(60).

SELECTION-SCREEN END OF BLOCK c.

SELECTION-SCREEN BEGIN OF BLOCK d WITH FRAME TITLE text-004.

PARAMETERS: p_chkbox AS CHECKBOX DEFAULT 'X',

p_detpop AS CHECKBOX DEFAULT 'X',

p_groupb AS CHECKBOX DEFAULT ' ',

p_groups AS CHECKBOX DEFAULT ' '.

SELECTION-SCREEN END OF BLOCK d.

SELECTION-SCREEN BEGIN OF BLOCK e WITH FRAME TITLE text-005.

PARAMETERS: p_print AS CHECKBOX DEFAULT ' ',

p_nosinf AS CHECKBOX DEFAULT ' ',

p_nocove AS CHECKBOX DEFAULT ' ',

p_nonewp AS CHECKBOX DEFAULT ' ',

p_nolinf AS CHECKBOX DEFAULT ' ',

p_reserv TYPE i.

SELECTION-SCREEN END OF BLOCK e.

DATA: w_boxnam TYPE slis_fieldname VALUE 'BOX',

w_f2code LIKE sy-ucomm VALUE '&ETA',

w_lignam TYPE slis_fieldname VALUE 'LIGHTS',

w_save(1) TYPE c,

w_default(1) TYPE c,

w_exit(1) TYPE c,

i_variant LIKE disvariant,

i_variant1 LIKE disvariant.

----


INITIALIZATION.

w_repid = sy-repid.

PERFORM fieldcat_init USING i_fieldcat.

PERFORM eventtab_build USING i_events.

PERFORM comment_build USING i_list_top_of_page.

PERFORM sp_group_build USING i_sp_group.

PERFORM t_sort_build USING i_sort.

  • Set Options: save variant userspecific or general

        • 'A or 'U' are for user-specific variants list

        • 'X' or 'space' for general

w_save = 'A'.

PERFORM variant_init.

  • Get default variant

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)

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_varnt.

PERFORM f4_for_variant.

  • PAI

AT SELECTION-SCREEN.

PERFORM pai_of_selection_screen.

START-OF-SELECTION.

PERFORM selection.

END-OF-SELECTION.

PERFORM layout_build USING i_layout. "wg. Parameters

PERFORM print_build USING i_print. "wg. Parameters

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = w_repid

  • i_internal_tabname = 'I_SFLIGHT'

i_structure_name = 'SFLIGHT'

i_client_never_display = 'X'

i_inclname = w_repid

CHANGING

ct_fieldcat = i_fieldcat[]

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

  • 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

is_variant = i_variant

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.

  • CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

  • EXPORTING

  • i_callback_program = w_repid

  • i_structure_name = 'SFLIGHT'

  • 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 = W_DEFAULT

  • i_save = w_save

  • is_variant = i_variant

  • it_events = i_events[]

    • IT_EVENT_EXIT =

  • is_print = i_print

    • 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 =

  • TABLES

  • t_outtab = i_sflight.

----


  • FORM FIELDCAT_INIT *

----


  • --> L_FIELDCAT *

----


FORM fieldcat_init USING l_fieldcat TYPE slis_t_fieldcat_alv.

DATA: ls_fieldcat TYPE slis_fieldcat_alv.

*

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'SEATSOCC'.

*The field is not displayed in the initial output, can be interactively

  • chosen for display

ls_fieldcat-no_out = 'X'.

*This field is assigned to a special group with tech. key 'A' and can be

*displayed using the special group buttons

ls_fieldcat-sp_group = 'A'.

*The field cannot be summed irrespective of its data type

ls_fieldcat-no_sum = 'X'.

APPEND ls_fieldcat TO l_fieldcat.

*

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'SEATSMAX'.

ls_fieldcat-no_out = 'X'.

ls_fieldcat-sp_group = 'A'.

APPEND ls_fieldcat TO l_fieldcat.

*

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'PRICE'.

ls_fieldcat-no_out = 'X'.

ls_fieldcat-sp_group = 'B'.

APPEND ls_fieldcat TO l_fieldcat.

*

CLEAR ls_fieldcat.

ls_fieldcat-fieldname = 'CARRID'.

ls_fieldcat-outputlen = 7.

APPEND ls_fieldcat TO l_fieldcat.

ENDFORM.

----


  • FORM DATA_ADD *

----


  • --> L_SFLIGHT

----


FORM data_add TABLES l_sflight STRUCTURE i_sflight.

LOOP AT l_sflight.

IF sy-tabix > 10.

l_sflight-box = 'X'.

l_sflight-lights = '3'.

ELSE.

IF sy-tabix = 1.

l_sflight-lights = '2'.

ELSE.

l_sflight-lights = '1'.

ENDIF.

ENDIF.

MODIFY l_sflight.

ENDLOOP.

ENDFORM.

----


  • FORM EVENTTAB_BUILD *

----


  • --> l_EVENTS *

----


FORM eventtab_build USING l_events TYPE slis_t_event.

DATA: ls_event TYPE slis_alv_event.

*

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = l_events.

READ TABLE l_events WITH KEY name = slis_ev_top_of_page INTO ls_event.

IF sy-subrc = 0.

MOVE c_formname_top_of_page TO ls_event-form.

APPEND ls_event TO l_events.

ENDIF.

ENDFORM.

----


  • FORM COMMENT_BUILD *

----


  • --> L_TOP_OF_PAGE *

----


FORM comment_build USING l_top_of_page TYPE slis_t_listheader.

DATA: ls_line TYPE slis_listheader.

***Header

CLEAR ls_line.

ls_line-typ = 'H'.

  • LS_LINE-KEY: not used for this type

ls_line-info = 'Heading list'.

APPEND ls_line TO l_top_of_page.

***Selection

CLEAR ls_line.

ls_line-typ = 'S'.

ls_line-key = 'Key 1'.

ls_line-info = 'Information'.

APPEND ls_line TO l_top_of_page.

ls_line-key = 'Key 2'.

APPEND ls_line TO l_top_of_page.

***Action

CLEAR ls_line.

ls_line-typ = 'A'.

  • LS_LINE-KEY: not used for this type

Ls_line-info = 'Status list'.

APPEND ls_line TO l_top_of_page.

ENDFORM.

----


  • FORM LAYOUT_BUILD *

----


  • <-> LS_LAYOUT *

----


FORM layout_build USING ls_layout TYPE slis_layout_alv.

ls_layout-f2code = w_f2code.

ls_layout-zebra = p_zebra.

ls_layout-colwidth_optimize = p_colopt.

IF p_chkbox = 'X'.

*Fieldname for check box on the report output

ls_layout-box_fieldname = w_boxnam.

ELSE.

ls_layout-box_fieldname = space.

ENDIF.

ls_layout-no_input = p_noinpt.

ls_layout-no_vline = p_novlin.

ls_layout-no_colhead = p_nocolh.

IF p_lights = 'X' OR p_lightc = 'X'.

**Fieldname for lights on the report output

ls_layout-lights_fieldname = w_lignam.

ELSE.

CLEAR ls_layout-lights_fieldname.

ENDIF.

ls_layout-lights_condense = p_lightc.

ls_layout-totals_text = p_totext.

ls_layout-subtotals_text = p_sttext.

ls_layout-totals_only = p_totonl.

ls_layout-key_hotspot = p_keyhot.

ls_layout-detail_popup = p_detpop.

ls_layout-group_change_edit = p_groups.

  • E05_LS_LAYOUT-GROUP_BUTTONS = P_GROUPB.

  • ls_layout-group_buttons = 'X'.

ENDFORM.

----


  • FORM SP_GROUP_BUILD *

----


  • --> L_SP_GROUP *

----


FORM sp_group_build USING l_sp_group TYPE slis_t_sp_group_alv.

DATA: ls_sp_group TYPE slis_sp_group_alv.

*Fields are assigned to the special group

CLEAR ls_sp_group.

ls_sp_group-sp_group = 'A'.

ls_sp_group-text = 'Reservation status'.

APPEND ls_sp_group TO l_sp_group.

CLEAR ls_sp_group.

ls_sp_group-sp_group = 'B'.

ls_sp_group-text = 'Flight charges'.

APPEND ls_sp_group TO l_sp_group.

ENDFORM.

----


  • FORM SELECTION *

----


FORM selection.

SELECT * FROM sflight INTO CORRESPONDING FIELDS OF TABLE i_sflight

UP TO p_maxrow ROWS WHERE carrid IN s_carrid

AND connid IN s_connid AND fldate IN s_fldate.

PERFORM data_add TABLES i_sflight.

ENDFORM.

----


  • FORM TOP_OF_PAGE *

----


  • ........ *

----


FORM top_of_page.

*

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

i_logo = 'ENJOYSAP_LOGO'

it_list_commentary = i_list_top_of_page.

ENDFORM.

----


  • FORM F4_FOR_VARIANT *

----


FORM f4_for_variant.

*

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.

ENDFORM.

&----


*& Form PAI_OF_SELECTION_SCREEN

&----


  • to check whether right variant is entered on the selection scr

----


FORM pai_of_selection_screen.

*

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.

ENDFORM. " PAI_OF_SELECTION_SCREEN

&----


*& Form VARIANT_INIT

----


FORM variant_init.

*

CLEAR i_variant.

i_variant-report = w_repid.

ENDFORM. " VARIANT_INIT

----


  • FORM PRINT_BUILD *

----


  • ........ *

----


FORM print_build USING l_print TYPE slis_print_alv.

*

l_print-print = p_print.

l_print-no_print_selinfos = p_nosinf.

l_print-no_coverpage = p_nocove.

l_print-no_new_page = p_nonewp.

l_print-no_print_listinfos = p_nolinf.

l_print-reserve_lines = p_reserv.

l_print-print = p_print.

ENDFORM.

----


  • FORM T_SORT_BUILD *

----


FORM t_sort_build USING l_sort TYPE slis_t_sortinfo_alv.

DATA: ls_sort TYPE slis_sortinfo_alv.

ls_sort-fieldname = 'CARRID'.

ls_sort-spos = 1.

ls_sort-up = 'X'.

ls_sort-subtot = 'X'.

APPEND ls_sort TO l_sort.

ENDFORM.