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

Former Member
0 Likes
1,114

Hi,

I have to generate a ALV list for a report.

The output screen must be such that just above the alv list I have to display the name of the report with the date and time.

How should I do it?

Please help.

Thanks,

Sandeep.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,072

Hi Sandeep,

Use top of page event of ALV.

build a list header and pass it to FM <b>'REUSE_ALV_COMMENTARY_WRITE'</b>

Refer this code.

FORM build_listheader USING p_it_listheader TYPE slis_t_listheader.

DATA: itab_listheader TYPE slis_listheader.

REFRESH p_it_listheader.

CLEAR itab_listheader.

itab_listheader-typ = 'H'.

itab_listheader-info = Sy-repid.

APPEND itab_listheader TO p_it_listheader.

CLEAR itab_listheader.

itab_listheader-typ = 'H'.

itab_listheader-info = sy-datum.

APPEND itab_listheader TO p_it_listheader.

CLEAR itab_listheader.

itab_listheader-typ = 'H'.

itab_listheader-info = sy-time.

APPEND itab_listheader TO p_it_listheader.

ENDFORM. " BUILD_LISTHEADER

form BUILD_EVENTCAT using p_i_eventcat TYPE SLIS_T_EVENT.

DATA: I_EVENT TYPE SLIS_ALV_EVENT.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = P_I_EVENTCAT

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

CLEAR I_EVENT.

read table p_i_eventcat with key name = slis_ev_top_of_page into I_event.

if sy-subrc = 0.

move 'TOP_OF_PAGE' to I_event-form.

append I_event to p_i_eventcat.

endif.

FORM top_of_page .

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = it_listheader

i_logo = 'ENJOYSAP_LOGO'

  • I_END_OF_LIST_GRID =

.

ENDFORM. " TOP_OF_PAGE

Reward points if helpful.

Regards,

Hemant

Hi Sandeep,

Use top of page event of ALV.

build a list header and pass it to FM <b>'REUSE_ALV_COMMENTARY_WRITE'</b>

Refer this code.

FORM build_listheader USING p_it_listheader TYPE slis_t_listheader.

DATA: itab_listheader TYPE slis_listheader.

REFRESH p_it_listheader.

CLEAR itab_listheader.

itab_listheader-typ = 'H'.

itab_listheader-info = Sy-repid.

APPEND itab_listheader TO p_it_listheader.

CLEAR itab_listheader.

itab_listheader-typ = 'H'.

itab_listheader-info = sy-datum.

APPEND itab_listheader TO p_it_listheader.

CLEAR itab_listheader.

itab_listheader-typ = 'H'.

itab_listheader-info = sy-time.

APPEND itab_listheader TO p_it_listheader.

ENDFORM. " BUILD_LISTHEADER

form BUILD_EVENTCAT using p_i_eventcat TYPE SLIS_T_EVENT.

DATA: I_EVENT TYPE SLIS_ALV_EVENT.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = P_I_EVENTCAT

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

CLEAR I_EVENT.

read table p_i_eventcat with key name = slis_ev_top_of_page into I_event.

if sy-subrc = 0.

move 'TOP_OF_PAGE' to I_event-form.

append I_event to p_i_eventcat.

endif.

FORM top_of_page .

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = it_listheader

i_logo = 'ENJOYSAP_LOGO'

  • I_END_OF_LIST_GRID =

.

ENDFORM. " TOP_OF_PAGE

Reward points if helpful.

Regards,

Hemant

9 REPLIES 9
Read only

Former Member
0 Likes
1,072

Hi,

For ALV display you can use FM reuse_alv_grid_display

and to print at the top use top-of-page event.

Asha

Read only

ashok_kumar24116
Contributor
0 Likes
1,072

Hi Sandeep,

<b>Good check the following examples

You have to use REUSE_ALV_COMMENTRY_WRITE function module

&----


*& Report Y_TOP_PAGE *

*& *

&----


*& *

*& *

&----


REPORT y_top_page .

TABLES : mara.

TYPE-POOLS: slis.

DATA : w_repid LIKE sy-repid.

w_repid = sy-repid.

DATA : BEGIN OF it_mara OCCURS 0,

matnr LIKE mara-matnr,

END OF it_mara.

*layout

DATA: wa_layout TYPE SLIS_LAYOUT_ALV.

*field catalog

DATA: it_fieldcat_wrt_off TYPE slis_t_fieldcat_alv,

wa_fieldcat_wrt_off TYPE slis_fieldcat_alv.

START-OF-SELECTION.

SELECT matnr FROM mara INTO CORRESPONDING FIELDS OF TABLE it_mara.

END-OF-SELECTION.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = w_repid

I_INTERNAL_TABNAME = 'IT_MARA'

  • i_structure_name = 'IT_MARA'

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = w_repid

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

ct_fieldcat = it_fieldcat_wrt_off[]

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3

.

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_GRID_DISPLAY'

EXPORTING

i_callback_program = w_repid

i_callback_top_of_page = 'TOP-OF-PAGE'

is_layout = wa_layout

it_fieldcat = it_fieldcat_wrt_off

TABLES

t_outtab = it_mara

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.

----


  • Form TOP-OF-PAGE *

----


  • ALV Report Header *

----


FORM top-of-page.

*ALV Header declarations

DATA: t_header TYPE slis_t_listheader,

wa_header TYPE slis_listheader,

t_line LIKE wa_header-info,

ld_lines TYPE i,

ld_linesc(10) TYPE c.

  • Title

wa_header-typ = 'H'.

wa_header-info = 'CHANDU REPORT'.

APPEND wa_header TO t_header.

CLEAR wa_header.

  • Date

wa_header-typ = 'S'.

wa_header-key = 'Date: '.

CONCATENATE sy-datum+6(2) '.'

sy-datum+4(2) '.'

sy-datum(4) INTO wa_header-info. "todays date

APPEND wa_header TO t_header.

CLEAR: wa_header.

  • Total No. of Records Selected

  • describe table it_ekko lines ld_lines.

  • ld_linesc = ld_lines.

  • concatenate 'Total No. of Records Selected: ' ld_linesc

  • into t_line separated by space.

  • wa_header-typ = 'A'.

  • wa_header-info = t_line.

  • append wa_header to t_header.

  • clear: wa_header, t_line.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = t_header.

  • i_logo = 'Z_LOGO'.

ENDFORM. "top-of-page

Example 2

  • Internal Table TOP-OF-PAGE commentary

DATA: IT_COMMENTARY TYPE SLIS_T_LISTHEADER.

  • Work Area TOP-OF-PAGE commentary

DATA: WA_COMMENTARY TYPE SLIS_LISTHEADER.</b>

Good luck and thanks

AK

Read only

dev_parbutteea
Active Contributor
0 Likes
1,072

try using write statements directly! it should work!

write : 'Title text' , sy-datum, sy-uzeit.

Read only

Former Member
0 Likes
1,072

HI you can simply copy the paste and leanr using debuuging it...

type-pools : slis.

data fs_flight type YCHVIEW_FLUGTERM.

data :

t_flight like standard table

of fs_flight

initial size 0,

t_list_complementary type SLIS_T_LISTHEADER.

data :

t_events type SLIS_T_EVENT,

t_sort type SLIS_T_SORTINFO_ALV,

w_sort type slis_sortinfo_alv,

w_event type slis_alv_event,

w_carrid type spfli-carrid,

fs_list type SLIS_LISTHEADER,

w_prog type sy-repid value sy-repid.

select *

from YCHVIEW_FLUGTERM

into table t_flight.

  • Populating the list complementary table...

fs_list-typ = 'H'.

fs_list-info = 'Flight details'.

append fs_list to t_list_complementary.

*Populating the events table.....

w_event-name = 'TOP_OF_PAGE'.

w_event-form = 'TOP_PAGE'.

append w_event to t_events.

  • Populating the sort table...

w_sort-fieldname = 'CONNID'.

w_sort-up = 'X'.

w_sort-group = ''.

append w_sort to t_sort.

call function 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = w_prog

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_TOP_OF_PAGE = 'TOP_PAGE'

I_STRUCTURE_NAME = 'YCHVIEW_FLUGTERM'

  • I_BACKGROUND_ID = ' '

I_GRID_TITLE = 'Flight Details'

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_SORT = t_sort

IT_EVENTS = t_events

tables

t_outtab = t_flight

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

if sy-subrc <> 0.

endif.

form top_page.

call function 'REUSE_ALV_COMMENTARY_WRITE'

exporting

it_list_commentary = t_list_complementary

I_LOGO = 'ENJOYSAP_LOGO'

  • I_END_OF_LIST_GRID =

  • I_ALV_FORM =

.

endform.

Example: 2check this simple program.

REPORT ZBHALV_LIST.

TABLES:MARA.

SELECT-OPTIONS: MATNR FOR MARA-MATNR.

DATA:BEGIN OF ITAB OCCURS 0,

MATNR LIKE MARA-MATNR,

ERSDA LIKE MARA-ERSDA,

MTART LIKE MARA-MTART,

MBRSH LIKE MARA-MBRSH,

END OF ITAB.

SELECT * FROM MARA INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE MATNR

IN MATNR.

TYPE-POOLS SLIS.

DATA:FCAT TYPE slis_t_fieldcat_alv.

DATA:LAYOUT TYPE slis_layout_alv.

DATA:EVE TYPE slis_t_event WITH HEADER LINE.

DATA:HEAD TYPE slis_t_listheader WITH HEADER LINE.

DATA:SORT TYPE slis_t_sortinfo_alv WITH HEADER LINE.

SORT-UP = 'X'.

SORT-SPOS = 1.

SORT-FIELDNAME = 'ERSDA'.

SORT-tabname = 'MARA'.

APPEND SORT.

SORT-SPOS = 2.

SORT-FIELDNAME = 'MTART'.

SORT-tabname = 'MARA'.

APPEND SORT.

EVE-NAME = 'TOP_OF_PAGE'.

EVE-FORM = 'TOPOFPAGE'.

APPEND EVE.

EVE-NAME = 'TOP_OF_LIST'.

EVE-FORM = 'TOPOFLIST'.

APPEND EVE.

EVE-NAME = 'END_OF_LIST'.

EVE-FORM = 'ENDOFLIST'.

APPEND EVE.

LAYOUT-ZEBRA = 'X'.

LAYOUT-no_hline = 'X'.

LAYOUT-NO_VLINE = 'X'.

LAYOUT-window_titlebar = 'MATERIAL DETAILS'.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'ITAB'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = SY-REPID

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = FCAT

  • EXCEPTIONS

  • INCONSISTENT_INTERFACE = 1

  • PROGRAM_ERROR = 2

  • OTHERS = 3

.

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 = SY-REPID

IS_LAYOUT = LAYOUT

IT_FIELDCAT = FCAT

IT_SORT = SORT[]

IT_EVENTS = EVE[]

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.

FORM TOPOFPAGE.

REFRESH HEAD.

HEAD-TYP = 'H'.

HEAD-INFO = 'MATERIALS'.

APPEND HEAD.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = HEAD[]

  • I_LOGO =

  • I_END_OF_LIST_GRID =

.

ENDFORM.

FORM TOPOFLIST.

REFRESH HEAD.

HEAD-TYP = 'H'.

HEAD-INFO = 'MATERIALS-LISTTOP'.

APPEND HEAD.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = HEAD[]

  • I_LOGO =

  • I_END_OF_LIST_GRID =

.

ENDFORM.

FORM ENDOFLIST.

REFRESH HEAD.

HEAD-TYP = 'H'.

HEAD-INFO = 'MATERIALS-LISTEND'.

APPEND HEAD.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = HEAD[]

  • I_LOGO =

  • I_END_OF_LIST_GRID =

.

ENDFORM.

Example 2:

check this simple program.

REPORT ZBHALV_LIST.

TABLES:MARA.

SELECT-OPTIONS: MATNR FOR MARA-MATNR.

DATA:BEGIN OF ITAB OCCURS 0,

MATNR LIKE MARA-MATNR,

ERSDA LIKE MARA-ERSDA,

MTART LIKE MARA-MTART,

MBRSH LIKE MARA-MBRSH,

END OF ITAB.

SELECT * FROM MARA INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE MATNR

IN MATNR.

TYPE-POOLS SLIS.

DATA:FCAT TYPE slis_t_fieldcat_alv.

DATA:LAYOUT TYPE slis_layout_alv.

DATA:EVE TYPE slis_t_event WITH HEADER LINE.

DATA:HEAD TYPE slis_t_listheader WITH HEADER LINE.

DATA:SORT TYPE slis_t_sortinfo_alv WITH HEADER LINE.

SORT-UP = 'X'.

SORT-SPOS = 1.

SORT-FIELDNAME = 'ERSDA'.

SORT-tabname = 'MARA'.

APPEND SORT.

SORT-SPOS = 2.

SORT-FIELDNAME = 'MTART'.

SORT-tabname = 'MARA'.

APPEND SORT.

EVE-NAME = 'TOP_OF_PAGE'.

EVE-FORM = 'TOPOFPAGE'.

APPEND EVE.

EVE-NAME = 'TOP_OF_LIST'.

EVE-FORM = 'TOPOFLIST'.

APPEND EVE.

EVE-NAME = 'END_OF_LIST'.

EVE-FORM = 'ENDOFLIST'.

APPEND EVE.

LAYOUT-ZEBRA = 'X'.

LAYOUT-no_hline = 'X'.

LAYOUT-NO_VLINE = 'X'.

LAYOUT-window_titlebar = 'MATERIAL DETAILS'.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'ITAB'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = SY-REPID

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = FCAT

  • EXCEPTIONS

  • INCONSISTENT_INTERFACE = 1

  • PROGRAM_ERROR = 2

  • OTHERS = 3

.

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 = SY-REPID

IS_LAYOUT = LAYOUT

IT_FIELDCAT = FCAT

IT_SORT = SORT[]

IT_EVENTS = EVE[]

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.

FORM TOPOFPAGE.

REFRESH HEAD.

HEAD-TYP = 'H'.

HEAD-INFO = 'MATERIALS'.

APPEND HEAD.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = HEAD[]

  • I_LOGO =

  • I_END_OF_LIST_GRID =

.

ENDFORM.

FORM TOPOFLIST.

REFRESH HEAD.

HEAD-TYP = 'H'.

HEAD-INFO = 'MATERIALS-LISTTOP'.

APPEND HEAD.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = HEAD[]

  • I_LOGO =

  • I_END_OF_LIST_GRID =

.

ENDFORM.

FORM ENDOFLIST.

REFRESH HEAD.

HEAD-TYP = 'H'.

HEAD-INFO = 'MATERIALS-LISTEND'.

APPEND HEAD.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = HEAD[]

  • I_LOGO =

  • I_END_OF_LIST_GRID =

.

ENDFORM.

Regards,

Jayant

Read only

Former Member
0 Likes
1,072

hi

u can use reuse_alv_commentary_write

which is used to write the header information.

pass the internal table containing the data to be displayed/

Read only

Former Member
0 Likes
1,072

What you are saying that is basically a part of TOp-OF-PAGE ....

Please check that particular form in the code I have posted earlier, if you have already done the coding for the reast ...for that you have to also write the code for getting the evets..for that look at form 'USER COMMAND'.

Regards,

Jayant

Read only

Former Member
0 Likes
1,073

Hi Sandeep,

Use top of page event of ALV.

build a list header and pass it to FM <b>'REUSE_ALV_COMMENTARY_WRITE'</b>

Refer this code.

FORM build_listheader USING p_it_listheader TYPE slis_t_listheader.

DATA: itab_listheader TYPE slis_listheader.

REFRESH p_it_listheader.

CLEAR itab_listheader.

itab_listheader-typ = 'H'.

itab_listheader-info = Sy-repid.

APPEND itab_listheader TO p_it_listheader.

CLEAR itab_listheader.

itab_listheader-typ = 'H'.

itab_listheader-info = sy-datum.

APPEND itab_listheader TO p_it_listheader.

CLEAR itab_listheader.

itab_listheader-typ = 'H'.

itab_listheader-info = sy-time.

APPEND itab_listheader TO p_it_listheader.

ENDFORM. " BUILD_LISTHEADER

form BUILD_EVENTCAT using p_i_eventcat TYPE SLIS_T_EVENT.

DATA: I_EVENT TYPE SLIS_ALV_EVENT.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = P_I_EVENTCAT

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

CLEAR I_EVENT.

read table p_i_eventcat with key name = slis_ev_top_of_page into I_event.

if sy-subrc = 0.

move 'TOP_OF_PAGE' to I_event-form.

append I_event to p_i_eventcat.

endif.

FORM top_of_page .

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = it_listheader

i_logo = 'ENJOYSAP_LOGO'

  • I_END_OF_LIST_GRID =

.

ENDFORM. " TOP_OF_PAGE

Reward points if helpful.

Regards,

Hemant

Read only

Former Member
0 Likes
1,072

hi,

report ztest.

tables : mara,marc.

type-pools : slis,icon.

data : gd_repid type sy-repid.

data : d_fieldcat type slis_t_fieldcat_alv,

d_fieldcat_wa type slis_fieldcat_alv.

data : t_header type slis_t_listheader,

wa_header type slis_listheader,

linecount(10) type c,

line(10) type c.

data : gd_layout type slis_layout_alv.

perform fieldcat.

perform layout.

form layout.

gd_layout-edit = 'X'.

gd_layout-zebra = 'X'.

endform.

perform set_pf_status using rt_extab type slis_t_extab.

set pf-status 'NEW'.

endform.

form top_of_page.

wa_header-typ = 'H'.

wa_header-info = 'ALV Report'.

append wa_header to t_header.

clear wa_header.

wa_header-typ = 'S'.

wa_header-key = 'Date :'

concatenate Sy-datum+6(2) '.'

sy-datum+4(2) '.'

sy-datum(4) into wa_header-info.

append wa_header to t_header.

clear wa_header.

wa_header-typ = 'S'.

wa_header-key = 'Time :'

concatenate Sy-uzeit(2)'.'

sy-uzeit+2(2) '.'

sy-uzeit+4(2) into wa_header-info.

append wa_header to t_header.

clear wa_header.

describe table itab_final lines line.

wa_header-typ ='A'.

linecount = line.

concatenate 'THe total no of records are:' linecount into wa_header-info seperated by space.

append wa_header to t_header.

clear wa_header.

Call Function REUSE_WRITE_COMMENTRY_LINE.

header = t_header.

endform.

reward if helpful.

Read only

rahul2000
Contributor
0 Likes
1,072

THIS IS A SIMPLE CODE.ONLY REMEBER TO CHANGE THE NAME OG CALL BACK PROGRAM IN REUSE_ALV_GRID_DISPLAY TO YOUR PROGRAM NAME.

U WILL FIND EVERYTHING IN THIS CODE.

also am sending documentation of how to create logo

Upload Logo for REUSE_ALV_COMMENTARY_WRITE

For those who wish to upload and use a picture in your ALV ABAP reports.

Steps for uploading Logo :-:

1. Go to the transaction OAER

2. Enter the class name as 'PICTURES'

3. Enter the class type as 'OT' (other objects)

4. Enter the object key as the name of the logo you wish to give this object name then

has to be passed in the program in the field i_logo = 'SAP LOGO'

5. Execute

6. Then in the new screen (below) select Standard doc. types in bottom window

Click on the Screen icon

Now, it will ask for the file path where you have to upload the logo

Search for the logo from your PC.

7. Now you can use this logo in REUSE_ALV_COMMENTARY_WRITE

&----


*& Report ZSOD2

*& This is a report of Sales Document with ALV Display.

*& Also No of records selected along with Date and Time is displayed.

*& Code for display of LOGO and sorting of a particular field also.

&----


*&Created by Rahul Bhat on 31-07-2007.

*&

&----


REPORT ZSOD2.

--


FOR ALV REPORT--

TYPE-POOLS : SLIS .

----


--


CONSTANTS FOR PROCESSING--

  • c_x VALUE 'X' .

----


.

--


TABLES DECLARATION--

TABLES : VBAK,VBAP.

----


--


ALV data declarations--

DATA : fieldcat TYPE slis_fieldcat_alv OCCURS 0 WITH HEADER LINE.

--


FOR SORTING TO DISPLAY VBELN FIELD (SALES ORDER)ONLY ONCE----

DATA: IT_sortcat type slis_sortinfo_alv occurs 1,

wa_sort like line of IT_sortcat.

--


END OF ALV DECLARATIONS--

DATA : COL_POS TYPE I .

*DATA : v_cntr TYPE i VALUE IS INITIAL ,

  • v_pcnt TYPE i VALUE 1 ,

  • v_totl TYPE p DECIMALS 6 VALUE IS INITIAL,

  • a LIKE sy-ucomm .

*

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

SELECT-OPTIONS :VBELN FOR VBAK-VBELN ,

S_ERDAT FOR VBAK-ERDAT ,

S_SPART FOR VBAK-SPART .

SELECTION-SCREEN END OF BLOCK B1 .

DATA :BEGIN OF IVBAK OCCURS 0 ,

VBELN LIKE VBAK-VBELN ,

ERDAT LIKE VBAK-ERDAT ,

ERNAM TYPE VBAK-ERNAM ,

ERZET TYPE VBAK-ERZET ,

SPART TYPE VBAK-SPART ,

TRVOG TYPE VBAK-TRVOG ,

END OF IVBAK .

DATA :BEGIN OF IVBAP OCCURS 0 ,

VBELN LIKE VBAP-VBELN ,

ERDAT LIKE VBAP-ERDAT ,

POSNR LIKE VBAP-POSNR ,

MATNR LIKE VBAP-MATNR ,

MATWA LIKE VBAP-MATWA ,

CHARG LIKE VBAP-CHARG ,

KWMENG LIKE VBAP-KWMENG ,

NETWR LIKE VBAP-NETWR ,

END OF IVBAP .

*----


&----There is no need to define structures of 2 tables as above.Instead we can use INNER JOIN.This coding has been done in ZTRIALS&----

*&--


All the SELECT statments will be commented in that case_--


*----


START-OF-SELECTION .

----


*From here we can use inner join and comment the below SELECT statments.

*The inner join statment will be as follows.

  • SELECT VKVBTYP VPVBELN VPPOSNR VPMATNR VPMATWA VPCHARG VPKWMENG VPNETWR ""vp-initial for VBAP

  • INTO CORRESPONDING FIELDS OF TABLE ITAB FROM VBAP AS VP ""vk-initial for VBAK

  • INNER JOIN VBAK AS VK ON VKVBELN = VPVBELN

  • WHERE VK~VBELN IN VBELN.

----


.

----


SELECT * FROM VBAK INTO CORRESPONDING FIELDS OF TABLE IVBAK WHERE VBELN IN VBELN AND ERDAT IN S_ERDAT.

IF SY-SUBRC <> 0 . """"Always use a SY_SUBRC check after select statment.

MESSAGE i000(zmm) . """"Message for DATA NOT FOUND.

ELSE .

SELECT VBELN ERDAT POSNR MATNR MATWA CHARG KWMENG NETWR INTO CORRESPONDING FIELDS OF

TABLE IVBAP FROM VBAP FOR ALL ENTRIES IN IVBAK

WHERE VBELN EQ IVBAK-VBELN AND

SPART IN S_SPART .

ENDIF .

----


*CALL FUNCTION 'POPUP_TO_DECIDE_INFO'

  • EXPORTING

  • DEFAULTOPTION = 'Y'

  • TEXTLINE1 = 'ARE YOU SURE?'

  • TEXTLINE2 = 'GO BACK '

  • TITEL = 'POPUP'

  • START_COLUMN = 25

  • START_ROW = 6

    • IMPORTING

    • ANSWER =

  • .

&--


For Displaying the required fields--
&

ADD 1 TO COL_POS . """"If we add 1 more column of VBTYP it will result in a dump as we are passing IVBAP.

FIELDCAT-COL_POS = COL_POS . """"So to avoid this we can use INNER JOIN statment.

FIELDCAT-FIELDNAME = 'VBELN' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'SALES ORDER' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 15 .

FIELDCAT-DO_SUM = 'X' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'MATNR' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'MATERIAL NO.' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 16 .

FIELDCAT-KEY(1) = 'MATNR' .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'ERDAT' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'RECORD DATE' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 16 .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'POSNR' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'ITEM' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 5 .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'MATWA' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'MATERIAL ENT' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 15 .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'CHARG' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'BATCH.NO' .

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 10 .

APPEND FIELDCAT .

CLEAR FIELDCAT .

ADD 1 TO COL_POS .

  • LOOP AT IVBAP.

  • AT END OF VBELN.

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'KWMENG' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'CUMULATIVE ORDER QUANTITY IN SALES UNITS'.

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 42 .

  • FIELDCAT-SUBTOT = 'X' .

FIELDCAT-DO_SUM = 'X' . """"FOR CALCULATING THE SUM DIRECTLY

APPEND FIELDCAT .

CLEAR FIELDCAT .

  • ENDAT.

  • ENDLOOP.

ADD 1 TO COL_POS .

FIELDCAT-COL_POS = COL_POS .

FIELDCAT-FIELDNAME = 'NETWR' .

FIELDCAT-TABNAME = 'FIELDCAT' .

FIELDCAT-SELTEXT_L = 'NET VALUE IN DOCUMENT CURRENCY' . """"OF THE ORDER ITEM IN DOCUMENT CURRENCY.

FIELDCAT-FIX_COLUMN = 'X' .

FIELDCAT-OUTPUTLEN = 35 .

FIELDCAT-DO_SUM = 'X' . """"FOR CALCULATING THE SUM DIRECTLY

APPEND FIELDCAT .

CLEAR FIELDCAT .

&--


End of Display--
&

&--


Perform for showing the Progress Bar--
&

*PERFORM SHOW_PROGRESS.

&----


&

&--


PERFORM FOR SORTING SALES ORDER--
&

--


For Sorting required Fields in the Display--

PERFORM BUILD_SORTCAT.

&----


&

&--


FUNCTION CALL FOR ALV DISPLAY--
&

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = 'ZSOD2'

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

I_GRID_TITLE = 'AVAILABLE DATA FOR SELECTED SALES DOCUMENT'

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

IT_SORT = IT_SORTCAT "INTERNAL TABLE PASSED FOR SORTING

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = 'X'

  • 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

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

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = IVBAP[]

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

--


END OF FUNCTION CALL--

--


FORM TOP-OF-PAGE--

--


TO DISPLAY THE REQUIRED HEADING AT TOP OF PAGE--

FORM TOP_OF_PAGE .

*ALV HEADER DECLARATIONS

DATA: T_HEADER TYPE SLIS_T_LISTHEADER ,

WA_HEADER TYPE SLIS_LISTHEADER ,

T_LINE LIKE WA_HEADER-INFO ,

LD_LINES TYPE I ,

LD_LINESC(10) TYPE C .

  • TITLE

WA_HEADER-TYP = 'H' .

WA_HEADER-INFO = 'Sales Document' .

append WA_HEADER to T_HEADER .

CLEAR WA_HEADER .

  • DATE

WA_HEADER-TYP = 'S' .

WA_HEADER-KEY = 'Date: ' .

CONCATENATE SY-DATUM+6(2) '.'

SY-DATUM+4(2) '.'

SY-DATUM(4) into WA_HEADER-INFO."todays date

append WA_HEADER to T_HEADER .

clear: WA_HEADER .

  • TOTAL NO.OF RECORDS SELECTED :

DESCRIBE TABLE IVBAP LINES LD_LINES .

LD_LINESC = LD_LINES .

CONCATENATE 'Total Number of Records Selected: ' LD_LINESC

INTO T_LINE SEPARATED BY SPACE .

WA_HEADER-TYP = 'A' .

WA_HEADER-INFO = t_line .

APPEND WA_HEADER to T_HEADER .

clear: WA_HEADER, T_LINE .

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' """"TO DISPLAY STATMENTS WRITTEN ABOVE.

EXPORTING

IT_LIST_COMMENTARY = T_HEADER

I_LOGO = 'SAP LOGO' .""""SAP LOGO ON SCREEN.

ENDFORM .

--


ENDFORM--
.

&--


Form BUILD_SORTCAT--

&----


&--


Build Sort catalog--

--


FORM FOR SORTING SALES ORDER FIELD--

FORM BUILD_SORTCAT .

WA_SORT-SPOS = 1.

WA_SORT-FIELDNAME = 'VBELN' . """"FIELD NAME FOR WHICH ALL ITS CORRESPONDING RECORDS SHOULD BE DISPLAYED

  • wa_sort-SUBTOT = 'X' . """"subtotals any totals column by this field

  • gd_sortcat-tabname

APPEND WA_SORT TO IT_SORTCAT .

  • wa_sort-spos = 2 .

  • wa_sort-fieldname = 'EBELP' .

    • gd_sortcat-tabname

  • APPEND wa_sort TO it_sortcat .

ENDFORM .

--


ENDFORM--

    • &------------------------------------------------------------------

**& Form show_progress (PROGRESS BAR)

*&----


    • text

*----


    • --> p1 text

    • <-- p2 text

*----


*FORM show_progress .

    • (a) Testing

  • DATA: c(3) TYPE c VALUE IS INITIAL.

*

  • v_pcnt = v_cntr * v_totl.

  • c = v_pcnt.

  • CONCATENATE 'Processing.... ' c '%' INTO a.

*

  • CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

  • EXPORTING

  • percentage = v_pcnt

  • text = a.

*

  • v_cntr = v_cntr + 1.

*ENDFORM. " show_progress.

  • .

*--


ENDFORM--