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 End of page

former_member426550
Participant
0 Kudos

Good day experts.

here is my requirement...

i want to print page X of XXX at the end of every page..

i am using ALV list..with 3 line reserved for Footer printing

at ALV END of PAge..

page sy-pagno of 'XXX'

when i debug it. this statement was written on line 63..

at ALV end of LIST

read line 63 of page 1.

my problem is i cannot read the statement

page sy-pagno of 'XXX'

in line 63 of page 1...

is it possible to read the end of page on ALV list?

11 REPLIES 11

Former Member
0 Kudos

This is example for ALV report which has End of Page.....

REPORT ZALV1.

******************TABLE DECLARATION***********************************

TABLES : VBAP. " tables declaration

*****************TYPE POOLS*******************************************

TYPE-POOLS : SLIS. " slis type pool

*****************INTERNAL TABLE DECLARATION***************************

DATA : BEGIN OF IT_VBAP OCCURS 0,

" internal table for sales document item

VBELN LIKE VBAP-VBELN, " sales document

POSNR LIKE VBAP-POSNR, " document item

ERNAM LIKE VBAP-ERNAM,

" name of the person who created the object

ERDAT LIKE VBAP-ERDAT, " date on which the record was created

MATNR LIKE VBAP-MATNR. " material number

DATA : END OF IT_VBAP.

DATA : BEGIN OF IT_MARA OCCURS 0, " general material data

MATNR LIKE MARA-MATNR, " material number

ERNAM LIKE MARA-ERNAM,

" name of the person who created the object

MATKL LIKE MARA-MATKL, " material group

MEINS LIKE MARA-MEINS, " base unit of measure

PSTAT LIKE MARA-PSTAT. " maintainence status

DATA : END OF IT_MARA.

******************VARIABLE

DECLARATION**********************************

DATA : REPID LIKE SY-REPID. " program name

DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

" field catalog table for vbap

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA : IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV,

" field catalog table for mara

WA_FIELDCAT1 TYPE SLIS_FIELDCAT_ALV.

DATA : WA_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA: GT_XEVENTS TYPE SLIS_T_EVENT.

DATA: GT_YEVENTS TYPE SLIS_T_EVENT. " events table

DATA : XS_EVENT TYPE SLIS_ALV_EVENT. " events type

DATA : GT_PRINT TYPE SLIS_PRINT_ALV. " print table

*******************MULTIPLE SELECT INPUT

PARAMETERS**********************

SELECT-OPTIONS : S_VBELN FOR VBAP-VBELN.

" multiple selection for sales document

******************INITIALIZATION**************************************

***

INITIALIZATION.

REPID = SY-REPID.

*******************START OF

SELECTION************************************

START-OF-SELECTION.

PERFORM POP_VBAP.

" populating the table with document item data

PERFORM POP_MARA.

" populating the table with general material data

PERFORM FIELD_CAT.

" mapping the fields for the field catalog

PERFORM EVENTS. " using the events

PERFORM BLOCK_LIST.

" displaying the data in blocked list

&----


*& Form field_cat

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FIELD_CAT .

WA_FIELDCAT-FIELDNAME = 'VBELN'.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-SELTEXT_L = 'SALES DOC'.

WA_FIELDCAT-COL_POS = 1.

WA_FIELDCAT-OUTPUTLEN = 10.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'POSNR'.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-SELTEXT_L = 'DOC ITEM'.

WA_FIELDCAT-COL_POS = 2.

WA_FIELDCAT-OUTPUTLEN = 6.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'ERNAM'.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-SELTEXT_L = 'NAME'.

WA_FIELDCAT-COL_POS = 3.

WA_FIELDCAT-OUTPUTLEN = 12.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'ERDAT'.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-SELTEXT_L = 'DATE'.

WA_FIELDCAT-COL_POS = 4.

WA_FIELDCAT-OUTPUTLEN = 8.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-SELTEXT_L = 'MAT NO'.

WA_FIELDCAT-COL_POS = 5.

WA_FIELDCAT-OUTPUTLEN = 18.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT1-FIELDNAME = 'MATNR'.

WA_FIELDCAT1-TABNAME = 'IT_MARA'.

WA_FIELDCAT1-SELTEXT_L = 'MAT NO'.

WA_FIELDCAT1-COL_POS = 1.

WA_FIELDCAT1-OUTPUTLEN = 18.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT1.

WA_FIELDCAT1-FIELDNAME = 'ERNAM'.

WA_FIELDCAT1-TABNAME = 'IT_MARA'.

WA_FIELDCAT1-SELTEXT_L = 'NAME'.

WA_FIELDCAT1-COL_POS = 2.

WA_FIELDCAT1-OUTPUTLEN = 12.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT1.

WA_FIELDCAT1-FIELDNAME = 'MATKL'.

WA_FIELDCAT1-TABNAME = 'IT_MARA'.

WA_FIELDCAT1-SELTEXT_L = 'MAT DESC'.

WA_FIELDCAT1-COL_POS = 3.

WA_FIELDCAT1-OUTPUTLEN = 9.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT1.

WA_FIELDCAT1-FIELDNAME = 'MEINS'.

WA_FIELDCAT1-TABNAME = 'IT_MARA'.

WA_FIELDCAT1-SELTEXT_L = 'UNITS'.

WA_FIELDCAT1-COL_POS = 4.

WA_FIELDCAT1-OUTPUTLEN = 3.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT1.

WA_FIELDCAT1-FIELDNAME = 'PSTAT'.

WA_FIELDCAT1-TABNAME = 'IT_MARA'.

WA_FIELDCAT1-SELTEXT_L = 'STATUS'.

WA_FIELDCAT1-COL_POS = 5.

WA_FIELDCAT1-OUTPUTLEN = 15.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT1.

ENDFORM. " field_cat

&----


*& Form events

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM EVENTS .

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.

XS_EVENT-FORM = 'XEND_OF_PAGE'.

APPEND XS_EVENT TO GT_XEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.

XS_EVENT-FORM = 'XTOP_OF_PAGE'.

APPEND XS_EVENT TO GT_XEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.

XS_EVENT-FORM = 'XTOP_OF_LIST'.

APPEND XS_EVENT TO GT_XEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_LIST.

XS_EVENT-FORM = 'XEND_OF_LIST'.

APPEND XS_EVENT TO GT_XEVENTS.

CLEAR XS_EVENT.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.

XS_EVENT-FORM = 'YEND_OF_PAGE'.

APPEND XS_EVENT TO GT_YEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.

XS_EVENT-FORM = 'YTOP_OF_PAGE'.

APPEND XS_EVENT TO GT_YEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.

XS_EVENT-FORM = 'YTOP_OF_LIST'.

APPEND XS_EVENT TO GT_YEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_LIST.

XS_EVENT-FORM = 'YEND_OF_LIST'.

APPEND XS_EVENT TO GT_YEVENTS.

ENDFORM. " events

&----


*& Form XTOP_OF_PAGE

&----


  • text

----


FORM XTOP_OF_PAGE.

  • BREAK-POINT.

WRITE: / 'X_TOP_OF_PAGE'.

ENDFORM. "XTOP_OF_PAGE

----


  • FORM XTOP_OF_LIST *

----


  • ........ *

----


FORM XTOP_OF_LIST.

  • BREAK-POINT.

WRITE: / 'X_TOP_OF_LIST'.

ENDFORM. "XTOP_OF_LIST

----


  • FORM XEND_OF_PAGE *

----


  • ........ *

----


FORM XEND_OF_PAGE.

  • BREAK-POINT.

WRITE: / 'X_END_OF_PAGE'.

ENDFORM. "XEND_OF_PAGE

----


  • FORM XEND_OF_LIST *

----


  • ........ *

----


FORM XEND_OF_LIST.

  • BREAK-POINT.

WRITE: / 'X_END_OF_LIST'.

ENDFORM. "XEND_OF_LIST

*

FORM YTOP_OF_PAGE.

  • BREAK-POINT.

WRITE: / 'Y_TOP_OF_PAGE'.

ENDFORM. "YTOP_OF_PAGE

----


  • FORM YTOP_OF_LIST *

----


  • ........ *

----


FORM YTOP_OF_LIST.

  • BREAK-POINT.

WRITE: / 'Y_TOP_OF_LIST'.

ENDFORM. "YTOP_OF_LIST

----


  • FORM YEND_OF_PAGE *

----


  • ........ *

----


FORM YEND_OF_PAGE.

  • BREAK-POINT.

WRITE: / 'Y_END_OF_PAGE'.

ENDFORM. "YEND_OF_PAGE

----


  • FORM YEND_OF_LIST *

----


  • ........ *

----


FORM YEND_OF_LIST.

  • BREAK-POINT.

WRITE: / 'Y_END_OF_LIST'.

ENDFORM. "YEND_OF_LIST

*

&----


*& Form POP_VBAP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM POP_VBAP .

SELECT VBELN

POSNR

ERNAM

ERDAT

MATNR

FROM VBAP

INTO CORRESPONDING FIELDS OF TABLE IT_VBAP

WHERE VBELN IN S_VBELN.

ENDFORM. " POP_VBAP

&----


*& Form POP_MARA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM POP_MARA .

LOOP AT IT_VBAP.

SELECT SINGLE MATNR

ERNAM

MATKL

MEINS

PSTAT

FROM MARA

INTO CORRESPONDING FIELDS OF IT_MARA

WHERE MATNR = IT_VBAP-MATNR.

APPEND IT_MARA.

ENDLOOP.

ENDFORM. " POP_MARA

&----


*& Form BLOCK_LIST

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BLOCK_LIST .

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

I_CALLBACK_PROGRAM = REPID

I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'user_command'.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT

I_TABNAME = 'IT_VBAP'

IT_EVENTS = GT_XEVENTS

  • IT_SORT =

  • I_TEXT = ' '

TABLES

T_OUTTAB = IT_VBAP

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • MAXIMUM_OF_APPENDS_REACHED = 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_BLOCK_LIST_APPEND'

EXPORTING

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT1

I_TABNAME = 'IT_MARA'

IT_EVENTS = GT_YEVENTS

  • IT_SORT =

  • I_TEXT = ' '

TABLES

T_OUTTAB = IT_MARA

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • MAXIMUM_OF_APPENDS_REACHED = 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_BLOCK_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

IS_PRINT = GT_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 =

  • ES_EXIT_CAUSED_BY_USER =

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

Former Member
0 Kudos

check these links....for... how to print page number in alv....!!!!!

********************************************

This is example for ALV report which has End of Page.....

REPORT ZALV1.

******************TABLE DECLARATION***********************************

TABLES : VBAP. " tables declaration

*****************TYPE POOLS*******************************************

TYPE-POOLS : SLIS. " slis type pool

*****************INTERNAL TABLE DECLARATION***************************

DATA : BEGIN OF IT_VBAP OCCURS 0,

" internal table for sales document item

VBELN LIKE VBAP-VBELN, " sales document

POSNR LIKE VBAP-POSNR, " document item

ERNAM LIKE VBAP-ERNAM,

" name of the person who created the object

ERDAT LIKE VBAP-ERDAT, " date on which the record was created

MATNR LIKE VBAP-MATNR. " material number

DATA : END OF IT_VBAP.

DATA : BEGIN OF IT_MARA OCCURS 0, " general material data

MATNR LIKE MARA-MATNR, " material number

ERNAM LIKE MARA-ERNAM,

" name of the person who created the object

MATKL LIKE MARA-MATKL, " material group

MEINS LIKE MARA-MEINS, " base unit of measure

PSTAT LIKE MARA-PSTAT. " maintainence status

DATA : END OF IT_MARA.

******************VARIABLE

DECLARATION**********************************

DATA : REPID LIKE SY-REPID. " program name

DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

" field catalog table for vbap

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA : IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV,

" field catalog table for mara

WA_FIELDCAT1 TYPE SLIS_FIELDCAT_ALV.

DATA : WA_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA: GT_XEVENTS TYPE SLIS_T_EVENT.

DATA: GT_YEVENTS TYPE SLIS_T_EVENT. " events table

DATA : XS_EVENT TYPE SLIS_ALV_EVENT. " events type

DATA : GT_PRINT TYPE SLIS_PRINT_ALV. " print table

*******************MULTIPLE SELECT INPUT

PARAMETERS**********************

SELECT-OPTIONS : S_VBELN FOR VBAP-VBELN.

" multiple selection for sales document

******************INITIALIZATION**************************************

***

INITIALIZATION.

REPID = SY-REPID.

*******************START OF

SELECTION************************************

START-OF-SELECTION.

PERFORM POP_VBAP.

" populating the table with document item data

PERFORM POP_MARA.

" populating the table with general material data

PERFORM FIELD_CAT.

" mapping the fields for the field catalog

PERFORM EVENTS. " using the events

PERFORM BLOCK_LIST.

" displaying the data in blocked list

&----


*& Form field_cat

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FIELD_CAT .

WA_FIELDCAT-FIELDNAME = 'VBELN'.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-SELTEXT_L = 'SALES DOC'.

WA_FIELDCAT-COL_POS = 1.

WA_FIELDCAT-OUTPUTLEN = 10.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'POSNR'.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-SELTEXT_L = 'DOC ITEM'.

WA_FIELDCAT-COL_POS = 2.

WA_FIELDCAT-OUTPUTLEN = 6.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'ERNAM'.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-SELTEXT_L = 'NAME'.

WA_FIELDCAT-COL_POS = 3.

WA_FIELDCAT-OUTPUTLEN = 12.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'ERDAT'.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-SELTEXT_L = 'DATE'.

WA_FIELDCAT-COL_POS = 4.

WA_FIELDCAT-OUTPUTLEN = 8.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-TABNAME = 'IT_VBAP'.

WA_FIELDCAT-SELTEXT_L = 'MAT NO'.

WA_FIELDCAT-COL_POS = 5.

WA_FIELDCAT-OUTPUTLEN = 18.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT1-FIELDNAME = 'MATNR'.

WA_FIELDCAT1-TABNAME = 'IT_MARA'.

WA_FIELDCAT1-SELTEXT_L = 'MAT NO'.

WA_FIELDCAT1-COL_POS = 1.

WA_FIELDCAT1-OUTPUTLEN = 18.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT1.

WA_FIELDCAT1-FIELDNAME = 'ERNAM'.

WA_FIELDCAT1-TABNAME = 'IT_MARA'.

WA_FIELDCAT1-SELTEXT_L = 'NAME'.

WA_FIELDCAT1-COL_POS = 2.

WA_FIELDCAT1-OUTPUTLEN = 12.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT1.

WA_FIELDCAT1-FIELDNAME = 'MATKL'.

WA_FIELDCAT1-TABNAME = 'IT_MARA'.

WA_FIELDCAT1-SELTEXT_L = 'MAT DESC'.

WA_FIELDCAT1-COL_POS = 3.

WA_FIELDCAT1-OUTPUTLEN = 9.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT1.

WA_FIELDCAT1-FIELDNAME = 'MEINS'.

WA_FIELDCAT1-TABNAME = 'IT_MARA'.

WA_FIELDCAT1-SELTEXT_L = 'UNITS'.

WA_FIELDCAT1-COL_POS = 4.

WA_FIELDCAT1-OUTPUTLEN = 3.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT1.

WA_FIELDCAT1-FIELDNAME = 'PSTAT'.

WA_FIELDCAT1-TABNAME = 'IT_MARA'.

WA_FIELDCAT1-SELTEXT_L = 'STATUS'.

WA_FIELDCAT1-COL_POS = 5.

WA_FIELDCAT1-OUTPUTLEN = 15.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT1.

ENDFORM. " field_cat

&----


*& Form events

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM EVENTS .

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.

XS_EVENT-FORM = 'XEND_OF_PAGE'.

APPEND XS_EVENT TO GT_XEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.

XS_EVENT-FORM = 'XTOP_OF_PAGE'.

APPEND XS_EVENT TO GT_XEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.

XS_EVENT-FORM = 'XTOP_OF_LIST'.

APPEND XS_EVENT TO GT_XEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_LIST.

XS_EVENT-FORM = 'XEND_OF_LIST'.

APPEND XS_EVENT TO GT_XEVENTS.

CLEAR XS_EVENT.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.

XS_EVENT-FORM = 'YEND_OF_PAGE'.

APPEND XS_EVENT TO GT_YEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.

XS_EVENT-FORM = 'YTOP_OF_PAGE'.

APPEND XS_EVENT TO GT_YEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.

XS_EVENT-FORM = 'YTOP_OF_LIST'.

APPEND XS_EVENT TO GT_YEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_LIST.

XS_EVENT-FORM = 'YEND_OF_LIST'.

APPEND XS_EVENT TO GT_YEVENTS.

ENDFORM. " events

&----


*& Form XTOP_OF_PAGE

&----


  • text

----


FORM XTOP_OF_PAGE.

  • BREAK-POINT.

WRITE: / 'X_TOP_OF_PAGE'.

ENDFORM. "XTOP_OF_PAGE

----


  • FORM XTOP_OF_LIST *

----


  • ........ *

----


FORM XTOP_OF_LIST.

  • BREAK-POINT.

WRITE: / 'X_TOP_OF_LIST'.

ENDFORM. "XTOP_OF_LIST

----


  • FORM XEND_OF_PAGE *

----


  • ........ *

----


FORM XEND_OF_PAGE.

  • BREAK-POINT.

WRITE: / 'X_END_OF_PAGE'.

ENDFORM. "XEND_OF_PAGE

----


  • FORM XEND_OF_LIST *

----


  • ........ *

----


FORM XEND_OF_LIST.

  • BREAK-POINT.

WRITE: / 'X_END_OF_LIST'.

ENDFORM. "XEND_OF_LIST

*

FORM YTOP_OF_PAGE.

  • BREAK-POINT.

WRITE: / 'Y_TOP_OF_PAGE'.

ENDFORM. "YTOP_OF_PAGE

----


  • FORM YTOP_OF_LIST *

----


  • ........ *

----


FORM YTOP_OF_LIST.

  • BREAK-POINT.

WRITE: / 'Y_TOP_OF_LIST'.

ENDFORM. "YTOP_OF_LIST

----


  • FORM YEND_OF_PAGE *

----


  • ........ *

----


FORM YEND_OF_PAGE.

  • BREAK-POINT.

WRITE: / 'Y_END_OF_PAGE'.

ENDFORM. "YEND_OF_PAGE

----


  • FORM YEND_OF_LIST *

----


  • ........ *

----


FORM YEND_OF_LIST.

  • BREAK-POINT.

WRITE: / 'Y_END_OF_LIST'.

ENDFORM. "YEND_OF_LIST

*

&----


*& Form POP_VBAP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM POP_VBAP .

SELECT VBELN

POSNR

ERNAM

ERDAT

MATNR

FROM VBAP

INTO CORRESPONDING FIELDS OF TABLE IT_VBAP

WHERE VBELN IN S_VBELN.

ENDFORM. " POP_VBAP

&----


*& Form POP_MARA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM POP_MARA .

LOOP AT IT_VBAP.

SELECT SINGLE MATNR

ERNAM

MATKL

MEINS

PSTAT

FROM MARA

INTO CORRESPONDING FIELDS OF IT_MARA

WHERE MATNR = IT_VBAP-MATNR.

APPEND IT_MARA.

ENDLOOP.

ENDFORM. " POP_MARA

&----


*& Form BLOCK_LIST

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BLOCK_LIST .

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

I_CALLBACK_PROGRAM = REPID

I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'user_command'.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT

I_TABNAME = 'IT_VBAP'

IT_EVENTS = GT_XEVENTS

  • IT_SORT =

  • I_TEXT = ' '

TABLES

T_OUTTAB = IT_VBAP

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • MAXIMUM_OF_APPENDS_REACHED = 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_BLOCK_LIST_APPEND'

EXPORTING

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT1

I_TABNAME = 'IT_MARA'

IT_EVENTS = GT_YEVENTS

  • IT_SORT =

  • I_TEXT = ' '

TABLES

T_OUTTAB = IT_MARA

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • MAXIMUM_OF_APPENDS_REACHED = 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_BLOCK_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

IS_PRINT = GT_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 =

  • ES_EXIT_CAUSED_BY_USER =

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

Regards

Vasu

0 Kudos

thank u for ur reply..

works perfectly on Display mode..

1 of 1....

try to print it..then check the Spool request..

1 of ***

2 of ***

same with my problem...i cannot read the exact line where the statement

page 1 of *** is printed...

therefore..i cannot replaced the *** with total number of pages

any idea experts?..

0 Kudos

hi,

Please refer to SAP note 402627

ALV print: Date, title, page number not printed

SAP Note Number: 402627

Symptom

If you start printing from an ALV list, the document is always printed without standard page header (Date, title, page number).

Additional key words

ABAP List Viewer, SAP List Viewer, Print preview, Print, Batch, Printer date, Title, Page number, Print date, List header

Cause and prerequisites

Up to and including Release 46D, technical reasons prevent you this being done from the ALV. If you require this function, you can only specify this explicitly using the application development at the <b>TOP_OF_PAGE</b>.

Solution

As of Release 6.10, the SAP List Viewer is able to print either with or without the standard page header. You can define this using the 'Settings' function.

Hope it helps..

Lokesh<b></b>

0 Kudos

thank u lokesh for ur reply..

i was able to write the page number..

my problem is i cannot read the end of page during printing...

therefore i cannot replace the page 1 of '***' during the event end of list.

0 Kudos

Hi,

print_end_of_page

Use

You use this event to output text with the WRITE statement during print output. The text is inserted at the end of each page. During print output, the ALV Grid Control goes to the list output of the classic ALV.

In the print preview (classic ALV), the text for this event is not displayed.

Demo program BCALV_GRID_01 in development class SLIS illustrates how print_end_of_page is used.

Prerequisites

To allow output at the end of each page, you must reserve several lines for these pages. To do this, use field reservelns of a structure of type lvc_s_prnt and pass this structure with method set_table_for_first_display.

For an overview, see: Events of Class CL_GUI_ALV_GRID

Hope it helps.

Lokesh

0 Kudos

hi lokesh..

i already resevd 3 lines for my footer...

and i was able to print the statement page 1 of *** on the event end of page...

at end of list event..i have to replaced the character *** with the total number of pages....

when i read line 63(tried line 30-100) of page 1...

the return value was sy-subrc = 0..

i was expecting the statement 'PAGE 1 of ****' so that i can replace it with the total number of pages...

**-----PRINT PARAMETERS

is_print-reserve_lines = '3'. "Lines reserved for footer

*---end of page

WRITE:'Page:', sy-pagno, 'of', ****. " line 63

*---end of list

do sy-pagno times.

read line 63 of page sy-INDEX. (this is my problem, line 63 has different value)

REPLACE '****' WITH lv_total_page INTO sy-lisel

MODIFY CURRENT LINE.

endo.

Former Member
0 Kudos

Hi ,

Check the sample code.

DATA: gt_events type slis_t_event,

gd_prntparams type slis_print_alv.

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

i_callback_program = gd_repid

i_callback_top_of_page = 'TOP-OF-PAGE'

is_layout = gd_layout

it_fieldcat = fieldcatalog[]

it_events = gt_events

is_print = gd_prntparams

i_save = 'X'

tables

t_outtab = it_ekko

exceptions

program_error = 1

others = 2.

perform build_events.

perform build_print_params.

&----


*& Form BUILD_EVENTS

&----


  • Build events table

----


form build_events.

data: ls_event type slis_alv_event.

call function 'REUSE_ALV_EVENTS_GET'

exporting

i_list_type = 0

importing

et_events = gt_events[].

read table gt_events with key name = slis_ev_end_of_page

into ls_event.

if sy-subrc = 0.

move 'END_OF_PAGE' to ls_event-form.

append ls_event to gt_events.

endif.

read table gt_events with key name = slis_ev_end_of_list

into ls_event.

if sy-subrc = 0.

move 'END_OF_LIST' to ls_event-form.

append ls_event to gt_events.

endif.

endform. " BUILD_EVENTS

&----


*& Form BUILD_PRINT_PARAMS

&----


  • Setup print parameters

----


form build_print_params.

gd_prntparams-reserve_lines = '3'. "Lines reserved for footer

gd_prntparams-no_coverpage = 'X'.

endform. " BUILD_PRINT_PARAMS

&----


*& Form END_OF_PAGE

&----


form END_OF_PAGE.

data: listwidth type i,

ld_pagepos(10) type c,

ld_page(10) type c.

write: sy-uline(50).

skip.

write:/40 'Page:', sy-pagno .

endform.

&----


*& Form END_OF_LIST

&----


form END_OF_LIST.

data: listwidth type i,

ld_pagepos(10) type c,

ld_page(10) type c.

skip.

write:/40 'Page:', sy-pagno .

endform.

Reward if Useful.

Regards,

Chitra

0 Kudos

thanks chitra for ur reply...

my requirement is to print page X of Y....

i already print the current page...

my problem is to get the total number of pages...

0 Kudos

Hi,

I think the best way is

1) to check how many lines are getting displayed per page in your report. Check your report with max data available.

2) Then, get the number of records to be displayed using the DESCRIBE internal table.

3) Divide the Total no. of records in the internal table by the no. of lines which can be displayed in a single page. This will give you the total no. of pages.

Hope it helps.

LOkesh

0 Kudos

hi lokesh..

i cannot used this approched since i am using ALV grid dislay..

on some scenarios.there are sorted columns...

is it possible to get the number of line on the screen?