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: 

Vertical Scroll Bar

abapdeveloper20
Contributor
0 Kudos

Hi Experts,

here in one program which contains 600 entries where the vertical scroll bar is not displaying. but when i am using PAGEDOWN key vertical scroll bar is appearing in which i can able to scroll up & down.

pls help to solve this.. any inputs on this will be highly rewarded.

Rgds

Lakshmiraj

8 REPLIES 8

Former Member
0 Kudos

HI,

is it dialog programming or report.

In report by default u can get vertical scroll.

If it is dialog, table control then u have to write coding for this.

could u explain ur question in another way.

thanks,

Senthil kumar

0 Kudos

Hi senthil

thnks for ur fast reply.

it is in classical report, & for in one hotspot area. kindly help me.

0 Kudos

hi raj,

Did u use LINE-COUNT <no> & LINE-SIZE <no> in ur report heading.

try this.

bcoz in classical report by default it will come.

Thanks,

Senthil kumar

0 Kudos

Yes..

REPORT Z_MM_PRAGEING_MONTH_REPORT

NO STANDARD PAGE HEADING

LINE-SIZE 109

LINE-COUNT 60(3).

which one is responsible for scroll bar..line count or linesize????

in some case it is coming...

eg: if it is 241 entries v.scroll bar is coming properly...if it is 130 , 52 , 96 ,82 entires..it is not appearing...pressing page down it gives properly...when i scroll tht bar to top ,it is again disappearing... once again page down has to be used to see the remaining contents...

suggest me some idea..Thanks a lot

0 Kudos

hi,

could you paste your coding here. i will check it out.

Senthil kumar

0 Kudos

REPORT Z_MM_PRAGEING_MONTH_REPORT NO STANDARD PAGE HEADING LINE-SIZE 109

LINE-COUNT 60(3).

AT LINE-SELECTION.

GET CURSOR FIELD CURSOR1.

WINDOW STARTING AT 1 1 ENDING AT 81 100.

SORT ITAB BY DAYS DESCENDING.

IF CURSOR1 = 'PRAGETAB-0TO15' AND SOMEX = 'X'.

WRITE:/ 'Plant:',PRAGETAB-WERKS,

/ 'PR type:',PRAGETAB-BSART,

/ 'Ageing between 0 to 15 days'.

WRITE:/0(93) SY-ULINE.

LOOP AT ITAB WHERE WERKS = PRAGETAB-WERKS AND

BSART = PRAGETAB-BSART AND

EBELN NE SPACE AND

DAYS >= 0 AND DAYS <= 15.

PERFORM DETPRINT.

AT LAST.

ENDAT.

ENDLOOP.

WRITE:/0(93) SY-ULINE.

ELSEIF CURSOR1 = 'PRAGETAB-16TO30' AND SOMEX = 'X'.

WRITE:/ 'Plant:',PRAGETAB-WERKS,

/ 'PR type:',PRAGETAB-BSART,

/ 'Ageing between 16 to 30 days'.

WRITE:/0(93) SY-ULINE.

LOOP AT ITAB WHERE WERKS = PRAGETAB-WERKS AND

BSART = PRAGETAB-BSART AND

EBELN NE SPACE AND

DAYS >= 16 AND DAYS <= 30.

PERFORM DETPRINT.

AT LAST.

ENDAT.

ENDLOOP.

WRITE:/0(93) SY-ULINE.

ELSEIF CURSOR1 = 'PRAGETAB-31TO60' AND SOMEX = 'X'.

WRITE:/ 'Plant:',PRAGETAB-WERKS,

/ 'PR type:',PRAGETAB-BSART,

/ 'Ageing between 31 to 60 days'.

WRITE:/0(93) SY-ULINE.

LOOP AT ITAB WHERE WERKS = PRAGETAB-WERKS AND

BSART = PRAGETAB-BSART AND

EBELN NE SPACE AND

DAYS >= 31 AND DAYS <= 60.

PERFORM DETPRINT.

AT LAST.

ENDAT.

ENDLOOP.

WRITE:/0(93) SY-ULINE.

ELSEIF CURSOR1 = 'PRAGETAB-61TO90' AND SOMEX = 'X'.

WRITE:/ 'Plant:',PRAGETAB-WERKS,

/ 'PR type:',PRAGETAB-BSART,

/ 'Ageing between 61 to 90 days'.

WRITE:/0(93) SY-ULINE.

LOOP AT ITAB WHERE WERKS = PRAGETAB-WERKS AND

BSART = PRAGETAB-BSART AND

EBELN NE SPACE AND

DAYS >= 61 AND DAYS <= 90.

PERFORM DETPRINT.

AT LAST.

ENDAT.

ENDLOOP.

WRITE:/0(93) SY-ULINE.

ELSEIF CURSOR1 = 'PRAGETAB-OV90' AND SOMEX = 'X'.

WRITE:/ 'Plant:',PRAGETAB-WERKS,

/ 'PR type:',PRAGETAB-BSART,

/ 'Ageing OVER 90 DAYS'.

WRITE:/0(93) SY-ULINE.

LOOP AT ITAB WHERE WERKS = PRAGETAB-WERKS AND

BSART = PRAGETAB-BSART AND

DAYS >= 91 AND

EBELN NE SPACE.

PERFORM DETPRINT.

AT LAST.

ENDAT.

ENDLOOP.

WRITE:/0(93) SY-ULINE.

ELSEIF CURSOR1 = 'PRAGETAB-PEND' AND SOMEX = 'X'.

WRITE:/ 'Plant:',PRAGETAB-WERKS,

/ 'PR type:',PRAGETAB-BSART,

/ 'Pending PRs'.

WRITE:/0(74) SY-ULINE.

LOOP AT ITAB WHERE WERKS = PRAGETAB-WERKS AND

BSART = PRAGETAB-BSART AND

EBELN = SPACE.

PERFORM DETPRINT.

AT LAST.

ENDAT.

ENDLOOP.

WRITE:/0(74) SY-ULINE.

ELSEIF CURSOR1 = 'ITAB-EBELN'.

SET PARAMETER ID 'BES' FIELD ITAB-EBELN.

CALL TRANSACTION 'ME23' AND SKIP FIRST SCREEN.

ELSEIF CURSOR1 = 'ITAB-BANFN'.

SET PARAMETER ID 'BAN' FIELD ITAB-BANFN.

CALL TRANSACTION 'ME53' AND SKIP FIRST SCREEN.

ENDIF.

END-OF-SELECTION.

and the form

----


  • FORM detprint *

----


  • ........ *

----


FORM DETPRINT.

CLEAR: PRDAYS.

PRDAYS = ( ITAB-LFDAT - ITAB-BADAT ) - 15.

CASE CURSOR1.

WHEN 'PRAGETAB-PEND'.

WRITE:/1 SY-VLINE,SY-VLINE,

2(10) ITAB-BANFN HOTSPOT ON,SY-VLINE,

14(6) ITAB-BNFPO,SY-VLINE,

22(10) ITAB-FRGDT,SY-VLINE,

34(10) ITAB-TEXT,SY-VLINE,

46(10) ITAB-DAYS,SY-VLINE,

58(15) ITAB-AFNAM,SY-VLINE.

HIDE ITAB.

SET LEFT SCROLL-BOUNDARY COLUMN 90.

WHEN OTHERS.

WRITE:/1 SY-VLINE,SY-VLINE,

2(10) ITAB-BANFN HOTSPOT ON,SY-VLINE,

14(6) ITAB-BNFPO,SY-VLINE,

22(10) ITAB-FRGDT,SY-VLINE,

34(10) ITAB-TEXT,SY-VLINE,

46(10) ITAB-EBELN HOTSPOT ON,SY-VLINE,

58(10) ITAB-BEDAT,SY-VLINE,

70(10) ITAB-DAYS,SY-VLINE,

82(10) PRDAYS,SY-VLINE.

HIDE ITAB.

SET LEFT SCROLL-BOUNDARY COLUMN 46.

ENDCASE.

ENDFORM.

waiting for ur reply. thanks a lot..

0 Kudos

hey,

Previously u mentioned that it is classical report.

but in your coding "AT LINE-SELECTION" is there.

you just copy the entire coding including data declaration and paste.

Senthil kumar

0 Kudos

Hi..

complete Program here...

REPORT Z_MM_PRAGEING_MONTH_REPORT NO STANDARD PAGE HEADING LINE-SIZE 109

LINE-COUNT 60(3).

&----


*& Program Name : Z_MM_PRAGEING_MONTH_REPORT

*& Module Name : MM

*& Sub-Module :

*& Author :

*& Create Date :

*& Logical DB :

*& Program Type :

*& SAP Release : 46C

*& Description :

&----


&----


***************************Revision Log****************************

*& Log Date Author Description

*&

&----


INCLUDE <ICON>.

TABLES: EBAN,T001,T001W,MAKT,T001K,ICONT,T024,EKKO,CDPOS,CDHDR.

SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETERS: BUKRS LIKE T001K-BUKRS.

SELECT-OPTIONS: WERKS FOR EBAN-WERKS,

BSART FOR EBAN-BSART,

ERDAT FOR EBAN-ERDAT OBLIGATORY,

EKGRP FOR EBAN-EKGRP.

*parameters: keydate like sy-datum default sy-datum no-display.

SELECTION-SCREEN: END OF BLOCK B1.

SELECTION-SCREEN: BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.

SELECTION-SCREEN: END OF BLOCK B2.

DATA: KEYDATE LIKE SY-DATUM.

INITIALIZATION.

KEYDATE = SY-DATUM.

END-OF-SELECTION.

KEYDATE = SY-DATUM.

DATA: BEGIN OF ITAB OCCURS 10.

DATA: TEXT(10).

INCLUDE STRUCTURE EBAN.

DATA: MAKTX LIKE MAKT-MAKTX,

VALUE TYPE P DECIMALS 2,

DAYS TYPE I,

PDAYS TYPE I,

EKNAM LIKE T024-EKNAM,

ID LIKE ICONT-ID,

CTR TYPE I.

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

**field priority.

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

DATA: END OF ITAB.

DATA: BEGIN OF PRAGETAB OCCURS 10,

WERKS LIKE EBAN-WERKS,

BSART LIKE EBAN-BSART,

EKGRP LIKE EBAN-EKGRP,

0TO15 TYPE I,

16TO30 TYPE I,

31TO60 TYPE I,

61TO90 TYPE I,

OV90 TYPE I,

TOTAL TYPE I,

PEND TYPE I,

LTOT TYPE I,

END OF PRAGETAB.

DATA: BEGIN OF EKGRPTAB OCCURS 10,

EKGRP LIKE EBAN-EKGRP,

WERKS LIKE EBAN-WERKS,

0TO15 TYPE I,

16TO30 TYPE I,

31TO60 TYPE I,

61TO90 TYPE I,

OV90 TYPE I,

TOTAL TYPE I,

PEND TYPE I,

LTOT TYPE I,

END OF EKGRPTAB.

DATA: P0TO15 TYPE P DECIMALS 2,

P16TO30 TYPE P DECIMALS 2,

P31TO60 TYPE P DECIMALS 2,

P61TO90 TYPE P DECIMALS 2,

POV90 TYPE P DECIMALS 2,

TOTAL TYPE P DECIMALS 2,

PEND TYPE P DECIMALS 2,

TOT TYPE P DECIMALS 2.

SY-TITLE = 'Report on PR/PO Status'.

DATA: CURSOR1(20).

DATA: SOMEX(1).

START-OF-SELECTION.

          • Modified by SAKTHI on 12.02.2007*****

**CORRECTED BY S.BALAMEENAKSHI

DATA : FLAG1(1).

SELECT * FROM T001W WHERE WERKS IN WERKS.

AUTHORITY-CHECK OBJECT 'M_MATE_WRK'

ID 'ACTVT' DUMMY

ID 'WERKS' FIELD T001W-WERKS.

IF SY-SUBRC NE 0.

FLAG1 = 'X'.

ENDIF.

ENDSELECT.

IF FLAG1 EQ 'X'.

PERFORM CALLERR USING

'You have no Authorisation for this Plant'.

EXIT.

ENDIF.

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

SELECT * INTO CORRESPONDING FIELDS OF ITAB FROM EBAN AS A

INNER JOIN T001K AS B ON A~WERKS = B~BWKEY

WHERE B~BUKRS = BUKRS AND

A~WERKS IN WERKS AND

A~BSART IN BSART AND

A~BADAT IN ERDAT "and ( ( a~erdat < keydate ) and

  • ( abedat = '00000000' or abedat >= keydate ) )

AND A~LOEKZ = SPACE

AND FRGKZ NE 'X' AND

  • and ekgrp in ekgrp and

  • bsart not like 'ZHC%'.

    • inserted on 14.6.2004 by SCM

      • closed PRs not to be considered.

      • PRs with Nil qty not to be considered

EBAKZ NE 'X' AND

MENGE NE 0.

APPEND ITAB.

CLEAR ITAB.

ENDSELECT.

END-OF-SELECTION.

  • delete itab where ebeln = space.

SORT ITAB BY BANFN EBELN.

DELETE ADJACENT DUPLICATES FROM ITAB COMPARING BANFN EBELN.

LOOP AT ITAB.

IF ITAB-EBELN NE SPACE.

CLEAR: EKKO.

SELECT SINGLE * FROM EKKO WHERE EBELN = ITAB-EBELN AND

EKGRP IN EKGRP.

IF SY-SUBRC <> 0.

DELETE ITAB.

ELSE.

ITAB-EKGRP = EKKO-EKGRP.

MODIFY ITAB.

ENDIF.

ENDIF.

ENDLOOP.

LOOP AT ITAB WHERE EBELN = SPACE.

CLEAR: ITAB-EKGRP.

MODIFY ITAB.

ENDLOOP.

DATA: PRDAYS TYPE I.

DATA: GRPDAYS TYPE I.

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

DATA: TABKEY LIKE CDPOS-TABKEY.

LOOP AT ITAB.

CLEAR: CDHDR,CDPOS,TABKEY.

CONCATENATE SY-MANDT ITAB-BANFN ITAB-BNFPO INTO TABKEY.

SELECT SINGLE CHANGENR INTO CDPOS-CHANGENR FROM CDPOS

WHERE OBJECTCLAS = 'BANF' AND

OBJECTID = ITAB-BANFN AND

  • fname = 'FRGZU' and

  • value_new = 'X' and

FNAME = 'FRGKZ' AND

VALUE_NEW = '2' AND

TABKEY = TABKEY.

SELECT SINGLE * FROM CDHDR WHERE CHANGENR = CDPOS-CHANGENR AND

OBJECTCLAS = 'BANF' AND

OBJECTID = ITAB-BANFN.

ITAB-FRGDT = CDHDR-UDATE.

MODIFY ITAB.

ENDLOOP.

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

LOOP AT ITAB.

CLEAR: MAKT.

SELECT SINGLE * FROM MAKT WHERE MATNR = ITAB-MATNR.

ITAB-MAKTX = MAKT-MAKTX.

IF ITAB-MAKTX = SPACE.

ITAB-MAKTX = ITAB-TXZ01.

ENDIF.

ITAB-VALUE = ITAB-PREIS * ITAB-MENGE.

  • if itab-bedat <> '00000000'.

  • itab-days = itab-bedat - itab-erdat.

  • else.

IF ITAB-EBELN = SPACE.

ITAB-DAYS = KEYDATE - ITAB-FRGDT. "itab-erdat.

ELSE.

ITAB-DAYS = ITAB-BEDAT - ITAB-FRGDT. "itab-erdat.

ENDIF.

ITAB-PDAYS = ITAB-ERDAT - ITAB-FRGDT. "badat.

        • WHERE THERE ARE NO RELEASE STRATEGY.

        • DAYS ARE CALCULATED WITH PR CREATION DATE.

    • INSERTED ON 19.9.2003 SPEC BY RAJESH MUTHU.

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

IF ( ITAB-BSART = 'NB' OR ITAB-BSART = 'ZIWR' ).

IF ITAB-EBELN = SPACE.

ITAB-DAYS = KEYDATE - ITAB-BADAT.

ITAB-PDAYS = ITAB-BEDAT - ITAB-BADAT.

ELSE.

ITAB-DAYS = ITAB-BEDAT - ITAB-BADAT.

ITAB-PDAYS = ITAB-BEDAT - ITAB-BADAT.

ENDIF.

ENDIF.

  • endif.

MODIFY ITAB.

IF ITAB-DAYS >= 0 AND ITAB-DAYS <= 15.

WRITE ICON_GREEN_LIGHT AS ICON TO ITAB-ID.

ELSEIF ITAB-DAYS >= 16 AND ITAB-DAYS <= 30.

WRITE ICON_YELLOW_LIGHT AS ICON TO ITAB-ID.

ELSEIF ITAB-DAYS >= 31.

WRITE ICON_RED_LIGHT AS ICON TO ITAB-ID.

ENDIF.

CLEAR T024.

SELECT SINGLE * FROM T024 WHERE EKGRP = ITAB-EKGRP.

ITAB-EKNAM = T024-EKNAM.

ITAB-CTR = 1.

MODIFY ITAB.

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

CLEAR: PRDAYS.

PRDAYS = ( ITAB-LFDAT - ITAB-FRGDT ) - 15.

IF PRDAYS < 0.

ITAB-TEXT = 'PRIORITY 1'.

ELSEIF PRDAYS >= 0 AND PRDAYS <= 10.

ITAB-TEXT = 'PRIORITY 2'.

ELSE.

ITAB-TEXT = 'PRIORITY 3'.

ENDIF.

MODIFY ITAB.

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

ITAB-PLIFZ = 0.

MODIFY ITAB.

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

PRAGETAB-WERKS = ITAB-WERKS.

PRAGETAB-BSART = ITAB-BSART.

PRAGETAB-EKGRP = ITAB-EKGRP.

IF ITAB-EBELN NE SPACE.

IF ITAB-DAYS >= 0 AND ITAB-DAYS <= 15.

PRAGETAB-0TO15 = ITAB-CTR.

ELSEIF ITAB-DAYS >= 16 AND ITAB-DAYS <= 30.

PRAGETAB-16TO30 = ITAB-CTR.

ELSEIF ITAB-DAYS >= 31 AND ITAB-DAYS <= 60.

PRAGETAB-31TO60 = ITAB-CTR.

ELSEIF ITAB-DAYS >= 61 AND ITAB-DAYS <= 90.

PRAGETAB-61TO90 = ITAB-CTR.

ELSEIF ITAB-DAYS >= 91.

PRAGETAB-OV90 = ITAB-CTR.

ENDIF.

PRAGETAB-TOTAL = PRAGETAB-0TO15 +

PRAGETAB-16TO30 +

PRAGETAB-31TO60 +

PRAGETAB-61TO90 +

PRAGETAB-OV90.

ELSE.

PRAGETAB-PEND = ITAB-CTR.

ENDIF.

PRAGETAB-LTOT = PRAGETAB-TOTAL + PRAGETAB-PEND.

APPEND PRAGETAB.

CLEAR: PRAGETAB.

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

ENDLOOP.

SORT PRAGETAB BY WERKS BSART.

LOOP AT PRAGETAB.

AT NEW WERKS.

CLEAR: P0TO15,

P16TO30,

P31TO60,

P61TO90,

POV90,

PEND,

TOT.

SUM.

CLEAR: SOMEX.

HIDE: SOMEX.

CLEAR: T001W.

SELECT SINGLE * FROM T001W WHERE WERKS = PRAGETAB-WERKS.

FORMAT COLOR = 5 INTENSIFIED OFF.

WRITE:/1 SY-VLINE, 'Plant:',PRAGETAB-WERKS,T001W-NAME1,

'Total PR:',PRAGETAB-LTOT,109 SY-VLINE.

ULINE.

ENDAT.

AT END OF BSART.

FORMAT COLOR = 2 INTENSIFIED OFF.

SUM.

SOMEX = 'X'.

WRITE:/1 SY-VLINE,2(10) PRAGETAB-BSART,SY-VLINE,

14(10) PRAGETAB-LTOT COLOR = 4 INTENSIFIED OFF,SY-VLINE,

26(10) PRAGETAB-TOTAL COLOR = 2 INTENSIFIED ON,SY-VLINE,

38(10) PRAGETAB-0TO15 HOTSPOT ON,SY-VLINE,

50(10) PRAGETAB-16TO30 HOTSPOT ON,SY-VLINE,

62(10) PRAGETAB-31TO60 HOTSPOT ON,SY-VLINE,

74(10) PRAGETAB-61TO90 HOTSPOT ON,SY-VLINE,

86(10) PRAGETAB-OV90 HOTSPOT ON,SY-VLINE,

98(10) PRAGETAB-PEND HOTSPOT ON COLOR = 7 INTENSIFIED OFF,

SY-VLINE.

HIDE:PRAGETAB,SOMEX.

ENDAT.

AT END OF WERKS.

ULINE.

SUM.

FORMAT COLOR = 3 INTENSIFIED OFF.

CLEAR: SOMEX.

HIDE: SOMEX.

WRITE:/1 SY-VLINE,2(10) PRAGETAB-WERKS,SY-VLINE,

14(10) PRAGETAB-LTOT COLOR = 4 INTENSIFIED OFF,SY-VLINE,

26(10) PRAGETAB-TOTAL COLOR = 2 INTENSIFIED ON,SY-VLINE,

38(10) PRAGETAB-0TO15,SY-VLINE,

50(10) PRAGETAB-16TO30,SY-VLINE,

62(10) PRAGETAB-31TO60,SY-VLINE,

74(10) PRAGETAB-61TO90,SY-VLINE,

86(10) PRAGETAB-OV90,SY-VLINE,

98(10) PRAGETAB-PEND COLOR = 7 INTENSIFIED ON,

SY-VLINE.

ULINE.

CLEAR: P0TO15,

P16TO30,

P31TO60,

P61TO90,

POV90,

PEND,

TOT.

TOTAL = PRAGETAB-LTOT.

IF PRAGETAB-LTOT NE 0.

P0TO15 = PRAGETAB-0TO15 * 100 / PRAGETAB-LTOT.

P16TO30 = PRAGETAB-16TO30 * 100 / PRAGETAB-LTOT.

P31TO60 = PRAGETAB-31TO60 * 100 / PRAGETAB-LTOT.

P61TO90 = PRAGETAB-61TO90 * 100 / PRAGETAB-LTOT.

POV90 = PRAGETAB-OV90 * 100 / PRAGETAB-LTOT.

PEND = PRAGETAB-PEND * 100 / PRAGETAB-LTOT.

TOT = PRAGETAB-TOTAL * 100 / PRAGETAB-LTOT.

ENDIF.

WRITE:/1 SY-VLINE,2(10) '%',SY-VLINE,

14(10) 100,SY-VLINE,

26(10) TOT,SY-VLINE,

38(10) P0TO15,SY-VLINE,

50(10) P16TO30,SY-VLINE,

62(10) P31TO60,SY-VLINE,

74(10) P61TO90,SY-VLINE,

86(10) POV90,SY-VLINE,

98(10) PEND COLOR = 6 INTENSIFIED OFF,SY-VLINE.

ULINE.

CLEAR: P0TO15,

P16TO30,

P31TO60,

P61TO90,

POV90,

PEND,

TOT.

REFRESH EKGRPTAB.

CLEAR: EKGRPTAB.

LOOP AT PRAGETAB WHERE WERKS = PRAGETAB-WERKS.

MOVE-CORRESPONDING PRAGETAB TO EKGRPTAB.

APPEND EKGRPTAB.

CLEAR: EKGRPTAB.

ENDLOOP.

DELETE EKGRPTAB WHERE EKGRP = SPACE.

SORT EKGRPTAB BY WERKS EKGRP.

FORMAT RESET.

WRITE:/1 SY-VLINE,2 'Plant:',PRAGETAB-WERKS,

'Purchase group wise split in %',109 SY-VLINE.

ULINE.

LOOP AT EKGRPTAB.

AT END OF EKGRP.

CLEAR: P0TO15,

P16TO30,

P31TO60,

P61TO90,

POV90,

TOT,

PEND.

SUM.

IF TOTAL NE 0.

P0TO15 = EKGRPTAB-0TO15 * 100 / TOTAL .

P16TO30 = EKGRPTAB-16TO30 * 100 / TOTAL.

P31TO60 = EKGRPTAB-31TO60 * 100 / TOTAL.

P61TO90 = EKGRPTAB-61TO90 * 100 / TOTAL.

POV90 = EKGRPTAB-OV90 * 100 / TOTAL.

TOT = EKGRPTAB-TOTAL * 100 / TOTAL.

ENDIF.

WRITE:/1 SY-VLINE,2(10) EKGRPTAB-EKGRP,SY-VLINE,

14(10) ' ',SY-VLINE,

26(10) TOT,SY-VLINE,

38(10) P0TO15,SY-VLINE,

50(10) P16TO30,SY-VLINE,

62(10) P31TO60,SY-VLINE,

74(10) P61TO90,SY-VLINE,

86(10) POV90,SY-VLINE,

98(10) ' ',SY-VLINE.

ENDAT.

AT LAST.

ULINE.

ENDAT.

ENDLOOP.

ENDAT.

AT LAST.

ULINE.

SUM.

CLEAR: P0TO15,

P16TO30,

P31TO60,

P61TO90,

POV90,

PEND,

TOT.

TOTAL = PRAGETAB-LTOT.

IF PRAGETAB-LTOT NE 0.

P0TO15 = PRAGETAB-0TO15 * 100 / PRAGETAB-LTOT.

P16TO30 = PRAGETAB-16TO30 * 100 / PRAGETAB-LTOT.

P31TO60 = PRAGETAB-31TO60 * 100 / PRAGETAB-LTOT.

P61TO90 = PRAGETAB-61TO90 * 100 / PRAGETAB-LTOT.

POV90 = PRAGETAB-OV90 * 100 / PRAGETAB-LTOT.

PEND = PRAGETAB-PEND * 100 / PRAGETAB-LTOT.

TOT = PRAGETAB-TOTAL * 100 / PRAGETAB-LTOT.

ENDIF.

FORMAT RESET.

WRITE:/0(109) 'S U M M A R Y' CENTERED.

SKIP.

WRITE:/2 'TOTAL NUMBER OF PRs FROM',ERDAT-LOW,'TO',

ERDAT-HIGH,':',54 PRAGETAB-LTOT,' 100.00',' %'.

WRITE:/2 'TOTAL NUMBER OF PRs CONVERTED TO PO:',54 PRAGETAB-TOTAL,

TOT,'%'.

WRITE:/2 'TOTAL PENDING:',54 PRAGETAB-PEND,PEND,'%'.

ULINE.

FORMAT COLOR = 3 INTENSIFIED ON.

WRITE:/1 SY-VLINE,2(10) 'Total',SY-VLINE,

14(10) ' ',SY-VLINE,

26(10) PRAGETAB-TOTAL COLOR = 2 INTENSIFIED ON,SY-VLINE,

38(10) PRAGETAB-0TO15,SY-VLINE,

50(10) PRAGETAB-16TO30,SY-VLINE,

62(10) PRAGETAB-31TO60,SY-VLINE,

74(10) PRAGETAB-61TO90,SY-VLINE,

86(10) PRAGETAB-OV90,SY-VLINE,

98(10) PRAGETAB-PEND COLOR = 6 INTENSIFIED ON,

SY-VLINE.

CLEAR: SOMEX.

HIDE: SOMEX.

ULINE.

WRITE:/1 SY-VLINE,2(10) '%',SY-VLINE,

14(10) 100,SY-VLINE,

26(10) TOT,SY-VLINE,

38(10) P0TO15,SY-VLINE,

50(10) P16TO30,SY-VLINE,

62(10) P31TO60,SY-VLINE,

74(10) P61TO90,SY-VLINE,

86(10) POV90,SY-VLINE,

98(10) PEND COLOR = 6 INTENSIFIED ON,SY-VLINE.

ULINE.

CLEAR: P0TO15,

P16TO30,

P31TO60,

P61TO90,

POV90,

TOT,

PEND.

REFRESH EKGRPTAB.

CLEAR: EKGRPTAB.

LOOP AT PRAGETAB.

MOVE-CORRESPONDING PRAGETAB TO EKGRPTAB.

APPEND EKGRPTAB.

CLEAR: EKGRPTAB.

ENDLOOP.

DELETE EKGRPTAB WHERE EKGRP = SPACE.

SORT EKGRPTAB BY EKGRP.

FORMAT RESET.

WRITE:/1 SY-VLINE,2 'Purchase group wise split in %',109 SY-VLINE.

ULINE.

LOOP AT EKGRPTAB.

AT END OF EKGRP.

CLEAR: P0TO15,

P16TO30,

P31TO60,

P61TO90,

POV90,

TOT,

PEND.

SUM.

IF TOTAL NE 0.

P0TO15 = EKGRPTAB-0TO15 * 100 / TOTAL .

P16TO30 = EKGRPTAB-16TO30 * 100 / TOTAL.

P31TO60 = EKGRPTAB-31TO60 * 100 / TOTAL.

P61TO90 = EKGRPTAB-61TO90 * 100 / TOTAL.

POV90 = EKGRPTAB-OV90 * 100 / TOTAL.

TOT = EKGRPTAB-TOTAL * 100 / TOTAL.

ENDIF.

WRITE:/1 SY-VLINE,2(10) EKGRPTAB-EKGRP,SY-VLINE,

14(10) ' ',SY-VLINE,

26(10) TOT,SY-VLINE,

38(10) P0TO15,SY-VLINE,

50(10) P16TO30,SY-VLINE,

62(10) P31TO60,SY-VLINE,

74(10) P61TO90,SY-VLINE,

86(10) POV90,SY-VLINE,

98(10) ' ',SY-VLINE.

ENDAT.

AT LAST.

ULINE.

ENDAT.

ENDLOOP.

ENDAT.

SET LEFT SCROLL-BOUNDARY COLUMN 38.

ENDLOOP.

TOP-OF-PAGE.

PERFORM PGHEAD.

TOP-OF-PAGE DURING LINE-SELECTION.

PERFORM PGHEAD2.

END-OF-PAGE.

ULINE.

END-OF-SELECTION.

----


  • FORM pghead *

----


  • ........ *

----


FORM PGHEAD.

FORMAT COLOR = 7 INTENSIFIED ON.

WRITE:/2 'Company:',BUKRS.

WRITE:/2 'Plant from:',WERKS-LOW,' to ',WERKS-HIGH.

WRITE:/2 'Document Type:',BSART-LOW,' to ',BSART-HIGH.

WRITE:/2 'PR.Date from:',ERDAT-LOW, 'to',ERDAT-HIGH.

WRITE:/2 'Purchasing group:',EKGRP-LOW,'to',EKGRP-HIGH.

WRITE:/2 'Run Date:',SY-DATUM DD/MM/YYYY.

ULINE.

FORMAT COLOR = 1 INTENSIFIED ON.

WRITE:/1 SY-VLINE,2(10) 'Category',SY-VLINE,

14(10) 'No.of.PRs',SY-VLINE,

26(10) 'No.of.PRs',SY-VLINE,

38(58) 'AGEING BREAK-UP (in Days). (PURCHASE)' CENTERED,SY-VLINE,

98(10) ' ',SY-VLINE.

WRITE:/1 SY-VLINE,2(10) ' ',SY-VLINE,

14(10) 'Created',SY-VLINE,

26(10) 'Converted',SY-VLINE,

38(72) SY-ULINE,109 SY-VLINE.

WRITE:/1 SY-VLINE,2(10) ' ',SY-VLINE,

14(10) ' ',SY-VLINE,

26(10) 'to POs',SY-VLINE,

38(10) '0-15' CENTERED,SY-VLINE,

50(10) '16-30' CENTERED,SY-VLINE,

62(10) '31-60' CENTERED,SY-VLINE,

74(10) '61-90' CENTERED,SY-VLINE,

86(10) 'Over 90' CENTERED,SY-VLINE,

98(10) 'PR.Pending' CENTERED,SY-VLINE.

ULINE.

ENDFORM.

----


  • FORM PGHEAD2 *

----


  • ........ *

----


FORM PGHEAD2.

CASE CURSOR1.

WHEN 'PRAGETAB-PEND'.

WRITE:/0(74) SY-ULINE.

WRITE:/1 SY-VLINE,SY-VLINE,

2(10) 'PR.Number',SY-VLINE,

14(6) 'Lin.No',SY-VLINE,

22(10) 'PrAp.Dt',SY-VLINE,

34(10) 'Priority',SY-VLINE,

46(10) 'Pur.Ageing',SY-VLINE,

58(15) 'Requisitioner',SY-VLINE.

WRITE:/0(74) SY-ULINE.

WHEN OTHERS.

WRITE:/0(93) SY-ULINE.

WRITE:/1 SY-VLINE,SY-VLINE,

2(10) 'PR.Number',SY-VLINE,

14(6) 'Lin.No',SY-VLINE,

22(10) 'PrApdt',SY-VLINE,

34(10) 'Priority',SY-VLINE,

46(10) 'PO.number',SY-VLINE,

58(10) 'PO.Date',SY-VLINE,

70(10) 'Pur.Ageing',SY-VLINE,

82(10) 'Plnt Age',SY-VLINE.

WRITE:/0(93) SY-ULINE.

ENDCASE.

ENDFORM.

----


  • FORM detprint *

----


  • ........ *

----


FORM DETPRINT.

CLEAR: PRDAYS.

PRDAYS = ( ITAB-LFDAT - ITAB-BADAT ) - 15.

CASE CURSOR1.

WHEN 'PRAGETAB-PEND'.

WRITE:/1 SY-VLINE,SY-VLINE,

2(10) ITAB-BANFN HOTSPOT ON,SY-VLINE,

14(6) ITAB-BNFPO,SY-VLINE,

22(10) ITAB-FRGDT,SY-VLINE,

34(10) ITAB-TEXT,SY-VLINE,

46(10) ITAB-DAYS,SY-VLINE,

58(35) ITAB-AFNAM,SY-VLINE.

HIDE ITAB.

SET LEFT SCROLL-BOUNDARY COLUMN 46.

WHEN OTHERS.

WRITE:/1 SY-VLINE,SY-VLINE,

2(10) ITAB-BANFN HOTSPOT ON,SY-VLINE,

14(6) ITAB-BNFPO,SY-VLINE,

22(10) ITAB-FRGDT,SY-VLINE,

34(10) ITAB-TEXT,SY-VLINE,

46(10) ITAB-EBELN HOTSPOT ON,SY-VLINE,

58(10) ITAB-BEDAT,SY-VLINE,

70(10) ITAB-DAYS,SY-VLINE,

82(10) PRDAYS,SY-VLINE.

HIDE ITAB.

SET LEFT SCROLL-BOUNDARY COLUMN 46.

ENDCASE.

ENDFORM.

AT LINE-SELECTION.

GET CURSOR FIELD CURSOR1.

WINDOW STARTING AT 1 1 ENDING AT 81 100.

SORT ITAB BY DAYS DESCENDING.

IF CURSOR1 = 'PRAGETAB-0TO15' AND SOMEX = 'X'.

WRITE:/ 'Plant:',PRAGETAB-WERKS,

/ 'PR type:',PRAGETAB-BSART,

/ 'Ageing between 0 to 15 days'.

WRITE:/0(93) SY-ULINE.

LOOP AT ITAB WHERE WERKS = PRAGETAB-WERKS AND

BSART = PRAGETAB-BSART AND

EBELN NE SPACE AND

DAYS >= 0 AND DAYS <= 15.

PERFORM DETPRINT.

AT LAST.

ENDAT.

ENDLOOP.

WRITE:/0(93) SY-ULINE.

ELSEIF CURSOR1 = 'PRAGETAB-16TO30' AND SOMEX = 'X'.

WRITE:/ 'Plant:',PRAGETAB-WERKS,

/ 'PR type:',PRAGETAB-BSART,

/ 'Ageing between 16 to 30 days'.

WRITE:/0(93) SY-ULINE.

LOOP AT ITAB WHERE WERKS = PRAGETAB-WERKS AND

BSART = PRAGETAB-BSART AND

EBELN NE SPACE AND

DAYS >= 16 AND DAYS <= 30.

PERFORM DETPRINT.

AT LAST.

ENDAT.

ENDLOOP.

WRITE:/0(93) SY-ULINE.

ELSEIF CURSOR1 = 'PRAGETAB-31TO60' AND SOMEX = 'X'.

WRITE:/ 'Plant:',PRAGETAB-WERKS,

/ 'PR type:',PRAGETAB-BSART,

/ 'Ageing between 31 to 60 days'.

WRITE:/0(93) SY-ULINE.

LOOP AT ITAB WHERE WERKS = PRAGETAB-WERKS AND

BSART = PRAGETAB-BSART AND

EBELN NE SPACE AND

DAYS >= 31 AND DAYS <= 60.

PERFORM DETPRINT.

AT LAST.

ENDAT.

ENDLOOP.

WRITE:/0(93) SY-ULINE.

ELSEIF CURSOR1 = 'PRAGETAB-61TO90' AND SOMEX = 'X'.

WRITE:/ 'Plant:',PRAGETAB-WERKS,

/ 'PR type:',PRAGETAB-BSART,

/ 'Ageing between 61 to 90 days'.

WRITE:/0(93) SY-ULINE.

LOOP AT ITAB WHERE WERKS = PRAGETAB-WERKS AND

BSART = PRAGETAB-BSART AND

EBELN NE SPACE AND

DAYS >= 61 AND DAYS <= 90.

PERFORM DETPRINT.

AT LAST.

ENDAT.

ENDLOOP.

WRITE:/0(93) SY-ULINE.

ELSEIF CURSOR1 = 'PRAGETAB-OV90' AND SOMEX = 'X'.

WRITE:/ 'Plant:',PRAGETAB-WERKS,

/ 'PR type:',PRAGETAB-BSART,

/ 'Ageing OVER 90 DAYS'.

WRITE:/0(93) SY-ULINE.

LOOP AT ITAB WHERE WERKS = PRAGETAB-WERKS AND

BSART = PRAGETAB-BSART AND

DAYS >= 91 AND

EBELN NE SPACE.

PERFORM DETPRINT.

AT LAST.

ENDAT.

ENDLOOP.

WRITE:/0(93) SY-ULINE.

ELSEIF CURSOR1 = 'PRAGETAB-PEND' AND SOMEX = 'X'.

WRITE:/ 'Plant:',PRAGETAB-WERKS,

/ 'PR type:',PRAGETAB-BSART,

/ 'Pending PRs'.

WRITE:/0(93) SY-ULINE.

LOOP AT ITAB WHERE WERKS = PRAGETAB-WERKS AND

BSART = PRAGETAB-BSART AND

EBELN = SPACE.

PERFORM DETPRINT.

AT LAST.

ENDAT.

ENDLOOP.

WRITE:/0(93) SY-ULINE.

ELSEIF CURSOR1 = 'ITAB-EBELN'.

SET PARAMETER ID 'BES' FIELD ITAB-EBELN.

CALL TRANSACTION 'ME23' AND SKIP FIRST SCREEN.

ELSEIF CURSOR1 = 'ITAB-BANFN'.

SET PARAMETER ID 'BAN' FIELD ITAB-BANFN.

CALL TRANSACTION 'ME53' AND SKIP FIRST SCREEN.

ENDIF.

END-OF-SELECTION.

**************Modified on 14.02.2007**************************

&----


*& Form callerr

&----


  • text

----


  • -->P_0727 text

----


FORM CALLERR USING TEXT.

CALL FUNCTION 'FC_POPUP_ERR_WARN_MESSAGE'

EXPORTING

POPUP_TITLE = 'Uploading of Lead Time'

IS_ERROR = 'X'

MESSAGE_TEXT = TEXT

START_COLUMN = 30

START_ROW = 8.

EXIT.

ENDFORM. " callerr

Thanks a lot & waiting for your reply.