‎2008 Feb 08 11:37 AM
Hi,
How to use the Function Module REUSE_ALV_GRID_DISPLAY can any body explain me with one example please.
‎2008 Feb 08 11:39 AM
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
‎2008 Feb 08 11:39 AM
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
‎2008 Feb 08 11:39 AM
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
‎2008 Feb 08 11:39 AM
Hi,
Please refer to the link below:
http://www.sapdev.co.uk/reporting/alv/alvgrid_enhanced.htm
Thanks,
Sriram Ponna.
‎2008 Feb 08 11:39 AM
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.
‎2008 Feb 08 11:39 AM
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
‎2008 Feb 08 11:42 AM
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.
‎2008 Feb 08 11:43 AM
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