‎2008 Feb 02 3:57 AM
Hello erperts,
i am practicing on alv reports,i want to display the header for alv reports,can u please guide me how to do,if any example please give me.
Thanks in advance.
‎2008 Feb 02 4:06 AM
Hi,
u can print headings for all types of ALV reports.
For grid there is a parameter in function module "REUSE_ALV_GRID_DISPLAY", we can print top-of-page directly by using the parameter in the above function module.
For list we can display by using events.
DISPLAY HEADER BY SPLITTING IT.
TABLES VBAK.
TYPE-POOLS SLIS.
Data Declaration
TYPES: BEGIN OF T_VBAK,
VBELN TYPE VBAK-VBELN,
ERDAT TYPE VBAK-ERDAT,
ERNAM TYPE VBAK-ERNAM,
AUDAT TYPE VBAK-AUDAT,
VBTYP TYPE VBAK-VBTYP,
NETWR TYPE VBAK-NETWR,
VKORG TYPE VBAK-VKORG,
VKGRP TYPE VBAK-VKGRP,
END OF T_VBAK.
DATA IT_VBAK TYPE STANDARD TABLE OF T_VBAK INITIAL SIZE 0.
ALV Data Declaration
DATA: FLDCAT TYPE SLIS_T_FIELDCAT_ALV,
W_FLDCAT TYPE SLIS_FIELDCAT_ALV,
GD_LAYOUT TYPE SLIS_LAYOUT_ALV,
GD_REPID TYPE SY-REPID.
START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
PERFORM BLD_FLDCAT.
PERFORM BLD_LAYOUT.
PERFORM DISPLAY_ALV_REPORT.
Build Field Catalog for ALV Report
FORM BLD_FLDCAT.
W_FLDCAT-FIELDNAME = 'VBELN'.
W_FLDCAT-SELTEXT_M = 'Sales Document'.
W_FLDCAT-COL_POS = 0.
*W_FLDCAT-EMPHASIZE = 'C411'.
W_FLDCAT-OUTPUTLEN = 20.
W_FLDCAT-KEY = 'X'.
W_FLDCAT-ICON = 'X'.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
W_FLDCAT-FIELDNAME = 'ERDAT'.
W_FLDCAT-SELTEXT_L = 'Record Date created'.
W_FLDCAT-COL_POS = 1.
W_FLDCAT-KEY = 'X'.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
W_FLDCAT-FIELDNAME = 'ERNAM'.
W_FLDCAT-SELTEXT_L = 'Cteated Object Person Name'.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
W_FLDCAT-FIELDNAME = 'AUDAT'.
W_FLDCAT-SELTEXT_M = 'Document Date'.
W_FLDCAT-COL_POS = 3.
W_FLDCAT-EMPHASIZE = 'C110'.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
W_FLDCAT-FIELDNAME = 'VBTYP'.
W_FLDCAT-SELTEXT_L = 'SD Document category'.
W_FLDCAT-COL_POS = 4.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
W_FLDCAT-FIELDNAME = 'NETWR'.
W_FLDCAT-SELTEXT_L = 'Net Value of the SO in Document Currency'.
W_FLDCAT-COL_POS = 5.
W_FLDCAT-OUTPUTLEN = 60.
W_FLDCAT-DO_SUM = 'X'.
W_FLDCAT-DATATYPE = 'CURR'.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
W_FLDCAT-FIELDNAME = 'VKORG'.
W_FLDCAT-SELTEXT_L = 'Sales Organization'.
W_FLDCAT-COL_POS = 6.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
W_FLDCAT-FIELDNAME = 'VKGRP'.
W_FLDCAT-SELTEXT_M = 'Sales Group'.
W_FLDCAT-COL_POS = 7.
W_FLDCAT-EMPHASIZE = 'C801'.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
ENDFORM.
Build Layout for ALV Grid Report
FORM BLD_LAYOUT.
GD_LAYOUT-NO_INPUT = 'X'.
GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
GD_LAYOUT-BOX_FIELDNAME = 'VBELN'.
ENDFORM.
Display report using ALV grid
FORM DISPLAY_ALV_REPORT.
GD_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GD_REPID
IS_LAYOUT = GD_LAYOUT
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
IT_FIELDCAT = FLDCAT[]
I_SAVE = 'X'
I_GRID_TITLE = 'WELCOME TO ALV'
TABLES
T_OUTTAB = IT_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.
Retrieve data from VBAK table and populate itab IT_VBAK
FORM DATA_RETRIEVAL.
SELECT VBELN ERDAT ERNAM AUDAT VBTYP NETWR VKORG
UP TO 50 ROWS
FROM VBAK
INTO TABLE IT_VBAK.
ENDFORM.
FORM TOP_OF_PAGE.
DATA: T_HEADER TYPE SLIS_T_LISTHEADER,
W_HEADER TYPE SLIS_LISTHEADER.
W_HEADER-TYP = 'H'.
W_HEADER-INFO = 'WELCOME HEADER LIST'.
APPEND W_HEADER TO T_HEADER.
W_HEADER-TYP = 'S'.
W_HEADER-KEY = 'REPORT:'.
W_HEADER-INFO = SY-REPID.
APPEND W_HEADER TO T_HEADER.
W_HEADER-TYP = 'S'.
W_HEADER-KEY = 'DATE:'.
CONCATENATE SY-DATUM4(2) ' / ' SY-DATUM6(2) ' / ' SY-DATUM(4) INTO W_HEADER-INFO.
APPEND W_HEADER TO T_HEADER.
CLEAR W_HEADER.
W_HEADER-TYP = 'S'.
W_HEADER-KEY = 'Page No:'.
W_HEADER-INFO = SY-PAGNO.
APPEND W_HEADER TO T_HEADER.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = T_HEADER.
ENDFORM.
REWARD POINTS,IF IT IS USEFUL.
THANKS,
CHANDU.
‎2008 Feb 02 4:00 AM
Hi,
see this link [http://www.sapdev.co.uk/reporting/alv/alvgrid.htm|http://www.sapdev.co.uk/reporting/alv/alvgrid.htm]
Cheers,
Will.
‎2008 Feb 02 4:06 AM
Hi,
u can print headings for all types of ALV reports.
For grid there is a parameter in function module "REUSE_ALV_GRID_DISPLAY", we can print top-of-page directly by using the parameter in the above function module.
For list we can display by using events.
DISPLAY HEADER BY SPLITTING IT.
TABLES VBAK.
TYPE-POOLS SLIS.
Data Declaration
TYPES: BEGIN OF T_VBAK,
VBELN TYPE VBAK-VBELN,
ERDAT TYPE VBAK-ERDAT,
ERNAM TYPE VBAK-ERNAM,
AUDAT TYPE VBAK-AUDAT,
VBTYP TYPE VBAK-VBTYP,
NETWR TYPE VBAK-NETWR,
VKORG TYPE VBAK-VKORG,
VKGRP TYPE VBAK-VKGRP,
END OF T_VBAK.
DATA IT_VBAK TYPE STANDARD TABLE OF T_VBAK INITIAL SIZE 0.
ALV Data Declaration
DATA: FLDCAT TYPE SLIS_T_FIELDCAT_ALV,
W_FLDCAT TYPE SLIS_FIELDCAT_ALV,
GD_LAYOUT TYPE SLIS_LAYOUT_ALV,
GD_REPID TYPE SY-REPID.
START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
PERFORM BLD_FLDCAT.
PERFORM BLD_LAYOUT.
PERFORM DISPLAY_ALV_REPORT.
Build Field Catalog for ALV Report
FORM BLD_FLDCAT.
W_FLDCAT-FIELDNAME = 'VBELN'.
W_FLDCAT-SELTEXT_M = 'Sales Document'.
W_FLDCAT-COL_POS = 0.
*W_FLDCAT-EMPHASIZE = 'C411'.
W_FLDCAT-OUTPUTLEN = 20.
W_FLDCAT-KEY = 'X'.
W_FLDCAT-ICON = 'X'.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
W_FLDCAT-FIELDNAME = 'ERDAT'.
W_FLDCAT-SELTEXT_L = 'Record Date created'.
W_FLDCAT-COL_POS = 1.
W_FLDCAT-KEY = 'X'.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
W_FLDCAT-FIELDNAME = 'ERNAM'.
W_FLDCAT-SELTEXT_L = 'Cteated Object Person Name'.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
W_FLDCAT-FIELDNAME = 'AUDAT'.
W_FLDCAT-SELTEXT_M = 'Document Date'.
W_FLDCAT-COL_POS = 3.
W_FLDCAT-EMPHASIZE = 'C110'.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
W_FLDCAT-FIELDNAME = 'VBTYP'.
W_FLDCAT-SELTEXT_L = 'SD Document category'.
W_FLDCAT-COL_POS = 4.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
W_FLDCAT-FIELDNAME = 'NETWR'.
W_FLDCAT-SELTEXT_L = 'Net Value of the SO in Document Currency'.
W_FLDCAT-COL_POS = 5.
W_FLDCAT-OUTPUTLEN = 60.
W_FLDCAT-DO_SUM = 'X'.
W_FLDCAT-DATATYPE = 'CURR'.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
W_FLDCAT-FIELDNAME = 'VKORG'.
W_FLDCAT-SELTEXT_L = 'Sales Organization'.
W_FLDCAT-COL_POS = 6.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
W_FLDCAT-FIELDNAME = 'VKGRP'.
W_FLDCAT-SELTEXT_M = 'Sales Group'.
W_FLDCAT-COL_POS = 7.
W_FLDCAT-EMPHASIZE = 'C801'.
APPEND W_FLDCAT TO FLDCAT.
CLEAR W_FLDCAT.
ENDFORM.
Build Layout for ALV Grid Report
FORM BLD_LAYOUT.
GD_LAYOUT-NO_INPUT = 'X'.
GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
GD_LAYOUT-BOX_FIELDNAME = 'VBELN'.
ENDFORM.
Display report using ALV grid
FORM DISPLAY_ALV_REPORT.
GD_REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = GD_REPID
IS_LAYOUT = GD_LAYOUT
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
IT_FIELDCAT = FLDCAT[]
I_SAVE = 'X'
I_GRID_TITLE = 'WELCOME TO ALV'
TABLES
T_OUTTAB = IT_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.
Retrieve data from VBAK table and populate itab IT_VBAK
FORM DATA_RETRIEVAL.
SELECT VBELN ERDAT ERNAM AUDAT VBTYP NETWR VKORG
UP TO 50 ROWS
FROM VBAK
INTO TABLE IT_VBAK.
ENDFORM.
FORM TOP_OF_PAGE.
DATA: T_HEADER TYPE SLIS_T_LISTHEADER,
W_HEADER TYPE SLIS_LISTHEADER.
W_HEADER-TYP = 'H'.
W_HEADER-INFO = 'WELCOME HEADER LIST'.
APPEND W_HEADER TO T_HEADER.
W_HEADER-TYP = 'S'.
W_HEADER-KEY = 'REPORT:'.
W_HEADER-INFO = SY-REPID.
APPEND W_HEADER TO T_HEADER.
W_HEADER-TYP = 'S'.
W_HEADER-KEY = 'DATE:'.
CONCATENATE SY-DATUM4(2) ' / ' SY-DATUM6(2) ' / ' SY-DATUM(4) INTO W_HEADER-INFO.
APPEND W_HEADER TO T_HEADER.
CLEAR W_HEADER.
W_HEADER-TYP = 'S'.
W_HEADER-KEY = 'Page No:'.
W_HEADER-INFO = SY-PAGNO.
APPEND W_HEADER TO T_HEADER.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = T_HEADER.
ENDFORM.
REWARD POINTS,IF IT IS USEFUL.
THANKS,
CHANDU.
‎2008 Feb 02 4:15 AM
Look at this code. it will help you lot.
Here i have not diaplayed selection part.... chnage the code for ur Requirement
TYPE-POOLS: slis.
DATA: alv_fcat TYPE slis_t_fieldcat_alv,
alv_layout TYPE slis_layout_alv,
alv_incid LIKE sy-repid VALUE 'YPMANDAY',
alv_repid LIKE sy-repid VALUE 'YPMANDAY',
alv_title TYPE lvc_title,
alv_print TYPE slis_print_alv,
alv_sort TYPE slis_t_sortinfo_alv,
csort TYPE slis_sortinfo_alv,
alv_top_of_page TYPE slis_t_listheader,
gs_line TYPE slis_listheader,
alv_events TYPE slis_t_event,
alv_variant TYPE disvariant.
FORMAT COLOR 3 INTENSIFIED ON.
PERFORM init_alv_layout.
PERFORM eventtab_build CHANGING alv_events.
PERFORM comment_build CHANGING alv_top_of_page.
PERFORM init_alv_fcat.
PERFORM display_alv.
free : t_zattm, i_zattm.
*----
Form init_alv_layout
*----
text
*----
FORM init_alv_layout .
alv_layout-colwidth_optimize = 'X'.
alv_title = 'MAN DAYS'.
ENDFORM. "init_alv_layout
*----
Form init_alv_fcat
*----
text
*----
FORM init_alv_fcat .
PERFORM init_alv_first.
ENDFORM. "init_alv_fcat
*----
Form display_alv
*----
text
*----
FORM display_alv .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = alv_repid
i_structure_name = 'I_ZATTM'
is_layout = alv_layout
i_background_id = 'ALV_BACKGROUND'
it_fieldcat = alv_fcat
it_sort = alv_sort
it_events = alv_events
is_print = alv_print
i_grid_title = alv_title
i_default = 'X'
is_variant = alv_variant
i_save = 'A'
TABLES
t_outtab = I_ZATTM.
ENDFORM. " display_alv
For Header Display ..
*----
Form eventtab_build
*----
text
*----
-->LT_EVENTS text
*----
FORM eventtab_build CHANGING lt_events TYPE slis_t_event.
CONSTANTS:
gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = lt_events.
READ TABLE 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 lt_events.
ENDIF.
ENDFORM. " eventtab_build
*----
Form comment_build
*----
text
*----
-->ALV_TOP_OF_text
*----
FORM comment_build CHANGING alv_top_of_page TYPE slis_t_listheader.
DATA : v_heading(60).
DATA : v_date(10).
CLEAR gs_line.
gs_line-typ = 'S'.
gs_line-key = 'Plant :'.
gs_line-info = divn.
append gs_line to alv_top_of_page.
v_heading = date+9(2).
concatenate v_heading '.' date7(2) '.' date3(4) into v_heading.
gs_line-typ = 'S'.
gs_line-key = 'From : '.
gs_line-info = v_heading.
append gs_line to alv_top_of_page.
v_heading = date+17(2).
concatenate v_heading '.' date15(2) '.' date11(4) into v_heading.
gs_line-typ = 'S'.
gs_line-key = 'To : '.
gs_line-info = v_heading.
append gs_line to alv_top_of_page.
*
CONCATENATE v_heading 'Month Pay Details' INTO v_heading.
*
ENDFORM. " comment_build
*----
Form top_of_page
*----
text
*----
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = alv_top_of_page
I_LOGO = 'MTR'.
ENDFORM. "top_of_page
+***************************End of Header *****************************************----
+
Form init_alv_first
*----
text
*----
FORM init_alv_first .
DATA v_loc_fcat TYPE slis_fieldcat_alv.
DATA : v_pos TYPE i VALUE 1.
DATA : v_text(20).
DATA: total TYPE i VALUE 0.
*************************1**********************
v_loc_fcat-fieldname = 'ECOD'.
v_loc_fcat-seltext_l = 'E CODE'.
v_loc_fcat-tabname = 'I_ZATTM'.
v_loc_fcat-key = 'X'.
APPEND v_loc_fcat TO alv_fcat.
CLEAR v_loc_fcat-key.
**************************2**********************
v_loc_fcat-fieldname = 'NAME'.
v_loc_fcat-seltext_l = 'NAME'.
v_loc_fcat-tabname = 'I_ZATTM'.
v_loc_fcat-key = 'X'.
*v_loc_fcat-edit = 'X'.
APPEND v_loc_fcat TO alv_fcat.
CLEAR v_loc_fcat-key.
v_loc_fcat-fieldname = 'DIVN'.
v_loc_fcat-seltext_l = 'DCODE'.
v_loc_fcat-tabname = 'I_ZATTM'.
v_loc_fcat-key = 'X'.
*v_loc_fcat-edit = 'X'.
APPEND v_loc_fcat TO alv_fcat.
CLEAR v_loc_fcat-key.
**************************3**********************
v_loc_fcat-fieldname = 'MANDAY'.
v_loc_fcat-tabname = 'I_ZATTM'.
v_loc_fcat-seltext_l = 'TOT M.DAYS '.
v_loc_fcat-key = 'X'.
APPEND v_loc_fcat TO alv_fcat.
CLEAR v_loc_fcat-key.
**************************5**********************
v_loc_fcat-fieldname = 'IADAY'.
v_loc_fcat-tabname = 'I_ZATTM'.
v_loc_fcat-seltext_l = 'A'.
v_loc_fcat-key = 'X'.
V_LOC_FCAT-DO_SUM = 'X'.
APPEND v_loc_fcat TO alv_fcat.
CLEAR v_loc_fcat-key.
v_loc_fcat-fieldname = 'IH'.
v_loc_fcat-tabname = 'I_ZATTM'.
v_loc_fcat-seltext_l = 'H'.
v_loc_fcat-key = 'X'.
APPEND v_loc_fcat TO alv_fcat.
CLEAR v_loc_fcat-key.
**************************6**********************
v_loc_fcat-fieldname = 'IPC'.
v_loc_fcat-tabname = 'I_ZATTM'.
v_loc_fcat-seltext_l = 'PC'.
v_loc_fcat-key = 'X'.
APPEND v_loc_fcat TO alv_fcat.
CLEAR v_loc_fcat-key.
**************************7**********************
v_loc_fcat-fieldname = 'ICO'.
v_loc_fcat-seltext_l = 'CO'.
v_loc_fcat-just = 'C'.
v_loc_fcat-key = 'X'.
v_loc_fcat-tabname = 'I_ZATTM'.
APPEND v_loc_fcat TO alv_fcat.
CLEAR v_loc_fcat-key.
*****************************************************
v_loc_fcat-fieldname = 'IOD'.
v_loc_fcat-seltext_l = 'OD'.
v_loc_fcat-just = 'C'.
v_loc_fcat-key = 'X'.
v_loc_fcat-tabname = 'I_ZATTM'.
APPEND v_loc_fcat TO alv_fcat.
CLEAR v_loc_fcat-key.
***************************************************8
v_loc_fcat-fieldname = 'LEDAY'.
v_loc_fcat-tabname = 'I_ZATTM'.
v_loc_fcat-seltext_l = 'TOT A.DAYS'.
v_loc_fcat-key = 'X'.
APPEND v_loc_fcat TO alv_fcat.
CLEAR v_loc_fcat-key.
***************************************************8
v_loc_fcat-fieldname = 'TO_DAY'.
v_loc_fcat-tabname = 'I_ZATTM'.
v_loc_fcat-seltext_l = 'TOT P.DAYS'.
v_loc_fcat-key = 'X'.
APPEND v_loc_fcat TO alv_fcat.
CLEAR v_loc_fcat-key.
***************************************************9
v_loc_fcat-fieldname = 'TOTTIME'.
v_loc_fcat-tabname = 'I_ZATTM'.
v_loc_fcat-seltext_l = 'TOT OT.HOURS'.
v_loc_fcat-key = 'X'.
APPEND v_loc_fcat TO alv_fcat.
CLEAR v_loc_fcat-key.
******************************************************10
v_loc_fcat-fieldname = 'TOTMDAY'.
v_loc_fcat-tabname = 'I_ZATTM'.
v_loc_fcat-seltext_l = 'TOT MAN DAYS'.
v_loc_fcat-key = 'X'.
APPEND v_loc_fcat TO alv_fcat.
CLEAR v_loc_fcat-key.
*******************************************************11
v_loc_fcat-fieldname = 'TOTDAY'.
v_loc_fcat-tabname = 'I_ZATTM'.
v_loc_fcat-seltext_l = 'TOT.OT.DAYS'.
v_loc_fcat-key = 'X'.
APPEND v_loc_fcat TO alv_fcat.
CLEAR v_loc_fcat-key.
ENDFORM.
Regards
Prajwal K.
Edited by: prajwal k on Feb 2, 2008 5:15 AM