Application Development 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: 

alv header and footer

Former Member
0 Kudos

Hi Experts,

How to add a header and footer to ALV?

Is it possible to add header and footer without alv events?(ie) only by using alv_commentary_write

What is the difference in coding between an alv header and alv footer.For footer whether we have to reserve lines initally.

Points will be rewarded for helpful answer.

Thanks & Regards,

Thasneem.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi

We can display the header by using REUSE_ALV_COMMENTARY_WRITE function module.where as footer we need to use events.

just hv a look on the following code.

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,

LINE_COLOR(4) TYPE C,

END OF T_VBAK.

DATA: IT_VBAK TYPE STANDARD TABLE OF T_VBAK INITIAL SIZE 0,

WA_VBAK TYPE T_VBAK.

  • ALV Data Declaration

DATA: FLDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,

GD_LAYOUT TYPE SLIS_LAYOUT_ALV,

GD_REPID TYPE SY-REPID,

I_EVENTS TYPE SLIS_T_EVENT,

W_EVENTS LIKE LINE OF I_EVENTS.

DATA: I_COMMENT TYPE SLIS_T_LISTHEADER,

WA_COMMENT TYPE SLIS_LISTHEADER.

START-OF-SELECTION.

PERFORM DATA_RETRIEVAL.

PERFORM BLD_FLDCAT.

PERFORM BLD_LAYOUT.

PERFORM CALL_EVENTS.

PERFORM DISPLAY_ALV_REPORT.

  • Build Field Catalog for ALV Report

FORM BLD_FLDCAT.

FLDCAT-FIELDNAME = 'VBELN'.

FLDCAT-SELTEXT_M = 'Sales Document'.

FLDCAT-COL_POS = 0.

*FLDCAT-EMPHASIZE = 'C411'.

FLDCAT-OUTPUTLEN = 20.

FLDCAT-KEY = 'X'.

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'ERDAT'.

FLDCAT-SELTEXT_L = 'Record Date created'.

FLDCAT-COL_POS = 1.

FLDCAT-KEY = 'X'.

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'ERNAM'.

FLDCAT-SELTEXT_L = 'Cteated Object Person Name'.

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'AUDAT'.

FLDCAT-SELTEXT_M = 'Document Date'.

FLDCAT-COL_POS = 3.

FLDCAT-EMPHASIZE = 'C110'.

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'VBTYP'.

FLDCAT-SELTEXT_L = 'SD Document category'.

FLDCAT-COL_POS = 4.

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'NETWR'.

FLDCAT-SELTEXT_L = 'Net Value of the SO in Document Currency'.

FLDCAT-COL_POS = 5.

FLDCAT-OUTPUTLEN = 60.

FLDCAT-DO_SUM = 'X'.

FLDCAT-DATATYPE = 'CURR'.

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'VKORG'.

FLDCAT-SELTEXT_L = 'Sales Organization'.

FLDCAT-COL_POS = 6.

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'VKGRP'.

FLDCAT-SELTEXT_M = 'Sales Group'.

FLDCAT-COL_POS = 7.

FLDCAT-EMPHASIZE = 'C801'.

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

ENDFORM.

  • Build Layout for ALV Grid Report

FORM BLD_LAYOUT.

GD_LAYOUT-NO_INPUT = 'X'.

GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

GD_LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.

ENDFORM.

  • Display report using ALV grid

FORM DISPLAY_ALV_REPORT.

DATA T_EVENT TYPE SLIS_T_EVENT.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = T_EVENT.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

GD_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = GD_REPID

IS_LAYOUT = GD_LAYOUT

  • I_CALLBACK_HTML_TOP_OF_PAGE = 'TOP_OF_PAGE_SPLIT'

I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE'

  • I_CALLBACK_HTML_END_OF_LIST = 'END_OF_LIST_HTML'

IT_EVENTS = I_EVENTS

IT_FIELDCAT = FLDCAT[]

I_SAVE = 'X'

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.

DATA LD_COLOR(1) TYPE C.

SELECT VBELN ERDAT ERNAM AUDAT VBTYP NETWR VKORG

UP TO 100 ROWS

FROM VBAK

INTO TABLE IT_VBAK.

LOOP AT IT_VBAK INTO WA_VBAK.

LD_COLOR = LD_COLOR + 1.

IF LD_COLOR = 8.

LD_COLOR = 1.

ENDIF.

CONCATENATE 'C' LD_COLOR '10' INTO WA_VBAK-LINE_COLOR.

MODIFY IT_VBAK FROM WA_VBAK.

ENDLOOP.

ENDFORM.

FORM TOP-OF-PAGE.

WA_COMMENT-TYP = ‘H’.

WA_COMMENT-INFO = ‘WELCOME TO HEADER’.

APPEND WA_COMMENT TO I_COMMENT.

CLEAR WA_COMMENT.

CALL FUNCTION ‘REUSE_ALV_COMMENTARY_WRITE’

EXPORTING

IT_LIST_COMMENTARY = I_COMMENT

  • I_LOGO = ''

  • I_END_OF_LIST_GRID = 'X'.

ENDFORM.

FORM CALL_EVENTS.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = I_EVENTS

  • EXCEPTIONS

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

IF NOT I_EVENTS[] IS INITIAL.

READ TABLE I_EVENTS INTO W_EVENTS WITH KEY NAME = 'END_OF_LIST'.

W_EVENTS-FORM = 'GENERATE_USERCOMMAND_FOOTER'.

MODIFY I_EVENTS FROM W_EVENTS INDEX SY-TABIX.

ENDIF.

ENDFORM.

FORM GENERATE_USERCOMMAND_FOOTER.

CLEAR I_COMMENT[].

WA_COMMENT-TYP = 'H'.

  • WA_COMMENT-KEY = V_DATA.

WA_COMMENT-INFO = 'CHANDU'(019).

APPEND WA_COMMENT TO I_COMMENT.

CLEAR I_COMMENT[].

WA_COMMENT-TYP = 'S'.

WA_COMMENT-INFO = SY-PAGNO.

APPEND WA_COMMENT TO I_COMMENT.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = I_COMMENT

  • I_LOGO = ''

I_END_OF_LIST_GRID = 'X'.

ENDFORM.

if u hv any clarification then i welcome u to clarify them.

if it is useful reward points.

4 REPLIES 4

former_member404244
Active Contributor
0 Kudos

Hi,

check the below link..for sample programs

http://www.sapdevelopment.co.uk/reporting/alv/alvgrid.htm

Reward if helpful.

Regards,

Nagaraj

Former Member
0 Kudos

Check this Standard program.It will help you.

BCALV_GRID_VERIFY

Check this link -

http://www.sap-img.com/abap/test-alv-display-with-header-footer.htm

http://www.sap-img.com/fu037.htm

http://www.sap-img.com/abap-function.htm

There is a FM Reuse_alv_commentary_write(check it once again_.

FORM top_of_page.

  • standard report page heading

DATA: lv_coco_pos TYPE i, "CurPos of 'Company confidential'

lv_title_pos TYPE i, "CurPos of report title

lv_title(70) TYPE c, "Truncated report title

lv_page_pos TYPE i, "CurPos of page number

lv_date_pos TYPE i, "CurPos of date and time

lv_page_no(10) TYPE c,

lv_date(25) TYPE c,

lv_time(20) TYPE c,

lv_page(10) TYPE c.

  • We may need to truncate title if the line size is < 81.

IF sy-linsz < 81.

lv_title = sy-title+0(50).

ELSE.

lv_title = sy-title.

ENDIF.

  • Decide on positioning of text depending on width of page

lv_title_pos = ( sy-linsz / 2 ) - ( STRLEN( lv_title ) / 2 ).

lv_coco_pos = sy-linsz - 20.

FORMAT COLOR COL_HEADING INTENSIFIED ON.

WRITE: / 'ABC'

AT lv_title_pos lv_title,

AT lv_coco_pos 'Company Confidential'.

  • Setup data correctly in the correct format for the display fields.

lv_page = sy-pagno.

SHIFT lv_page LEFT DELETING LEADING ' '.

CONCATENATE sy-datum6(2) sy-datum4(2) sy-datum+0(4)

INTO lv_date SEPARATED BY '.'.

CONCATENATE sy-uzeit0(2) ':' sy-uzeit2(2) INTO lv_time.

CONCATENATE lv_date lv_time INTO lv_date SEPARATED BY ' '.

CONCATENATE 'Page' lv_page INTO lv_page_no SEPARATED BY ' '.

  • Decide on positioning of text depending on width of page.

lv_page_pos = sy-linsz - ( STRLEN( lv_page_no ) ).

WRITE: / lv_date,

AT lv_page_pos lv_page_no.

ULINE.

ENDFORM. " TOP_OF_PAGE

----


  • FORM END_OF_PAGE *

----


  • Subroutine attached as callback form to ABAP List Viewer *

----


FORM end_of_page.

ENDFORM. " END_OF_PAGE

you can use it like this.

and beside this you can also use REUSE ALV COMMENTRY WRITE

/people/community.user/blog/2007/05/07/alignment-of-data-in-top-of-page-in-alv-grid

REPORT ZRJR02 .

*Table declaration.

TABLES:ZEMP_MST,ZDEPT_MST,ZDESG_MST,ZSL_TXN.

*Varriable declaration.

TYPE-POOLS SLIS.

DATA : POS TYPE I.

DATA REPID LIKE SY-REPID.

DATA : F1 TYPE SLIS_T_FIELDCAT_ALV,

F2 TYPE SLIS_FIELDCAT_ALV,

L_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA L_POS TYPE I VALUE 1. "position of the column

DATA GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

*DATA GT_SORT TYPE SLIS_T_SORTINFO_ALV.

data: GT_EVENTS TYPE SLIS_T_EVENT,

FS_EVENTCAT LIKE LINE OF GT_EVENTs.

*Internal table declaration.

*DATA BEGIN OF IT_SORT OCCURS 5.

  • INCLUDE TYPE SLIS_SORTINFO_ALV.

*DATA END OF IT_SORT.

DATA:BEGIN OF ITAB OCCURS 0,

ZEMPNO LIKE ZEMP_MST-ZEMPNO,

ZEMPNAME LIKE ZEMP_MST-ZEMPNAME,

ZDEPTCD LIKE ZEMP_MST-ZDEPTCD,

ZDEPTNAME LIKE ZDEPT_MST-ZDEPTNAME,

ZDESGCD LIKE ZEMP_MST-ZDESGCD,

ZDESGNAME LIKE ZDESG_MST-ZDESGNAME,

END OF ITAB.

REFRESH ITAB.CLEAR ITAB.

START-OF-SELECTION.

SELECT AZEMPNO AZEMPNAME AZDEPTCD BZDEPTNAME AZDESGCD CZDESGNAME

FROM ZEMP_MST AS A

INNER JOIN ZDEPT_MST AS B

ON AZDEPTCD EQ BZDEPTCD

INNER JOIN ZDESG_MST AS C

ON AZDESGCD EQ CZDESGCD

INTO CORRESPONDING FIELDS OF TABLE ITAB.

IF SY-SUBRC <> 0.

MESSAGE E899(M3) WITH 'No records'.

ENDIF.

perform f_build_eventcat.

PERFORM LAYOUT.

END-OF-SELECTION.

&----


*& Form LAYOUT

&----


FORM LAYOUT .

PERFORM FCAT USING 'ZEMPNO' 'ITAB' '' 'Emp.No.' 'ZEMPNO' 'ZEMP_MST' ''.

PERFORM FCAT USING 'ZEMPNAME' 'ITAB' '' 'Emp. Name' 'ZEMPNAME' 'ZEMP_MST' ''.

PERFORM FCAT USING 'ZDEPTCD' 'ITAB' '' 'Dept.Code' 'ZDEPTCD' 'ZEMP_MST' ''.

PERFORM FCAT USING 'ZDEPTNAME' 'ITAB' '' 'Dept.Name' 'ZDEPTNAME' 'ZDEPT_MST' ''.

PERFORM FCAT USING 'ZDESGCD' 'ITAB' '' 'Desg.Code' 'ZDESGCD' 'ZEMP_MST' ''.

PERFORM FCAT USING 'ZDESGNAME' 'ITAB' '' 'Desg.Name' 'ZDESGNAME' 'ZDESG_MST' ''.

  • PERFORM LSORT USING 'ZEMPNO' 'IDATA' ''.

  • PERFORM LSORT USING 'ZEMPNAME' 'IDATA' ''.

  • MOVE IT_SORT[] TO GT_SORT[].

REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = REPID

IT_FIELDCAT = F1

  • IT_SORT = GT_SORT

I_SAVE = 'X'

IT_EVENTS = GT_EVENTS[]

TABLES

T_OUTTAB = ITAB.

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. " LAYOUT

&----


*& Form FCAT

&----


FORM FCAT USING P_FIELD P_TABLE P_SUM P_TEXT P_RFIELD P_RTABLE P_DISP.

ADD 1 TO POS.

F2-COL_POS = POS.

F2-FIELDNAME = P_FIELD.

F2-TABNAME = P_TABLE.

F2-SELTEXT_L = P_TEXT.

F2-REF_FIELDNAME = P_RFIELD.

F2-REF_TABNAME = P_RTABLE.

F2-DO_SUM = P_SUM.

F2-NO_OUT = P_DISP.

APPEND F2 TO F1.

CLEAR F2.

ENDFORM. " FCAT

&----


*& Form LSORT

&----


*FORM LSORT USING P_FIELD P_TABLE P_UP.

  • ADD 1 TO L_POS.

  • IT_SORT-SPOS = L_POS.

  • IT_SORT-FIELDNAME = P_FIELD.

  • IT_SORT-TABNAME = P_TABLE.

  • IT_SORT-UP = P_UP.

  • APPEND IT_SORT.

*ENDFORM. " LSORT

*----


FORM F_BUILD_EVENTCAT .

CLEAR: GT_EVENTS. REFRESH: GT_EVENTS.

CLEAR: FS_EVENTCAT.

FS_EVENTCAT-NAME = 'TOP_OF_PAGE'.

FS_EVENTCAT-FORM = 'F_REPORT_HEADER_ALV'.

APPEND FS_EVENTCAT TO GT_EVENTS.

CLEAR: FS_EVENTCAT.

FS_EVENTCAT-NAME = 'END_OF_LIST'.

FS_EVENTCAT-FORM = 'F_WRITE_SUMMARY'.

APPEND FS_EVENTCAT TO GT_EVENTS.

ENDFORM. " F_BUILD_EVENTCAT

FORM F_REPORT_HEADER_ALV.

CALL FUNCTION 'Z_YHEAD_PRINT'

EXPORTING

TITLE1 = 'XYZ Limited'

TITLE2 = 'Employee Master'

TITLE3 = 'Created on '

COLOR = 'X'

.

ENDFORM.

&----


*& Form F_WRITE_SUMMARY

&----


  • Write summary before exit

----


FORM F_WRITE_SUMMARY .

write:/ 'Welcome to XYZ Limited'.

write:/ 'This is a test program to display Report in ALV Format'.

ENDFORM.

reward point if useful

Former Member
0 Kudos

Hi

with commentry you can't put these

with the events only you can write the header and footer

Try to refer to the standard program BALVST02_GRID

You can pass events, TOP_OF_PAGE & END_OF_PAGE and the associated forms with the required functionality to the function,'REUSE_ALV_GRID_DISPLAY'.

Please find below sample code for ALV Header:

&----


*& Form f4000_events_init

&----


FORM f4000_events_init CHANGING i_events TYPE slis_t_event.

DATA: line_event TYPE slis_alv_event.

CLEAR line_event.

line_event-name = 'TOP_OF_PAGE'.

line_event-form = 'F4100_TOP_OF_PAGE'.

APPEND line_event TO i_events.

ENDFORM. " f3000_events_init

----


  • FORM F4100_TOP_OF_PAGE *

----


FORM f4100_top_of_page.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = i_header.

ENDFORM.

&----


*& Form f3000_build_header

&----


FORM f3000_build_header USING i_header TYPE slis_t_listheader.

DATA: gs_line TYPE slis_listheader.

CLEAR gs_line.

gs_line-typ = 'H'.

gs_line-info = 'This is line of type HEADER'.

APPEND gs_line TO i_header.

CLEAR gs_line.

gs_line-typ = 'S'.

gs_line-key = 'STATUS 1'.

gs_line-info = 'This is line of type STATUS'.

APPEND gs_line TO i_header.

gs_line-key = 'STATUS 2'.

gs_line-info = 'This is also line of type STATUS'.

APPEND gs_line TO i_header.

CLEAR gs_line.

gs_line-typ = 'A'.

gs_line-info = 'This is line of type ACTION'.

APPEND gs_line TO i_header.

ENDFORM. " f3000_build_header

-


CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

i_callback_program = report_id

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • i_structure_name = ' '

  • I_BACKGROUND_ID = ' '

i_grid_title = ws_title

  • I_GRID_SETTINGS =

is_layout = i_layout

it_fieldcat = i_fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

i_save = 'A'

  • IS_VARIANT =

it_events = i_events

  • IT_EVENT_EXIT =

  • IS_PRINT =

......

Former Member
0 Kudos

Hi

We can display the header by using REUSE_ALV_COMMENTARY_WRITE function module.where as footer we need to use events.

just hv a look on the following code.

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,

LINE_COLOR(4) TYPE C,

END OF T_VBAK.

DATA: IT_VBAK TYPE STANDARD TABLE OF T_VBAK INITIAL SIZE 0,

WA_VBAK TYPE T_VBAK.

  • ALV Data Declaration

DATA: FLDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,

GD_LAYOUT TYPE SLIS_LAYOUT_ALV,

GD_REPID TYPE SY-REPID,

I_EVENTS TYPE SLIS_T_EVENT,

W_EVENTS LIKE LINE OF I_EVENTS.

DATA: I_COMMENT TYPE SLIS_T_LISTHEADER,

WA_COMMENT TYPE SLIS_LISTHEADER.

START-OF-SELECTION.

PERFORM DATA_RETRIEVAL.

PERFORM BLD_FLDCAT.

PERFORM BLD_LAYOUT.

PERFORM CALL_EVENTS.

PERFORM DISPLAY_ALV_REPORT.

  • Build Field Catalog for ALV Report

FORM BLD_FLDCAT.

FLDCAT-FIELDNAME = 'VBELN'.

FLDCAT-SELTEXT_M = 'Sales Document'.

FLDCAT-COL_POS = 0.

*FLDCAT-EMPHASIZE = 'C411'.

FLDCAT-OUTPUTLEN = 20.

FLDCAT-KEY = 'X'.

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'ERDAT'.

FLDCAT-SELTEXT_L = 'Record Date created'.

FLDCAT-COL_POS = 1.

FLDCAT-KEY = 'X'.

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'ERNAM'.

FLDCAT-SELTEXT_L = 'Cteated Object Person Name'.

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'AUDAT'.

FLDCAT-SELTEXT_M = 'Document Date'.

FLDCAT-COL_POS = 3.

FLDCAT-EMPHASIZE = 'C110'.

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'VBTYP'.

FLDCAT-SELTEXT_L = 'SD Document category'.

FLDCAT-COL_POS = 4.

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'NETWR'.

FLDCAT-SELTEXT_L = 'Net Value of the SO in Document Currency'.

FLDCAT-COL_POS = 5.

FLDCAT-OUTPUTLEN = 60.

FLDCAT-DO_SUM = 'X'.

FLDCAT-DATATYPE = 'CURR'.

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'VKORG'.

FLDCAT-SELTEXT_L = 'Sales Organization'.

FLDCAT-COL_POS = 6.

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

FLDCAT-FIELDNAME = 'VKGRP'.

FLDCAT-SELTEXT_M = 'Sales Group'.

FLDCAT-COL_POS = 7.

FLDCAT-EMPHASIZE = 'C801'.

APPEND FLDCAT TO FLDCAT.

CLEAR FLDCAT.

ENDFORM.

  • Build Layout for ALV Grid Report

FORM BLD_LAYOUT.

GD_LAYOUT-NO_INPUT = 'X'.

GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

GD_LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.

ENDFORM.

  • Display report using ALV grid

FORM DISPLAY_ALV_REPORT.

DATA T_EVENT TYPE SLIS_T_EVENT.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = T_EVENT.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

GD_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = GD_REPID

IS_LAYOUT = GD_LAYOUT

  • I_CALLBACK_HTML_TOP_OF_PAGE = 'TOP_OF_PAGE_SPLIT'

I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE'

  • I_CALLBACK_HTML_END_OF_LIST = 'END_OF_LIST_HTML'

IT_EVENTS = I_EVENTS

IT_FIELDCAT = FLDCAT[]

I_SAVE = 'X'

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.

DATA LD_COLOR(1) TYPE C.

SELECT VBELN ERDAT ERNAM AUDAT VBTYP NETWR VKORG

UP TO 100 ROWS

FROM VBAK

INTO TABLE IT_VBAK.

LOOP AT IT_VBAK INTO WA_VBAK.

LD_COLOR = LD_COLOR + 1.

IF LD_COLOR = 8.

LD_COLOR = 1.

ENDIF.

CONCATENATE 'C' LD_COLOR '10' INTO WA_VBAK-LINE_COLOR.

MODIFY IT_VBAK FROM WA_VBAK.

ENDLOOP.

ENDFORM.

FORM TOP-OF-PAGE.

WA_COMMENT-TYP = ‘H’.

WA_COMMENT-INFO = ‘WELCOME TO HEADER’.

APPEND WA_COMMENT TO I_COMMENT.

CLEAR WA_COMMENT.

CALL FUNCTION ‘REUSE_ALV_COMMENTARY_WRITE’

EXPORTING

IT_LIST_COMMENTARY = I_COMMENT

  • I_LOGO = ''

  • I_END_OF_LIST_GRID = 'X'.

ENDFORM.

FORM CALL_EVENTS.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = I_EVENTS

  • EXCEPTIONS

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

IF NOT I_EVENTS[] IS INITIAL.

READ TABLE I_EVENTS INTO W_EVENTS WITH KEY NAME = 'END_OF_LIST'.

W_EVENTS-FORM = 'GENERATE_USERCOMMAND_FOOTER'.

MODIFY I_EVENTS FROM W_EVENTS INDEX SY-TABIX.

ENDIF.

ENDFORM.

FORM GENERATE_USERCOMMAND_FOOTER.

CLEAR I_COMMENT[].

WA_COMMENT-TYP = 'H'.

  • WA_COMMENT-KEY = V_DATA.

WA_COMMENT-INFO = 'CHANDU'(019).

APPEND WA_COMMENT TO I_COMMENT.

CLEAR I_COMMENT[].

WA_COMMENT-TYP = 'S'.

WA_COMMENT-INFO = SY-PAGNO.

APPEND WA_COMMENT TO I_COMMENT.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = I_COMMENT

  • I_LOGO = ''

I_END_OF_LIST_GRID = 'X'.

ENDFORM.

if u hv any clarification then i welcome u to clarify them.

if it is useful reward points.