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

ALV Header

Former Member
0 Likes
481

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.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
460

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.

3 REPLIES 3
Read only

Former Member
0 Likes
460

Hi,

see this link [http://www.sapdev.co.uk/reporting/alv/alvgrid.htm|http://www.sapdev.co.uk/reporting/alv/alvgrid.htm]

Cheers,

Will.

Read only

Former Member
0 Likes
461

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.

Read only

Former Member
0 Likes
460

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