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

Function Module REUSE_ALV_GRID_DISPLAY?

Former Member
0 Likes
4,333

Hi,

How to use the Function Module REUSE_ALV_GRID_DISPLAY can any body explain me with one example please.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
2,489

The input for this function module are two internal tables ie one internal table for data and another for internal table for about the fields. eg:

TYPE-POOLS : SLIS.

DATA : BEGIN OF WA_T001,

BUKRS LIKE T001-BUKRS,

BUTXT LIKE T001-BUTXT,

ORT01 LIKE T001-ORT01,

END OF WA_T001,

IT_T001 LIKE TABLE OF WA_T001.

DATA : IT_FCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FCAT LIKE LINE OF IT_FCAT.

DATA : V_NAME LIKE SY-REPID.

SELECT BUKRS BUTXT ORT01

FROM T001 INTO TABLE IT_T001

UP TO 15 ROWS. V_NAME = SY-REPID.

CALL FUCTION MODULE 'REUSE_ALV_FIELDCATLOG_MERGE.

EXPORTING

I_CALBACK_PROGRAM = V_NAME

I_INTERAL_TABNAME = 'WA_T001'

I_INCLNAME = V_NAME

CHANGING

CT_FIELDCAT = IT_FCAT.

CALL FUNCTION MODULE "REUSE_ALV_GRID_DISPLAY"

EXPORTING

I_CALLBACK_PROGRAM = V_NAME

IT_FCAT = IT_FCAT.

TABLES

T_OUTTAB = IT_T001

SY-REPID IS THE SYSTEM VARIABLE WHICH IS

HAVING THE ABAP PROGRAM

OR CURRENT MAIN PROGRAM.

----- Sample Progam -


----


***INCLUDE YRVR058_DEST_WISE_SUMMARY_DF01 .

----


&----


*& Form DISPLAY_DATA

&----


FORM DISPLAY_DATA .

IF ITAB[] IS NOT INITIAL.

PERFORM F_APPEND_BLOCK.

ELSE.

MESSAGE 'Data not found for the selection

criteria' TYPE 'S'.

LEAVE LIST-PROCESSING.

ENDIF.

ENDFORM. " display_data

&----


*& Form f_append_block

&----


FORM F_APPEND_BLOCK .

DATA : L_WA_SORT TYPE SLIS_SORTINFO_ALV, "For

sort

L_WA_EVENTS TYPE SLIS_ALV_EVENT. "For

events

  • Event (Top of List)

CLEAR L_WA_EVENTS.

L_WA_EVENTS-NAME = SLIS_EV_TOP_OF_LIST.

L_WA_EVENTS-FORM = C_TOPOFPAGE.

APPEND L_WA_EVENTS TO I_EVENTS_PART.

  • Event (Top of Page)

CLEAR L_WA_EVENTS.

L_WA_EVENTS-NAME = SLIS_EV_TOP_OF_PAGE.

L_WA_EVENTS-FORM = 'F_DISPLAY_HEADER_PARTA'(031).

"f_display_header_part

APPEND L_WA_EVENTS TO I_EVENTS_PART.

  • Event (End of List)

CLEAR L_WA_EVENTS.

L_WA_EVENTS-NAME = SLIS_EV_END_OF_LIST.

L_WA_EVENTS-FORM = C_END_OF_LIST.

APPEND L_WA_EVENTS TO I_EVENTS_PART.

  • Set Layout Zebra

STRUCT_LAYOUT-ZEBRA = 'X'.

STRUCT_LAYOUT-NUMC_SUM = 'X'.

STRUCT_LAYOUT-TOTALS_TEXT = 'TOTAL:'(032).

  • set field catalog

PERFORM F_FIELD_CATALOG_PART.

ASSIGN ITAB[] TO <F_OUTTAB>.

V_PART = 'A'. "initiating list is A

PERFORM F_DISPLAY_BLOCK USING STRUCT_LAYOUT

I_FIELD_CAT_PART[]

C_TAB

I_EVENTS_PART[]

I_SORT_PART[].

ENDFORM. " f_append_block

&----


*& Form f_field_catalog_part

&----


FORM F_FIELD_CATALOG_PART .

REFRESH I_FIELD_CAT_PART.

CLEAR I_FIELD_CAT_PART.

PERFORM F_CREATE_CATALOG USING :

*Month

C_TAB 'MONTH' 'MONTH' SPACE 'L' 7

I_FIELD_CAT_PART[],

*OBD

*C_TAB 'VBELN' 'Delivery' SPACE 'L' 12

I_FIELD_CAT_PART[],

*DATE

C_TAB 'WADAT_IST' 'Date' SPACE 'L' 10

I_FIELD_CAT_PART[],

*Destination

C_TAB 'CITY1' 'Destination' SPACE 'L' 25

I_FIELD_CAT_PART[],

*Qty By Road

C_TAB 'NTGEW_ROAD' 'Road Quantity' SPACE 'R' 16

I_FIELD_CAT_PART[],

*Rail Qty

C_TAB 'NTGEW_RAIL' 'Rail Quantity'

SPACE 'R' 16 I_FIELD_CAT_PART[],

*Total Qty C_TAB 'TOT' 'Total Quantity'

SPACE 'R' 16 I_FIELD_CAT_PART[],

*RR/Trk No.

C_TAB 'EXTI2' 'Truck/RR No.' SPACE 'L' 17 I_FIELD_CAT_PART[].

ENDFORM. " f_field_catalog_part

&----


*& Form f_DISPLAY_block

&----


  • text

----


  • -->P_STRUCT_LAYOUT text

  • -->P_I_FIELD_CAT_PART[] text

  • -->P_C_TAB text

  • -->P_I_EVENTS_PART[] text

  • -->P_I_SORT_PART[] text

----


FORM F_DISPLAY_BLOCK USING FP_LAYOUT TYPE

SLIS_LAYOUT_ALV

FP_I_FCAT TYPE

SLIS_T_FIELDCAT_ALV

VALUE(FP_TABNAME) TYPE

ANY

FP_I_EVENTS TYPE

SLIS_T_EVENT

FP_I_SORT TYPE

SLIS_T_SORTINFO_ALV.

DATA: V_REPID TYPE SYREPID,

"current Program id

C_SAVE TYPE CHAR1 VALUE 'A'.

"variant save

V_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

*CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

IS_LAYOUT = FP_LAYOUT

IT_FIELDCAT = FP_I_FCAT[]

IT_SORT = FP_I_SORT[]

I_SAVE = C_SAVE "variant

save

IT_EVENTS = FP_I_EVENTS[]

TABLES

T_OUTTAB = <F_OUTTAB>

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.

ENDFORM. " f_DISPLAY_block

&----


*& Form f_create_catalog

&----


  • text

----


  • -->P_C_TAB text

  • -->P_0085 text

  • -->P_0086 text

  • -->P_SPACE text

  • -->P_0088 text

  • -->P_5 text

  • -->P_I_FIELD_CAT_PART[] text

----


FORM F_CREATE_CATALOG USING FP_I_TABNAME TYPE

SLIS_TABNAME

FP_I_FIELDNAME TYPE SLIS_FIELDNAME

FP_I_SELTEXT TYPE

SCRTEXT_L

FP_I_DOSUM TYPE

CHAR1

FP_I_JUST TYPE C

FP_I_OUTPUTLEN TYPE

OUTPUTLEN

FP_I_FCAT TYPE

SLIS_T_FIELDCAT_ALV.

  • Record for field catalog

DATA: L_REC_FCAT TYPE SLIS_FIELDCAT_ALV.

L_REC_FCAT-TABNAME = FP_I_TABNAME.

L_REC_FCAT-FIELDNAME = FP_I_FIELDNAME.

L_REC_FCAT-SELTEXT_L = FP_I_SELTEXT.

L_REC_FCAT-DO_SUM = 'X'.

*l_rec_fcat-do_sum = ' '.

L_REC_FCAT-JUST = FP_I_JUST.

L_REC_FCAT-OUTPUTLEN = FP_I_OUTPUTLEN.

L_REC_FCAT-DECIMALS_OUT = '2'.

L_REC_FCAT-KEY = '1'.

APPEND L_REC_FCAT TO FP_I_FCAT.

ENDFORM. " f_create_catalog

*****************************************

  • Subroutines for Headings

*****************************************

&----


*& Form f_display_header_partA

&----


  • Display header for report for Part A

----


&----


*& Form top_of_page

&----


FORM TOP_OF_PAGE .

SKIP 1.

WRITE:/25 ' Name of Company ',80 'RUN DATE' ,

SY-DATUM.

  • SKIP 1.

  • WRITE:/60 'RUN DATE' , SY-DATUM.

SKIP 1.

DATA: YR(4) TYPE N,

FIN_PRD(10) TYPE C.

IF S_DTABF-LOW+4(2) LT '04'.

YR = S_DTABF-LOW+0(4) - 1.

CONCATENATE YR '-' S_DTABF-LOW+2(2) INTO FIN_PRD.

ELSE.

YR = S_DTABF-LOW+0(4) + 1.

CONCATENATE S_DTABF-LOW0(4) '-' YR2(2) INTO

FIN_PRD.

ENDIF.

WRITE:/5 'DETAILS OF THE MONTH/DATE WISE DESPATCHES

MADE BY ROAD/RAIL DURING THE YEAR ' , FIN_PRD .

SKIP 1.

  • WRITE 😕 'SALES OFFICE : ' , P_SALES,' ' , RNAME.

  • SKIP 1.

ENDFORM. " DISPLAY_DATA

7 REPLIES 7
Read only

Former Member
0 Likes
2,490

The input for this function module are two internal tables ie one internal table for data and another for internal table for about the fields. eg:

TYPE-POOLS : SLIS.

DATA : BEGIN OF WA_T001,

BUKRS LIKE T001-BUKRS,

BUTXT LIKE T001-BUTXT,

ORT01 LIKE T001-ORT01,

END OF WA_T001,

IT_T001 LIKE TABLE OF WA_T001.

DATA : IT_FCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FCAT LIKE LINE OF IT_FCAT.

DATA : V_NAME LIKE SY-REPID.

SELECT BUKRS BUTXT ORT01

FROM T001 INTO TABLE IT_T001

UP TO 15 ROWS. V_NAME = SY-REPID.

CALL FUCTION MODULE 'REUSE_ALV_FIELDCATLOG_MERGE.

EXPORTING

I_CALBACK_PROGRAM = V_NAME

I_INTERAL_TABNAME = 'WA_T001'

I_INCLNAME = V_NAME

CHANGING

CT_FIELDCAT = IT_FCAT.

CALL FUNCTION MODULE "REUSE_ALV_GRID_DISPLAY"

EXPORTING

I_CALLBACK_PROGRAM = V_NAME

IT_FCAT = IT_FCAT.

TABLES

T_OUTTAB = IT_T001

SY-REPID IS THE SYSTEM VARIABLE WHICH IS

HAVING THE ABAP PROGRAM

OR CURRENT MAIN PROGRAM.

----- Sample Progam -


----


***INCLUDE YRVR058_DEST_WISE_SUMMARY_DF01 .

----


&----


*& Form DISPLAY_DATA

&----


FORM DISPLAY_DATA .

IF ITAB[] IS NOT INITIAL.

PERFORM F_APPEND_BLOCK.

ELSE.

MESSAGE 'Data not found for the selection

criteria' TYPE 'S'.

LEAVE LIST-PROCESSING.

ENDIF.

ENDFORM. " display_data

&----


*& Form f_append_block

&----


FORM F_APPEND_BLOCK .

DATA : L_WA_SORT TYPE SLIS_SORTINFO_ALV, "For

sort

L_WA_EVENTS TYPE SLIS_ALV_EVENT. "For

events

  • Event (Top of List)

CLEAR L_WA_EVENTS.

L_WA_EVENTS-NAME = SLIS_EV_TOP_OF_LIST.

L_WA_EVENTS-FORM = C_TOPOFPAGE.

APPEND L_WA_EVENTS TO I_EVENTS_PART.

  • Event (Top of Page)

CLEAR L_WA_EVENTS.

L_WA_EVENTS-NAME = SLIS_EV_TOP_OF_PAGE.

L_WA_EVENTS-FORM = 'F_DISPLAY_HEADER_PARTA'(031).

"f_display_header_part

APPEND L_WA_EVENTS TO I_EVENTS_PART.

  • Event (End of List)

CLEAR L_WA_EVENTS.

L_WA_EVENTS-NAME = SLIS_EV_END_OF_LIST.

L_WA_EVENTS-FORM = C_END_OF_LIST.

APPEND L_WA_EVENTS TO I_EVENTS_PART.

  • Set Layout Zebra

STRUCT_LAYOUT-ZEBRA = 'X'.

STRUCT_LAYOUT-NUMC_SUM = 'X'.

STRUCT_LAYOUT-TOTALS_TEXT = 'TOTAL:'(032).

  • set field catalog

PERFORM F_FIELD_CATALOG_PART.

ASSIGN ITAB[] TO <F_OUTTAB>.

V_PART = 'A'. "initiating list is A

PERFORM F_DISPLAY_BLOCK USING STRUCT_LAYOUT

I_FIELD_CAT_PART[]

C_TAB

I_EVENTS_PART[]

I_SORT_PART[].

ENDFORM. " f_append_block

&----


*& Form f_field_catalog_part

&----


FORM F_FIELD_CATALOG_PART .

REFRESH I_FIELD_CAT_PART.

CLEAR I_FIELD_CAT_PART.

PERFORM F_CREATE_CATALOG USING :

*Month

C_TAB 'MONTH' 'MONTH' SPACE 'L' 7

I_FIELD_CAT_PART[],

*OBD

*C_TAB 'VBELN' 'Delivery' SPACE 'L' 12

I_FIELD_CAT_PART[],

*DATE

C_TAB 'WADAT_IST' 'Date' SPACE 'L' 10

I_FIELD_CAT_PART[],

*Destination

C_TAB 'CITY1' 'Destination' SPACE 'L' 25

I_FIELD_CAT_PART[],

*Qty By Road

C_TAB 'NTGEW_ROAD' 'Road Quantity' SPACE 'R' 16

I_FIELD_CAT_PART[],

*Rail Qty

C_TAB 'NTGEW_RAIL' 'Rail Quantity'

SPACE 'R' 16 I_FIELD_CAT_PART[],

*Total Qty C_TAB 'TOT' 'Total Quantity'

SPACE 'R' 16 I_FIELD_CAT_PART[],

*RR/Trk No.

C_TAB 'EXTI2' 'Truck/RR No.' SPACE 'L' 17 I_FIELD_CAT_PART[].

ENDFORM. " f_field_catalog_part

&----


*& Form f_DISPLAY_block

&----


  • text

----


  • -->P_STRUCT_LAYOUT text

  • -->P_I_FIELD_CAT_PART[] text

  • -->P_C_TAB text

  • -->P_I_EVENTS_PART[] text

  • -->P_I_SORT_PART[] text

----


FORM F_DISPLAY_BLOCK USING FP_LAYOUT TYPE

SLIS_LAYOUT_ALV

FP_I_FCAT TYPE

SLIS_T_FIELDCAT_ALV

VALUE(FP_TABNAME) TYPE

ANY

FP_I_EVENTS TYPE

SLIS_T_EVENT

FP_I_SORT TYPE

SLIS_T_SORTINFO_ALV.

DATA: V_REPID TYPE SYREPID,

"current Program id

C_SAVE TYPE CHAR1 VALUE 'A'.

"variant save

V_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

*CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

IS_LAYOUT = FP_LAYOUT

IT_FIELDCAT = FP_I_FCAT[]

IT_SORT = FP_I_SORT[]

I_SAVE = C_SAVE "variant

save

IT_EVENTS = FP_I_EVENTS[]

TABLES

T_OUTTAB = <F_OUTTAB>

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.

ENDFORM. " f_DISPLAY_block

&----


*& Form f_create_catalog

&----


  • text

----


  • -->P_C_TAB text

  • -->P_0085 text

  • -->P_0086 text

  • -->P_SPACE text

  • -->P_0088 text

  • -->P_5 text

  • -->P_I_FIELD_CAT_PART[] text

----


FORM F_CREATE_CATALOG USING FP_I_TABNAME TYPE

SLIS_TABNAME

FP_I_FIELDNAME TYPE SLIS_FIELDNAME

FP_I_SELTEXT TYPE

SCRTEXT_L

FP_I_DOSUM TYPE

CHAR1

FP_I_JUST TYPE C

FP_I_OUTPUTLEN TYPE

OUTPUTLEN

FP_I_FCAT TYPE

SLIS_T_FIELDCAT_ALV.

  • Record for field catalog

DATA: L_REC_FCAT TYPE SLIS_FIELDCAT_ALV.

L_REC_FCAT-TABNAME = FP_I_TABNAME.

L_REC_FCAT-FIELDNAME = FP_I_FIELDNAME.

L_REC_FCAT-SELTEXT_L = FP_I_SELTEXT.

L_REC_FCAT-DO_SUM = 'X'.

*l_rec_fcat-do_sum = ' '.

L_REC_FCAT-JUST = FP_I_JUST.

L_REC_FCAT-OUTPUTLEN = FP_I_OUTPUTLEN.

L_REC_FCAT-DECIMALS_OUT = '2'.

L_REC_FCAT-KEY = '1'.

APPEND L_REC_FCAT TO FP_I_FCAT.

ENDFORM. " f_create_catalog

*****************************************

  • Subroutines for Headings

*****************************************

&----


*& Form f_display_header_partA

&----


  • Display header for report for Part A

----


&----


*& Form top_of_page

&----


FORM TOP_OF_PAGE .

SKIP 1.

WRITE:/25 ' Name of Company ',80 'RUN DATE' ,

SY-DATUM.

  • SKIP 1.

  • WRITE:/60 'RUN DATE' , SY-DATUM.

SKIP 1.

DATA: YR(4) TYPE N,

FIN_PRD(10) TYPE C.

IF S_DTABF-LOW+4(2) LT '04'.

YR = S_DTABF-LOW+0(4) - 1.

CONCATENATE YR '-' S_DTABF-LOW+2(2) INTO FIN_PRD.

ELSE.

YR = S_DTABF-LOW+0(4) + 1.

CONCATENATE S_DTABF-LOW0(4) '-' YR2(2) INTO

FIN_PRD.

ENDIF.

WRITE:/5 'DETAILS OF THE MONTH/DATE WISE DESPATCHES

MADE BY ROAD/RAIL DURING THE YEAR ' , FIN_PRD .

SKIP 1.

  • WRITE 😕 'SALES OFFICE : ' , P_SALES,' ' , RNAME.

  • SKIP 1.

ENDFORM. " DISPLAY_DATA

Read only

Former Member
0 Likes
2,489

HI,

Check the below code...

&----


*& Report ZZZ_TEST_500

*&

&----


*&

*&

&----


REPORT zzz_test_500.

TABLES:vbak.

TYPE-POOLS:slis.

TYPES:BEGIN OF ty_vbak,

vbeln LIKE vbak-vbeln,

auart LIKE vbak-auart,

kunnr LIKE vbak-kunnr,

vkorg LIKE vbak-vkorg,

vtweg LIKE vbak-vtweg,

spart LIKE vbak-spart,

END OF ty_vbak,

BEGIN OF ty_vbap,

posnr LIKE vbap-posnr,

matnr LIKE vbap-matnr,

werks LIKE vbap-werks,

lgort LIKE vbap-lgort,

ntgew LIKE vbap-ntgew,

END OF ty_vbap.

DATA:i_vbak TYPE STANDARD TABLE OF ty_vbak,

i_vbap TYPE STANDARD TABLE OF ty_vbap,

w_vbak TYPE ty_vbak,

w_vbap TYPE ty_vbap.

SELECT-OPTIONS:s_vbeln FOR vbak-vbeln.

PARAMETERS:p_var LIKE disvariant-variant.

*Declarations for ALV

DATA:i_fieldcat TYPE slis_t_fieldcat_alv,

w_fieldcat LIKE LINE OF i_fieldcat,

w_layout TYPE slis_layout_alv,

disvar TYPE disvariant,

invariant TYPE disvariant,

i_event TYPE slis_t_event,

w_event TYPE slis_alv_event,

i_header TYPE slis_t_listheader,

w_header TYPE slis_listheader.

CONSTANTS:status TYPE slis_formname VALUE 'PF_STATUS'.

AT SELECTION-SCREEN ON s_vbeln.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_var.

invariant-report = sy-repid.

CALL FUNCTION 'LVC_VARIANT_F4'

EXPORTING

is_variant = invariant

  • IT_DEFAULT_FIELDCAT =

  • I_SAVE = ' '

IMPORTING

  • e_exit =

es_variant = disvar

EXCEPTIONS

not_found = 1

program_error = 2

OTHERS = 3

.

IF sy-subrc = 0.

p_var = disvar-variant.

ENDIF.

START-OF-SELECTION.

PERFORM read_data.

PERFORM build_fieldcat.

PERFORM prepare_events.

PERFORM display_output.

&----


*& Form read_data

&----


  • text

----


FORM read_data .

SELECT vbeln

auart

kunnr

vkorg

vtweg

spart FROM vbak

INTO TABLE i_vbak

WHERE vbeln IN s_vbeln.

IF sy-subrc = 0.

ENDIF.

ENDFORM. " read_data

&----


*& Form build_fieldcat

&----


  • text

----


FORM build_fieldcat .

w_fieldcat-col_pos = 1.

w_fieldcat-fieldname = 'VBELN'.

w_fieldcat-tabname = 'I_VBAK'.

w_fieldcat-seltext_l = 'Sales Document #'.

APPEND w_fieldcat TO i_fieldcat.

CLEAR w_fieldcat.

w_fieldcat-col_pos = 2.

w_fieldcat-fieldname = 'AUART'.

w_fieldcat-tabname = 'I_VBAK'.

w_fieldcat-seltext_l = 'Order Type'.

APPEND w_fieldcat TO i_fieldcat.

CLEAR w_fieldcat.

w_fieldcat-col_pos = 3.

w_fieldcat-fieldname = 'KUNNR'.

w_fieldcat-tabname = 'I_VBAK'.

w_fieldcat-seltext_l = 'Customer #'.

APPEND w_fieldcat TO i_fieldcat.

CLEAR w_fieldcat.

w_fieldcat-col_pos = 4.

w_fieldcat-fieldname = 'VKORG'.

w_fieldcat-tabname = 'I_VBAK'.

w_fieldcat-seltext_l = 'Sales Org'.

APPEND w_fieldcat TO i_fieldcat.

CLEAR w_fieldcat.

w_fieldcat-col_pos = 5.

w_fieldcat-fieldname = 'VTWEG'.

w_fieldcat-tabname = 'I_VBAK'.

w_fieldcat-seltext_l = 'Distribution Channel'.

APPEND w_fieldcat TO i_fieldcat.

CLEAR w_fieldcat.

w_fieldcat-col_pos = 6.

w_fieldcat-fieldname = 'SPART'.

w_fieldcat-tabname = 'I_VBAK'.

w_fieldcat-seltext_l = 'Division'.

APPEND w_fieldcat TO i_fieldcat.

CLEAR w_fieldcat.

ENDFORM. " build_fieldcat

&----


*& Form display_output

&----


  • text

----


FORM display_output .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

i_callback_program = sy-repid

i_callback_pf_status_set = status

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

it_fieldcat = i_fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

is_variant = disvar

it_events = i_event

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_HTML_HEIGHT_TOP = 0

  • I_HTML_HEIGHT_END = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • IR_SALV_FULLSCREEN_ADAPTER =

TABLES

t_outtab = i_vbak

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.

ENDFORM. " display_output

&----


*& Form STATUS

&----


  • text

----


FORM pf_status USING extab TYPE slis_t_extab.

SET PF-STATUS 'TEST1'.

ENDFORM. "STATUS

&----


*& Form PREPARE_EVENTS

&----


  • text

----


FORM prepare_events .

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = i_event

EXCEPTIONS

list_type_wrong = 1

OTHERS = 2.

IF sy-subrc = 0.

READ TABLE i_event INTO w_event WITH KEY name = slis_ev_pf_status_set.

w_event-form = 'SET_PF_STATUS'.

MODIFY i_event FROM w_event INDEX sy-tabix.

READ TABLE i_event INTO w_event WITH KEY name = slis_ev_user_command.

w_event-form = 'USER_COMMAND'.

MODIFY i_event FROM w_event INDEX sy-tabix.

READ TABLE i_event INTO w_event WITH KEY name = slis_ev_top_of_page.

w_event-form = 'TOP_OF_PAGE'.

MODIFY i_event FROM w_event INDEX sy-tabix.

ENDIF.

ENDFORM. " PREPARE_EVENTS

&----


*& Form SET_PF_STATUS

&----


  • text

----


FORM set_pf_status USING extab TYPE slis_t_extab.

SET PF-STATUS 'TEST_NEW'.

ENDFORM. "SET_PF_STATUS

&----


*& Form USER_COMMAND

&----


  • text

----


FORM user_command USING rs_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

CASE rs_ucomm.

WHEN 'VBAP'.

PERFORM display_vbap_data USING rs_selfield.

ENDCASE.

ENDFORM. "USER_COMMAND

&----


*& Form DISPLAY_VBAP_DATA

&----


  • text

----


FORM display_vbap_data USING rs_selfield TYPE slis_selfield.

SET PARAMETER ID 'AUN' FIELD rs_selfield-value.

CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.

ENDFORM. " DISPLAY_VBAP_DATA

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM top_of_page.

w_header-typ = 'H'.

w_header-info = sy-repid.

APPEND w_header TO i_header.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = i_header

  • I_LOGO =

  • I_END_OF_LIST_GRID =

  • I_ALV_FORM =

.

ENDFORM. " TOP_OF_PAGE

Read only

Former Member
0 Likes
2,489

Hi,

Please refer to the link below:

http://www.sapdev.co.uk/reporting/alv/alvgrid_enhanced.htm

Thanks,

Sriram Ponna.

Read only

Former Member
0 Likes
2,489

hi,

FORM f100-end_of_page.

clear: wa_listheader, it_end_listheader, it_end_listheader[].

concatenate 'Date' sy-datum into w_date separated by space.

wa_listheader-key = ''.

wa_listheader-typ = 'S'.

wa_listheader-info = 'Date'.

append wa_listheader to it_end_listheader.

clear: wa_listheader.

concatenate 'Time' sy-uzeit into w_date separated by space.

wa_listheader-key = ''.

wa_listheader-typ = 'S'.

wa_listheader-info = 'Time'.

append wa_listheader to it_end_listheader.

clear: wa_listheader.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = it_end_listheader[]

  • I_LOGO =

  • I_END_OF_LIST_GRID =

.

ENDFORM. " f100-end_of_page

-


In grid display there will be no end_of_page and no end_of_list.

You have show in top_of_page itself.

Otherwise use list display instead of grid.

Suresh Avutu

-


These steps have to be carried out...

DATA: gc_formname_top_of_page TYPE slis_formname

VALUE 'TOP_OF_PAGE'.

DATA: gc_formname_end_of_page TYPE slis_formname

VALUE 'END_OF_PAGE'.

DATA: gt_list_top_of_page TYPE slis_t_listheader.

DATA: gt_list_end_of_page TYPE slis_t_listheader.

-


PERFORM e03_eventtab_build USING gt_event[].

PERFORM e04_comment_build USING

gt_list_top_of_page[].

PERFORM e06_comment_build USING

gt_list_end_of_page[].

PERFORM list_alv_display.

-


FORM list_alv_display .

gt_event-name = slis_ev_top_of_list.

gt_event-form = 'TOP_OF_PAGE'.

APPEND gt_event.

gt_event-name = slis_ev_end_of_list.

gt_event-form = 'END_OF_PAGE'.

APPEND gt_event.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

i_bypassing_buffer = 'X'

i_buffer_active = ' '

i_callback_program = ....

-


FORM end_of_page.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

i_logo = ''

it_list_commentary = gt_list_end_of_page

I_END_OF_LIST_GRID = 1.

ENDFORM. "END_OF_PAGE

-


FORM e06_comment_build

USING e06_lt_end_of_page TYPE slis_t_listheader.

DATA: ls_line TYPE slis_listheader.

DATA: yl_uname(60).

< here u can concatenate system date and time to

yl_uname>

CLEAR ls_line.

ls_line-typ = 'S'.

ls_line-info = yl_uname.

APPEND ls_line TO e06_lt_end_of_page.

endform. "e06_comment_build

Suman Tyagi

-


An Example:

REPORT ZALV_GRID.

TABLES :vbap.

type-pools : slis.

data i_events TYPE slis_t_event.

DATA : my_alv TYPE REF TO cl_gui_alv_grid.

TYPES : BEGIN OF itab,

vbeln LIKE vbap-vbeln,

arktx LIKE vbap-arktx,

END OF itab.

TYPES : itab1 TYPE TABLE OF itab.

DATA : display TYPE itab1.

DATA : fcat TYPE SLIS_T_FIELDCAT_ALV.

DATA : wa LIKE LINE OF FCAT.

DATA WA1 LIKE VBAP.

DATA: container TYPE REF TO cl_gui_custom_container.

data report_id like sy-repid.

SELECT-OPTIONS s_vbeln FOR vbap-vbeln.

report_id = sy-repid.

SELECT * FROM vbap INTO CORRESPONDING FIELDS OF TABLE display WHERE

vbeln IN s_vbeln.

wa-fieldname = 'VBELN'.

wa-tabname = 'VBAP'.

wa-key = 'X'.

WA-HOTSPOT = 'X'.

wa-text_fieldname = 'Doc no.'.

APPEND wa TO fcat.

CLEAR wa.

wa-fieldname = 'ARKTX'.

wa-tabname = 'VBAP'.

wa-text_fieldname = 'Item Text'.

APPEND wa TO fcat.

PERFORM f0650_build_event USING 'USER_COMMAND'

'F0750_USER_COMMAND'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY '

EXPORTING

I_CALLBACK_PROGRAM = report_id

IT_FIELDCAT = FCAT

IT_EVENTS = i_events

TABLES

t_outtab = DISPLAY

.

FORM f0650_build_event USING value(w_c_event_name)

value(w_c_event_form).

DATA: f0650_wa_event TYPE slis_alv_event.

CLEAR f0650_wa_event.

f0650_wa_event-name = w_c_event_name.

f0650_wa_event-form = w_c_event_form.

APPEND f0650_wa_event TO i_events.

ENDFORM.

FORM f0750_user_command USING w_ucomm TYPE sy-ucomm

w_selfield TYPE slis_selfield.

CASE w_ucomm.

WHEN '&IC1'.

READ TABLE DISPLAY INTO WA1 INDEX w_selfield-tabindex.

  • MESSAGE E000 WITH

  • ' You have no authorization to view the report'.

call transaction 'SE11'.

ENDCASE.

ENDFORM.

      • End of Program

Hope this helps, Do reward.

Read only

Former Member
0 Likes
2,489

Hello,

Check this sample report.


REPORT BALVST02 NO STANDARD PAGE HEADING.
* ALV
TYPE-POOLS: SLIS.
* DB-Table
TABLES SFLIGHT.
* Includes
INCLUDE <ICON>.
INCLUDE <SYMBOL>.
*
CONSTANTS:
GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
DATA: GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
      GS_LAYOUT   TYPE SLIS_LAYOUT_ALV,
      GS_PRINT    TYPE SLIS_PRINT_ALV,
      GT_SORT     TYPE SLIS_T_SORTINFO_ALV,
      GT_SP_GROUP TYPE SLIS_T_SP_GROUP_ALV,
      GT_EVENTS   TYPE SLIS_T_EVENT.
* Data to be displayed
DATA: BEGIN OF GT_SFLIGHT OCCURS 0.
        INCLUDE STRUCTURE SFLIGHT.
DATA: ADD1,
      CARRNAME LIKE SCARR-CARRNAME,
      BOX,
      LIGHTS.
DATA: END OF GT_SFLIGHT.
*
DATA: G_REPID LIKE SY-REPID.
DATA: GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
* Report Selections
SELECT-OPTIONS CARRID FOR SFLIGHT-CARRID.
SELECT-OPTIONS CONNID FOR SFLIGHT-CONNID.
SELECT-OPTIONS FLDATE FOR SFLIGHT-FLDATE.
SELECTION-SCREEN SKIP 1.
* Parameters
PARAMETERS: P_MAXROW TYPE I DEFAULT 30.
SELECTION-SCREEN SKIP 1.
* Variante
SELECTION-SCREEN BEGIN OF BLOCK 0 WITH FRAME TITLE TEXT-006.
PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT.
SELECTION-SCREEN END OF BLOCK 0.
* Layout
SELECTION-SCREEN BEGIN OF BLOCK A WITH FRAME TITLE TEXT-060.
PARAMETERS:
            P_ZEBRA  AS CHECKBOX DEFAULT ' ',
            P_NOCOLH AS CHECKBOX DEFAULT ' ',
            P_NOVLIN AS CHECKBOX DEFAULT ' ',
            P_COLOPT AS CHECKBOX DEFAULT ' ',
            P_KEYHOT AS CHECKBOX DEFAULT ' ',
            P_NOINPT AS CHECKBOX DEFAULT ' ',
            P_MERGE  AS CHECKBOX DEFAULT ' '.
SELECTION-SCREEN END OF BLOCK A.
SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME TITLE TEXT-061.
PARAMETERS:
            P_LIGHTS AS CHECKBOX DEFAULT ' ',
            P_LIGHTC AS CHECKBOX DEFAULT ' '.
SELECTION-SCREEN END OF BLOCK B.
SELECTION-SCREEN BEGIN OF BLOCK C WITH FRAME TITLE TEXT-062.
PARAMETERS:
            P_BEFORE AS CHECKBOX DEFAULT ' ',
            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-063.
PARAMETERS:
            P_GPCE   AS CHECKBOX DEFAULT ' ',
            P_CHKBOX AS CHECKBOX DEFAULT ' ',
            P_DETPOP AS CHECKBOX DEFAULT ' '.
SELECTION-SCREEN END OF BLOCK D.
SELECTION-SCREEN BEGIN OF BLOCK E WITH FRAME TITLE TEXT-064.
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:       G_BOXNAM TYPE SLIS_FIELDNAME VALUE  'BOX',
            P_F2CODE LIKE SY-UCOMM       VALUE  '&ETA',
            P_LIGNAM TYPE SLIS_FIELDNAME VALUE  'LIGHTS',
            G_SAVE(1) TYPE C,
            G_DEFAULT(1) TYPE C,
            G_EXIT(1) TYPE C,
            GX_VARIANT LIKE DISVARIANT,
            G_VARIANT LIKE DISVARIANT.
*---------------------------------------------------------------------*
INITIALIZATION.
  G_REPID = SY-REPID.
  PERFORM E01_FIELDCAT_INIT  USING GT_FIELDCAT[].
  PERFORM E03_EVENTTAB_BUILD USING GT_EVENTS[].
  PERFORM E04_COMMENT_BUILD  USING GT_LIST_TOP_OF_PAGE[].
  PERFORM E06_T_SORT_BUILD   USING GT_SORT[].
  PERFORM E07_SP_GROUP_BUILD USING GT_SP_GROUP[].
* Schalter Varianten benutzerspezifisch/allgemein speicherbar setzen
* Set Options: save variants userspecific or general
  G_SAVE = 'A'.
  PERFORM VARIANT_INIT.
* Get default variant
  GX_VARIANT = G_VARIANT.
  CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
       EXPORTING
            I_SAVE     = G_SAVE
       CHANGING
            CS_VARIANT = GX_VARIANT
       EXCEPTIONS
            NOT_FOUND  = 2.
  IF SY-SUBRC = 0.
    P_VARI = GX_VARIANT-VARIANT.
  ENDIF.
* Process on value request
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
  PERFORM F4_FOR_VARIANT.

* PAI
AT SELECTION-SCREEN.
  PERFORM PAI_OF_SELECTION_SCREEN.


START-OF-SELECTION.
  PERFORM SELECTION.

END-OF-SELECTION.
  PERFORM E05_LAYOUT_BUILD USING GS_LAYOUT.     "wg. Parameters
  PERFORM E08_PRINT_BUILD  USING GS_PRINT.      "wg. Parameters
* Call ABAP/4 List Viewer
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
            I_BACKGROUND_ID         = 'ALV_BACKGROUND'
            I_CALLBACK_PROGRAM      = G_REPID
            I_STRUCTURE_NAME        = 'SFLIGHT'
            IS_LAYOUT               = GS_LAYOUT
            IT_FIELDCAT             = GT_FIELDCAT[]
*           IT_EXCLUDING            =
            IT_SPECIAL_GROUPS       = GT_SP_GROUP[]
            IT_SORT                 = GT_SORT[]
*           IT_FILTER               =
*           IS_SEL_HIDE             =
*           i_default               = g_default
            I_SAVE                  = G_SAVE
            IS_VARIANT              = G_VARIANT
            IT_EVENTS               = GT_EVENTS[]
*           IT_EVENT_EXIT           =
            IS_PRINT                = GS_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                = GT_SFLIGHT.
*---------------------------------------------------------------------*
*       FORM E01_FIELDCAT_INIT                                        *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
*  -->  E01_LT_FIELDCAT                                               *
*---------------------------------------------------------------------*
FORM E01_FIELDCAT_INIT USING E01_LT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
  DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
*
  CLEAR LS_FIELDCAT.
* LS_FIELDCAT-COL_POS      = 1.
  LS_FIELDCAT-FIELDNAME    = 'ADD1'.
  LS_FIELDCAT-REPTEXT_DDIC = '?'.
  LS_FIELDCAT-OUTPUTLEN    = 1.
  LS_FIELDCAT-NO_OUT       = 'X'.
  LS_FIELDCAT-INPUT        = 'X'.
  LS_FIELDCAT-SP_GROUP = 'A'.
  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
*
  CLEAR LS_FIELDCAT.
  LS_FIELDCAT-FIELDNAME    = 'CARRNAME'.
  LS_FIELDCAT-COL_POS      = 2.
  LS_FIELDCAT-KEY          = 'X'.
  LS_FIELDCAT-KEY_SEL      = 'X'.
  LS_FIELDCAT-REF_TABNAME    = 'SCARR'.
  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
*
  CLEAR LS_FIELDCAT.
  LS_FIELDCAT-FIELDNAME    = 'SEATSOCC'.
  LS_FIELDCAT-DO_SUM       = 'X'.
  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
*
  CLEAR LS_FIELDCAT.
  LS_FIELDCAT-FIELDNAME    = 'PRICE'.
  LS_FIELDCAT-DO_SUM       = 'X'.
  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
*
  CLEAR LS_FIELDCAT.
  LS_FIELDCAT-COL_POS      = 1.
  LS_FIELDCAT-FIELDNAME    = 'CARRID'.
* ls_fieldcat-ref_fieldname    = 'SFLIGHT'.
  LS_FIELDCAT-TEXT_FIELDNAME = 'CARRNAME'.
* append ls_fieldcat to e01_lt_fieldcat.
*
* clear ls_fieldcat.
  LS_FIELDCAT-FIELDNAME    = 'CARRID'.
  LS_FIELDCAT-KEY_SEL      = 'X'.
  LS_FIELDCAT-NO_OUT       = 'X'.
  LS_FIELDCAT-OUTPUTLEN    = 7.
  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM E02_DATA_ADD                                             *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
*  -->  E02_LT_SFLIGHT                                                *
*---------------------------------------------------------------------*
FORM E02_DATA_ADD TABLES E02_LT_SFLIGHT STRUCTURE GT_SFLIGHT.
  LOOP AT E02_LT_SFLIGHT.
    IF SY-TABIX > 10.
      E02_LT_SFLIGHT-ADD1 = 'A'.
      E02_LT_SFLIGHT-BOX  = 'X'.
      E02_LT_SFLIGHT-LIGHTS = '3'.
    ELSE.
      IF SY-TABIX = 1.
        E02_LT_SFLIGHT-LIGHTS = '2'.
      ELSE.
        E02_LT_SFLIGHT-LIGHTS = '1'.
      ENDIF.
    ENDIF.
    MODIFY E02_LT_SFLIGHT.
  ENDLOOP.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM E03_EVENTTAB_BUILD                                       *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
*  -->  E03_LT_EVENTS                                                 *
*---------------------------------------------------------------------*
FORM E03_EVENTTAB_BUILD USING E03_LT_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   = E03_LT_EVENTS.
  READ TABLE E03_LT_EVENTS WITH KEY NAME =  SLIS_EV_TOP_OF_PAGE
                           INTO LS_EVENT.
  IF SY-SUBRC = 0.
    MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
    APPEND LS_EVENT TO E03_LT_EVENTS.
  ENDIF.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM E04_COMMENT_BUILD                                        *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
*  -->  E04_LT_TOP_OF_PAGE                                            *
*---------------------------------------------------------------------*
FORM E04_COMMENT_BUILD USING E04_LT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
  DATA: LS_LINE TYPE SLIS_LISTHEADER.
*
* Listenüberschrift: Typ H
  CLEAR LS_LINE.
  LS_LINE-TYP  = 'H'.
* LS_LINE-KEY:  not used for this type
  LS_LINE-INFO = TEXT-100.
  APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
* Kopfinfo: Typ S
  CLEAR LS_LINE.
  LS_LINE-TYP  = 'S'.
  LS_LINE-KEY  = TEXT-101.
  LS_LINE-INFO = TEXT-102.
  APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
  LS_LINE-KEY  = TEXT-103.
  LS_LINE-INFO = TEXT-104.
  APPEND LS_LINE TO E04_LT_TOP_OF_PAGE.
* Aktionsinfo: Typ A
  CLEAR LS_LINE.
  LS_LINE-TYP  = 'A'.
* LS_LINE-KEY:  not used for this type
  LS_LINE-INFO = TEXT-105.
  APPEND LS_LINE TO  E04_LT_TOP_OF_PAGE.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM E05_LAYOUT_BUILD                                         *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
*  <->  E05_LS_LAYOUT                                                 *
*---------------------------------------------------------------------*
FORM E05_LAYOUT_BUILD USING E05_LS_LAYOUT TYPE SLIS_LAYOUT_ALV.
  E05_LS_LAYOUT-F2CODE            = P_F2CODE.
  E05_LS_LAYOUT-ZEBRA             = P_ZEBRA.
  E05_LS_LAYOUT-CELL_MERGE        = P_MERGE.
  E05_LS_LAYOUT-COLWIDTH_OPTIMIZE = P_COLOPT.
  IF P_CHKBOX = 'X'.
    E05_LS_LAYOUT-BOX_FIELDNAME     = G_BOXNAM.
  ELSE.
    E05_LS_LAYOUT-BOX_FIELDNAME     = SPACE.
  ENDIF.
  E05_LS_LAYOUT-NO_INPUT          = P_NOINPT.
  E05_LS_LAYOUT-NO_VLINE          = P_NOVLIN.
  E05_LS_LAYOUT-NO_COLHEAD        = P_NOCOLH.
  IF P_LIGHTS = 'X' OR P_LIGHTC = 'X'.
    E05_LS_LAYOUT-LIGHTS_FIELDNAME = P_LIGNAM.
  ELSE.
    CLEAR E05_LS_LAYOUT-LIGHTS_FIELDNAME.
  ENDIF.
  IF P_BEFORE = 'X'.
    E05_LS_LAYOUT-TOTALS_BEFORE_ITEMS = 'X'.
  ENDIF.
  IF P_GPCE = 'X'.
    E05_LS_LAYOUT-GROUP_CHANGE_EDIT = 'X'.
  ENDIF.
  E05_LS_LAYOUT-LIGHTS_CONDENSE = P_LIGHTC.
  E05_LS_LAYOUT-TOTALS_TEXT       = P_TOTEXT.
  E05_LS_LAYOUT-SUBTOTALS_TEXT    = P_STTEXT.
  E05_LS_LAYOUT-TOTALS_ONLY       = P_TOTONL.
  E05_LS_LAYOUT-KEY_HOTSPOT       = P_KEYHOT.
  E05_LS_LAYOUT-DETAIL_POPUP      = P_DETPOP.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM E06_T_SORT_BUILD                                         *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
*  -->  E06_LT_SORT                                                   *
*---------------------------------------------------------------------*
FORM E06_T_SORT_BUILD USING E06_LT_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 e06_lt_sort.
  CLEAR LS_SORT.
  LS_SORT-FIELDNAME = 'CARRNAME'.
  LS_SORT-SPOS      = 1.
  LS_SORT-UP        = 'X'.
* ls_sort-subtot    = 'X'.
  APPEND LS_SORT TO E06_LT_SORT.

  CLEAR LS_SORT.
  LS_SORT-FIELDNAME = 'CONNID'.
  LS_SORT-SPOS      = 2.
  LS_SORT-UP        = 'X'.
* ls_sort-subtot    = 'X'.
  APPEND LS_SORT TO E06_LT_SORT.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM E07_SP_GROUP_BUILD                                       *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
*  -->  E07_LT_SP_GROUP                                               *
*---------------------------------------------------------------------*
FORM E07_SP_GROUP_BUILD USING E07_LT_SP_GROUP TYPE SLIS_T_SP_GROUP_ALV.
  DATA: LS_SP_GROUP TYPE SLIS_SP_GROUP_ALV.
*
  CLEAR  LS_SP_GROUP.
  LS_SP_GROUP-SP_GROUP = 'A'.
  LS_SP_GROUP-TEXT     = TEXT-005.
  APPEND LS_SP_GROUP TO E07_LT_SP_GROUP.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM E08_PRINT_BUILD                                          *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
*  -->  E08_LS_PRINT                                                  *
*---------------------------------------------------------------------*
FORM E08_PRINT_BUILD USING E08_LS_PRINT TYPE SLIS_PRINT_ALV.
*
  E08_LS_PRINT-PRINT              = P_PRINT.
  E08_LS_PRINT-NO_PRINT_SELINFOS  = P_NOSINF.
  E08_LS_PRINT-NO_COVERPAGE       = P_NOCOVE.
  E08_LS_PRINT-NO_NEW_PAGE        = P_NONEWP.
  E08_LS_PRINT-NO_PRINT_LISTINFOS = P_NOLINF.
  E08_LS_PRINT-RESERVE_LINES      = P_RESERV.
  E08_LS_PRINT-PRINT              = P_PRINT.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM SELECTION                                                *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM SELECTION.
* select * from sflight into corresponding fields of table gt_sflight
*                                             up to p_maxrow rows
*                                             where carrid in carrid
*                                             and   connid in connid
*                                             and   fldate in fldate.
  SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_SFLIGHT FROM
                ( SFLIGHT LEFT JOIN SCARR
                  ON SFLIGHT~CARRID = SCARR~CARRID )

                                              UP TO P_MAXROW ROWS
                                WHERE SFLIGHT~CARRID IN CARRID
                                AND   SFLIGHT~CONNID IN CONNID
                                AND   SFLIGHT~FLDATE IN FLDATE.
*
  PERFORM E02_DATA_ADD TABLES GT_SFLIGHT.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM TOP_OF_PAGE                                              *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE.
*
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
       EXPORTING
*           i_logo             = 'HTMLCNTL_TESTHTM2_SAPLOGO'
            I_LOGO             = 'ENJOYSAP_LOGO'
            IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM F4_FOR_VARIANT                                           *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM F4_FOR_VARIANT.
*
  CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
       EXPORTING
            IS_VARIANT          = G_VARIANT
            I_SAVE              = G_SAVE
*           it_default_fieldcat =
       IMPORTING
            E_EXIT              = G_EXIT
            ES_VARIANT          = GX_VARIANT
       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 G_EXIT = SPACE.
      P_VARI = GX_VARIANT-VARIANT.
    ENDIF.
  ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  PAI_OF_SELECTION_SCREEN
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM PAI_OF_SELECTION_SCREEN.
*
  IF NOT P_VARI IS INITIAL.
    MOVE G_VARIANT TO GX_VARIANT.
    MOVE P_VARI TO GX_VARIANT-VARIANT.
    CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
         EXPORTING
              I_SAVE     = G_SAVE
         CHANGING
              CS_VARIANT = GX_VARIANT.
    G_VARIANT = GX_VARIANT.
  ELSE.
    PERFORM VARIANT_INIT.
  ENDIF.
ENDFORM.                               " PAI_OF_SELECTION_SCREEN
*&---------------------------------------------------------------------*
*&      Form  VARIANT_INIT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM VARIANT_INIT.
*
  CLEAR G_VARIANT.
  G_VARIANT-REPORT = G_REPID.
ENDFORM.                               " VARIANT_INIT

Cheers,

Vasanth

Read only

Former Member
0 Likes
2,489

hi,

Text

Output of a simple list (single-line)

Functionality

The function module outputs an internal table with whatever structure in the form of a formatted single- oder multi-line list.

Process:

Passing an internal table with the set of information to be output

Passing a structure with general layout specifications for list layout

Passing a field catalog in the form of an internal table

The field catalog describes the fields to be output in the list.

Notes

All interactions performed on the list refer directly to the internal output table. Sorting the list, for example, also involves a resorting of the internal output table passed (since it was passed by reference).

An important factor determining the usability of the tool or of various generic functions (totals, subtotals) is the expected amount of data to be displayed.

The application is responsible for critically testing this aspect and consider it when it comes to decision-making.

Further Information

Parameters

ES_EXIT_CAUSED_BY_USER

Meaning

If one of the default ALV function codes for 'Back', 'Cancel' or 'Exit' is triggered, the system destroys the current list and quits the ALV function module. In this case, exporting structure ES_EXIT_CAUSED_BY_USER is filled accordingly:

ES_EXIT_CAUSED_BY_USER-BACK = 'X' Function 'Back' triggered

ES_EXIT_CAUSED_BY_USER-CANCEL = 'X' Function 'Cancel' triggered

ES_EXIT_CAUSED_BY_USER-EXIT = 'X' Function 'Exit' triggered

Knowing which function was triggered, the application can then determine further navigation.

E_EXIT_CAUSED_BY_CALLER

Meaning

Parameter that specifies if the caller in CALLBACK USER_COMMAND has forced the system to exit the list (SELFIELD-EXIT = 'X')

Range

Hope this helps, Do reward.

Read only

Former Member
0 Likes
2,489

hi ben,

try this it might help you.

&----


*& Report Z84184_ALV1 *

*& *

&----


*& *

*& *

&----


REPORT z84184_alv1 .

TABLES : lfa1,ekko,ekpo,mara.

*SELECT-OPTIONS : S_LIFNR FOR EKKO-EBELN.

*PARAMETERS : P_LIST RADIOBUTTON GROUP G1,

  • P_GRID RADIOBUTTON GROUP G1.

DATA : BEGIN OF itab OCCURS 0,

ebeln LIKE ekko-ebeln,

aedat LIKE ekko-aedat,

ernam LIKE ekko-ernam,

lifnr LIKE ekko-lifnr,

END OF itab.

DATA : BEGIN OF jtab OCCURS 0,

ebelp LIKE ekpo-ebelp,

ebeln LIKE ekpo-ebeln,

aedat LIKE ekpo-aedat,

werks LIKE ekpo-werks,

END OF jtab.

DATA:BEGIN OF t_output OCCURS 0,

ebeln LIKE ekko-ebeln,

aedat LIKE ekko-aedat,

ernam LIKE ekko-ernam,

lifnr LIKE ekko-lifnr,

ebelp LIKE ekpo-ebelp,

werks LIKE ekpo-werks,

END OF t_output.

DATA : repid LIKE sy-repid.

TYPE-POOLS : slis.

DATA : wa_cat TYPE slis_fieldcat_alv,

b_cat TYPE slis_t_fieldcat_alv.

DATA : T_ITEM TYPE SLIS_TABNAME.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.

SELECT-OPTIONS:s_ebeln FOR ekko-ebeln,

s_aedat FOR ekko-aedat.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-t02.

PARAMETERS:p_list RADIOBUTTON GROUP g1,

p_grid RADIOBUTTON GROUP g1.

SELECTION-SCREEN END OF BLOCK b2.

IF p_list = 'X'.

wa_cat-fieldname = 'EBELN'.

wa_cat-ref_fieldname = 'EBELN'.

wa_cat-ref_tabname = 'EKKO'.

APPEND wa_cat TO b_cat.

wa_cat-fieldname = 'AEDAT'.

wa_cat-ref_fieldname = 'AEDAT'.

wa_cat-ref_tabname = 'EKKO'.

APPEND wa_cat TO b_cat.

wa_cat-fieldname = ' ERNAM '.

wa_cat-ref_fieldname = ' ERNAM '.

wa_cat-ref_tabname = 'EKKO'.

APPEND wa_cat TO b_cat.

wa_cat-fieldname = ' LIFNR'.

wa_cat-ref_fieldname = ' LIFNR '.

wa_cat-ref_tabname = 'EKKO'.

APPEND wa_cat TO b_cat.

wa_cat-fieldname = 'EBELP'.

wa_cat-ref_fieldname = 'EBELP'.

wa_cat-ref_tabname = 'EKPO'.

APPEND wa_cat TO b_cat.

wa_cat-fieldname = 'EBELN'.

wa_cat-ref_fieldname = 'EBELN'.

wa_cat-ref_tabname = 'EKPO'.

APPEND wa_cat TO b_cat.

*APPEND WA_CAT TO B_CAT.

wa_cat-fieldname = 'AEDAT'.

wa_cat-ref_fieldname = 'AEDAT'.

wa_cat-ref_tabname = 'EKPO'.

APPEND wa_cat TO b_cat.

APPEND wa_cat TO b_cat.

wa_cat-fieldname = 'WERKS'.

wa_cat-ref_fieldname = 'WERKS'.

wa_cat-ref_tabname = 'EKPO'.

APPEND wa_cat TO b_cat.

T_ITEM = 'T_OUTPUT'.

SELECT ekkoebeln ekkoaedat ekkoernam ekkolifnr ekpoebelp ekpowerks INTO TABLE t_output FROM ekko

INNER JOIN ekpo ON ekkoebeln = ekpoebeln.

*SELECT EBELN AEDAT FROM EKKO INTO TABLE ITAB. " WHERE EKKO-EBELN IN S_LIFNR.

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

I_CALLBACK_PROGRAM = 'REPID'

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • IS_LAYOUT =

IT_FIELDCAT = B_CAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

i_tabname_header =

i_tabname_item =

  • I_STRUCTURE_NAME_HEADER =

  • I_STRUCTURE_NAME_ITEM =

is_keyinfo =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

tables

t_outtab_header =

t_outtab_item = T_OUTPUT

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

  • it_fieldcat = b_cat

  • TABLES

  • t_outtab = t_output.

*

ENDIF.

*IF P_GRID = 'X'.

*WA_CAT-FIELDNAME = 'EBELP'.

*WA_CAT-REF_FIELDNAME = 'EBELP'.

*WA_CAT-REF_TABNAME = 'EKPO'.

*

*APPEND WA_CAT TO B_CAT.

*

*WA_CAT-FIELDNAME = 'EBELN'.

*WA_CAT-REF_FIELDNAME = 'EBELN'.

*WA_CAT-REF_TABNAME = 'EKPO'.

*

*APPEND WA_CAT TO B_CAT.

*

*

*

*APPEND WA_CAT TO B_CAT.

*

*WA_CAT-FIELDNAME = 'AEDAT'.

*WA_CAT-REF_FIELDNAME = 'AEDAT'.

*WA_CAT-REF_TABNAME = 'EKPO'.

*

*APPEND WA_CAT TO B_CAT.

*

*

*APPEND WA_CAT TO B_CAT.

*

*WA_CAT-FIELDNAME = 'WERKS'.

*WA_CAT-REF_FIELDNAME = 'WERKS'.

*WA_CAT-REF_TABNAME = 'EKPO'.

*

*APPEND WA_CAT TO B_CAT.

*

*SELECT EBELP FROM EKPO INTO TABLE JTAB.

*

*

*CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

  • EXPORTING

  • I_CALLBACK_PROGRAM = 'REPID'

  • IT_FIELDCAT = B_CAT

    • IT_EXCLUDING =

    • IT_SPECIAL_GROUPS =

    • IT_SORT =

    • IT_FILTER =

    • IS_SEL_HIDE =

    • I_DEFAULT = 'X'

    • I_SAVE = ' '

    • IS_VARIANT =

    • IT_EVENTS =

    • IT_EVENT_EXIT =

    • IS_PRINT =

    • IS_REPREP_ID =

    • I_SCREEN_START_COLUMN = 0

    • I_SCREEN_START_LINE = 0

    • I_SCREEN_END_COLUMN = 0

    • I_SCREEN_END_LINE = 0

    • IT_ALV_GRAPHICS =

    • IT_HYPERLINK =

    • IT_ADD_FIELDCAT =

    • IT_EXCEPT_QINFO =

    • I_HTML_HEIGHT_TOP =

    • I_HTML_HEIGHT_END =

    • IMPORTING

    • E_EXIT_CAUSED_BY_CALLER =

    • ES_EXIT_CAUSED_BY_USER =

  • TABLES

  • t_outtab = JTAB

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

*ENDIF.

reward if found useful.

Thanks And Regards

Chaitanya