10-27-2007 5:40 AM
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
10-27-2007 5:44 AM
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
10-27-2007 5:47 AM
Hi senthil
thnks for ur fast reply.
it is in classical report, & for in one hotspot area. kindly help me.
10-27-2007 6:03 AM
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
10-27-2007 6:12 AM
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
10-27-2007 6:19 AM
hi,
could you paste your coding here. i will check it out.
Senthil kumar
10-27-2007 6:39 AM
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..
10-27-2007 7:44 AM
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
10-27-2007 7:52 AM
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.