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: 

page number not printing on last page

Former Member
0 Kudos

Hi all,

I am ablt to print the total no of pages in all pages ecept the last page.

whats wromg in my code ?

REPORT ZDEMO_EOF NO STANDARD PAGE HEADING LINE-SIZE 100 line-count 27(2).

types: BEGIN OF t_mara,

matnr TYPE mara-matnr,

ernam type mara-ernam,

end of t_mara.

data: itab TYPE TABLE OF t_mara,

wa TYPE t_mara.

select matnr ernam FROM mara INTO TABLE itab

WHERE matnr BETWEEN '000000000000000001' and '000000000000000777'.

sort itab by matnr.

delete itab WHERE matnr is INITIAL.

LOOP AT itab INTO wa .

WRITE:/ sy-tabix,'!', wa-matnr, wa-ernam.

ENDLOOP.

data: v TYPE n.

v = sy-linct - sy-linno.

skip v.

end-OF-PAGE.

data: zline type i,

temp TYPE f,

zpages TYPE i,

temp1 TYPE i.

CLEAR: zline,temp,zpages,temp1.

DESCRIBE TABLE itab LINES zline.

temp = zline / sy-srows.

zpages = TRUNC( temp ).

temp1 = FRAC( temp ).

if temp1 > 0.

zpages = zpages + 1.

endif.

write: /'Page ',sy-pagno, ' of ', zpages RIGHT-JUSTIFIED.

Thanks in advance

krupali

1 ACCEPTED SOLUTION

Mohamed_Mukhtar
Active Contributor
0 Kudos

hi ,

TYPES: BEGIN OF t_mara,
matnr TYPE mara-matnr,
ernam TYPE mara-ernam,
END OF t_mara.

DATA: itab TYPE TABLE OF t_mara,
wa TYPE t_mara.

SELECT matnr ernam FROM mara INTO TABLE itab
WHERE matnr BETWEEN '000000000000000001' AND '000000000000000777'.

SORT itab BY matnr.

DELETE itab WHERE matnr IS INITIAL.
DATA: v TYPE i.
v = sy-linct - sy-linno.
LOOP AT itab INTO wa .
  WRITE:/ sy-tabix,'!', wa-matnr, wa-ernam.
ENDLOOP.

RESERVE v LINES.  "-----> reserve lines
*SKIP v.


END-OF-PAGE.
  DATA: zline TYPE i,
  temp TYPE f,
  zpages TYPE i,
  temp1 TYPE i.

  CLEAR: zline,temp,zpages,temp1.

  DESCRIBE TABLE itab LINES zline.
  temp = zline / sy-srows.
  zpages = TRUNC( temp ).
  temp1 = FRAC( temp ).

  IF temp1 > 0.
    zpages = zpages + 1.
  ENDIF.

  WRITE: /'Page ',sy-pagno, ' of ', zpages RIGHT-JUSTIFIED.

Thanks & Regards

5 REPLIES 5

Mohamed_Mukhtar
Active Contributor
0 Kudos

hi ,

TYPES: BEGIN OF t_mara,
matnr TYPE mara-matnr,
ernam TYPE mara-ernam,
END OF t_mara.

DATA: itab TYPE TABLE OF t_mara,
wa TYPE t_mara.

SELECT matnr ernam FROM mara INTO TABLE itab
WHERE matnr BETWEEN '000000000000000001' AND '000000000000000777'.

SORT itab BY matnr.

DELETE itab WHERE matnr IS INITIAL.
DATA: v TYPE i.
v = sy-linct - sy-linno.
LOOP AT itab INTO wa .
  WRITE:/ sy-tabix,'!', wa-matnr, wa-ernam.
ENDLOOP.

RESERVE v LINES.  "-----> reserve lines
*SKIP v.


END-OF-PAGE.
  DATA: zline TYPE i,
  temp TYPE f,
  zpages TYPE i,
  temp1 TYPE i.

  CLEAR: zline,temp,zpages,temp1.

  DESCRIBE TABLE itab LINES zline.
  temp = zline / sy-srows.
  zpages = TRUNC( temp ).
  temp1 = FRAC( temp ).

  IF temp1 > 0.
    zpages = zpages + 1.
  ENDIF.

  WRITE: /'Page ',sy-pagno, ' of ', zpages RIGHT-JUSTIFIED.

Thanks & Regards

0 Kudos

Hi ,

Still i am having the same problem after modification also.

page no is not printing on last page.

any other idea.

Thanks in advance

krupali.

0 Kudos

Hi KR ,

In my system it is printing end of page for the last page.

DATA: v TYPE n. "-------> change 'n' to i.

Thanks and Regards

Edited by: Always Learner on Oct 17, 2008 2:16 PM

0 Kudos

Hi,

How many number of lines are there in your Last Page????

You need to ensure that the END-OF-PAGE should get fired in your last page i.e all the Page lines should be consumed.....

If same is not the case..use Reserve n lines ..where n is the number of Lines required to force the TOP-OF-PAGE event explicitly......

0 Kudos

Hi,

Thank you very much. My issue hasbeen resolved and points also been awarded.