07-19-2007 7:00 AM
hi
how to develo a report that displays vendor , porder and material details.
07-19-2007 7:02 AM
Hi,
Develop only when it is not exist or drastic changes.
Check Information System where many reports are avaialble.
Reward if useful!
07-19-2007 7:05 AM
if you wish to develop a custom report, you need to select your data from the following tables...
LFA1 - vendor master data
MARA - material master data
EKKO - purchase order header, -
this table contains the vendor field (lifnr)
EKPO - purchase order items -
this table contains the materials (matnr)
see the respective fields for your specific requirements....
07-19-2007 7:05 AM
Hi,
Check the standard reports : ME2L and ME2M for this requirement.
you can check the data from table EKKO and EKPO for this requirement, if you are creating new report.
Reward points, if helpful,
sandeep kaushik
07-19-2007 7:06 AM
Hi
See the sample report using LFA1,EKKO,EKPO tables Modify as per your requirement
&----
*& Report ZMM_PO_REPORT
&----
REPORT ZMM_PO_REPORT message-Id yb
NO STANDARD PAGE HEADING
LINE-COUNT 60(1)
LINE-SIZE 230.
************************************************************************
D A T A B A S E T A B L E S D E C L A R A T I O N
************************************************************************
TABLES: lfa1, " Vendor Master
t161, " PO Doc Types
t024, " Purchase Groups
ekko. " PO Header
************************************************************************
T Y P E S D E C L A R A T I O N S
************************************************************************
Purchase Orders Main Structure
TYPES: BEGIN OF s_po,
ebeln TYPE ebeln, " PO No.
ebelp TYPE ebelp, " PO Item
bstyp TYPE bstyp, " PO Category
bukrs TYPE bukrs, " Company Code
bsart TYPE bbsrt, " PO Type
lifnr TYPE lifnr, " Vendor No
ekgrp TYPE bkgrp, " Purchase Group
waers TYPE waers, " Currency
bedat TYPE etbdt, " PO Date
txz01 TYPE txz01, " Material Text
werks TYPE ewerk, " Plant
lgort TYPE lgort_d, " Storage Location
matkl TYPE matkl, " Material Group
menge TYPE bamng, " PR Quantity
meins TYPE bamei, " UOM
bprme TYPE bbprm, " Price Unit
netpr TYPE netpr, " Net price
peinh TYPE peinh, " Price Unit UOM
pstyp TYPE pstyp, " Item Category
knttp TYPE knttp, " Account Assignment Category
END OF s_po.
Purchase Orders History Structure
TYPES: BEGIN OF s_account,
ebeln TYPE ebeln, " PO No.
ebelp TYPE ebelp, " PO Item
gjahr TYPE mjahr, " Fiscal Year
belnr TYPE mblnr, " PO Invoice No
menge TYPE menge_d, " PR Quantity
wrbtr TYPE wrbtr, " Price in Local Currency
dmbtr TYPE dmbtr, " Price in Foreign Currency
waers TYPE waers, " Currency
shkzg TYPE shkzg, " Dr/Cr Indicator
END OF s_account.
Purchase Orders History Structure(Item Sum)
TYPES: BEGIN OF s_inv_sum,
ebeln TYPE ebeln, " PO No.
ebelp TYPE ebelp, " PO Item
menge TYPE menge_d, " PR Quantity
wrbtr TYPE wrbtr, " Price in Foreign Currency
waers TYPE waers, " Currency
END OF s_inv_sum.
Purchase Orders Main Structure
TYPES: BEGIN OF s_rep,
lifnr TYPE lifnr, " Vendor No
ebeln TYPE ebeln, " PO No.
ebelp TYPE ebelp, " PO Item
bstyp TYPE bstyp, " PO Category
bsart TYPE bbsrt, " PO Type
ekgrp TYPE bkgrp, " Purchase Group
waers TYPE waers, " Currency
bedat TYPE etbdt, " PO Date
txz01 TYPE txz01, " Material Text
werks TYPE ewerk, " Plant
lgort TYPE lgort_d, " Storage Location
matkl TYPE matkl, " Material Group
menge TYPE bamng, " PR Quantity
meins TYPE bamei, " UOM
bprme TYPE bbprm, " Price Unit
netpr TYPE netpr, " Net price
peinh TYPE peinh, " Price Unit UOM
pstyp TYPE pstyp, " Item Category
knttp TYPE knttp, " Account Assignment Category
name1 TYPE name1, " Plant
orewr TYPE netpr, " To be Invoiced Price
curr TYPE waers, " Inv Doc Currency
END OF s_rep.
************************************************************************
D A T A D E C L A R A T I O N S
************************************************************************
DATA: gv_title1 TYPE sylisel, " Report title
gv_dial. " Color flag
************************************************************************
C O N S T A N T S D E C L A R A T I O N S
************************************************************************
CONSTANTS: c_x VALUE 'X', " Flag X
c_h VALUE 'H', " Debit
c_vgabe TYPE vgabe VALUE '2'. " Transaction Type
************************************************************************
I N T E R N A L T A B L E S D E C L A R A T I O N S
************************************************************************
DATA: i_po TYPE STANDARD TABLE OF s_po WITH HEADER LINE,
" Purchase Order
i_inv TYPE STANDARD TABLE OF s_inv_sum WITH HEADER LINE,
" PO Invoice Values
i_rep TYPE STANDARD TABLE OF s_rep WITH HEADER LINE,
" PO Invoice Values
i_ekbe TYPE STANDARD TABLE OF s_account WITH HEADER LINE.
" PO Invoice Values
************************************************************************
S E L E C T I O N S C R E E N *
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_lifnr FOR lfa1-lifnr MATCHCODE OBJECT kred,
s_ebeln FOR ekko-ebeln MATCHCODE OBJECT mekk,
s_bsart FOR t161-bsart,
s_ekgrp FOR t024-ekgrp,
s_bedat FOR ekko-bedat.
SELECTION-SCREEN END OF BLOCK b1.
************************************************************************
I N I T I A L I Z A T I O N *
************************************************************************
INITIALIZATION.
************************************************************************
A T S E L E C T I O N - S C R E E N *
************************************************************************
AT SELECTION-SCREEN.
Validate the screen fields
PERFORM validate_screen.
************************************************************************
S T A R T - O F - S E L E C T I O N *
************************************************************************
START-OF-SELECTION.
Fetch main data
PERFORM fetch_data.
************************************************************************
T O P - O F - P A G E *
************************************************************************
TOP-OF-PAGE.
Header of the List
PERFORM header.
************************************************************************
E N D - O F - P A G E *
************************************************************************
Footer
END-OF-PAGE.
ULINE.
************************************************************************
E N D - O F - S E L E C T I O N *
************************************************************************
END-OF-SELECTION.
Display the Report Output data
PERFORM display_data.
***********************************************************************
At Line-Selection
***********************************************************************
AT LINE-SELECTION.
When double clicked on EBELN display the details of Purchase Doc
PERFORM line_sel.
&----
*& Form validate_screen
&----
Validation of Selection Screen fields
----
FORM validate_screen .
Validation of Vendor Number
CLEAR lfa1-lifnr.
IF NOT s_lifnr[] IS INITIAL.
SELECT lifnr UP TO 1 ROWS
INTO lfa1-lifnr
FROM lfa1
WHERE lifnr IN s_lifnr.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e000 WITH 'Invalid Vendor'(002).
ENDIF.
ENDIF.
Validation of PO Number
CLEAR ekko-ebeln.
IF NOT s_ebeln[] IS INITIAL.
SELECT ebeln UP TO 1 ROWS
INTO ekko-ebeln
FROM ekko
WHERE ebeln IN s_ebeln.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e000 WITH 'Invalid Document Number'(003).
ENDIF.
ENDIF.
Validation of PO Document Type
CLEAR t161-bsart.
IF NOT s_bsart[] IS INITIAL.
SELECT bsart UP TO 1 ROWS
INTO t161-bsart
FROM t161
WHERE bsart IN s_bsart.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e000 WITH 'Invalid Purchase Document Type'(004).
ENDIF.
ENDIF.
Validation of Purchasing Group
CLEAR t024-ekgrp.
IF NOT s_ekgrp[] IS INITIAL.
SELECT ekgrp UP TO 1 ROWS
INTO t024-ekgrp
FROM t024
WHERE ekgrp IN s_ekgrp.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e000 WITH 'Invalid Purchasing Group'(005).
ENDIF.
ENDIF.
ENDFORM. " validate_screen
&----
*& Form fetch_data
&----
Fetching the PO related data from Database Tables
----
FORM fetch_data .
CLEAR i_po.
REFRESH i_po.
SELECT a~ebeln " PO No.
b~ebelp " PO Item
a~bstyp " PO Category
a~bukrs " Company Code
a~bsart " PO Type
a~lifnr " Vendor No
a~ekgrp " Purchase Group
a~waers " Currency
a~bedat " PO Date
b~txz01 " Material Text
b~werks " Plant
b~lgort " Storage Location
b~matkl " Material Group
b~menge " PR Quantity
b~meins " UOM
b~bprme " Price Unit
b~netpr " Net price
b~peinh " Price Unit UOM
b~pstyp " Item Category
b~knttp " Account Assignment Category
INTO TABLE i_po
FROM ekko AS a JOIN ekpo AS b
ON a~ebeln = b~ebeln
WHERE a~ebeln IN s_ebeln AND
a~lifnr IN s_lifnr AND
a~ekgrp IN s_ekgrp AND
a~bsart IN s_bsart AND
a~bedat IN s_bedat.
SORT i_po BY ebeln ebelp.
break-point.
IF NOT i_po[] IS INITIAL.
Fetch the PO History/Invoice Details from EKBE Table
CLEAR i_ekbe.
REFRESH i_ekbe.
SELECT ebeln " PO No.
ebelp " PO Item
gjahr " Fiscal Year
belnr " PO Invoice No
menge " PR Quantity
wrbtr " Price in Local Currency
dmbtr " Price in Foreign Currency
waers " Currency
shkzg " Dr/Cr Indicator
INTO TABLE i_ekbe
FROM ekbe
FOR ALL ENTRIES IN i_po
WHERE ebeln = i_po-ebeln AND
ebelp = i_po-ebelp AND
vgabe = c_vgabe.
break-point.
IF sy-subrc = 0.
SORT i_ekbe BY ebeln ebelp.
LOOP AT i_ekbe.
IF i_ekbe-shkzg = c_h.
i_ekbe-wrbtr = i_ekbe-wrbtr * -1.
ENDIF.
MODIFY i_ekbe.
ENDLOOP.
break-point.
Sum up the Item wise Invoice totals
LOOP AT i_ekbe.
AT END OF ebelp.
READ TABLE i_ekbe INDEX sy-tabix.
SUM.
MOVE-CORRESPONDING i_ekbe TO i_inv.
APPEND i_inv.
ENDAT.
CLEAR i_inv.
ENDLOOP.
SORT i_inv BY ebeln ebelp.
break-point.
ENDIF.
ENDIF.
Move the Vendor Name and Invoice Values to I_rep Internal Table
LOOP AT i_po.
MOVE-CORRESPONDING i_po TO i_rep.
CLEAR i_inv.
READ TABLE i_inv WITH KEY ebeln = i_po-ebeln
ebelp = i_po-ebelp.
IF sy-subrc = 0.
i_rep-orewr = ( i_po-menge - i_inv-menge ) * i_po-netpr.
i_rep-curr = i_inv-waers.
ELSE.
i_rep-orewr = i_po-menge * i_po-netpr.
i_rep-curr = i_po-waers.
ENDIF.
break-point.
Get the Vendor Name
CLEAR lfa1-name1.
SELECT SINGLE name1 FROM lfa1 INTO lfa1-name1
WHERE lifnr = i_po-lifnr.
IF sy-subrc = 0.
i_rep-name1 = lfa1-name1.
ENDIF.
APPEND i_rep.
CLEAR i_rep.
break-point.
ENDLOOP.
SORT i_rep BY lifnr ebeln ebelp.
DELETE i_rep WHERE orewr LE 0.
break-point.
ENDFORM. " fetch_data
&----
*& Form display_data
&----
Display the Report Output data
----
FORM display_data .
DATA: lv_flag, " New Flag
lv_rec TYPE i. " No of Records
CLEAR lv_rec.
IF i_rep[] IS INITIAL.
MESSAGE e000 WITH 'No Data found'(022).
ELSE.
LOOP AT i_rep.
Toggle Color
PERFORM toggle_color.
IF lv_flag <> space.
NEW-LINE.
ENDIF.
At New Purchase Document
AT NEW ebeln.
WRITE:/1 sy-vline, 2(10) i_rep-ebeln INTENSIFIED OFF.
lv_flag = c_x.
lv_rec = lv_rec + 1.
ENDAT.
WRITE: 1 sy-vline,
12 sy-vline,13(4) i_rep-bsart,
17 sy-vline,18(10) i_rep-lifnr,
28 sy-vline,29(35) i_rep-name1,
64 sy-vline,65(4) i_rep-ekgrp,
69 sy-vline,70(10) i_rep-bedat,
80 sy-vline,81(5) i_rep-ebelp,
86 sy-vline,87(40) i_rep-txz01,
127 sy-vline,128(9) i_rep-matkl,
137 sy-vline,138(1) i_rep-pstyp,
139 sy-vline,140(1) i_rep-knttp,
141 sy-vline,142(4) i_rep-werks,
146 sy-vline,147(4) i_rep-lgort,
151 sy-vline,152(13) i_rep-menge UNIT i_rep-meins,
165 sy-vline,166(3) i_rep-meins,
169 sy-vline,170(15) i_rep-netpr CURRENCY i_rep-waers,
185 sy-vline,186(4) i_rep-waers,
190 sy-vline,191(5) i_rep-peinh,
196 sy-vline,197(4) i_rep-bprme,
201 sy-vline,202(15) i_rep-orewr CURRENCY i_rep-curr,
217 sy-vline,218(4) i_rep-curr,
222 sy-vline,223(7) i_rep-bstyp centered,
230 sy-vline.
NEW-LINE.
hide: i_rep-ebeln.
ENDLOOP.
ULINE.
FORMAT COLOR OFF.
WRITE : /2 'Total Number of Purchasing Documents:'(025) COLOR 3,
lv_rec COLOR 3.
ENDIF.
ENDFORM. " display_data
&----
*& Form header
&----
Write the Report Header
----
FORM header .
FORMAT RESET.
header
WRITE:/1(230) 'LIST OF PURCHASE DOCUMENTS PER VENDOR'(006) CENTERED.
SKIP.
FORMAT COLOR COL_HEADING.
ULINE.
WRITE:/1 sy-vline,2(10) 'Pur.Doc.No'(006) CENTERED,
12 sy-vline,13(4) 'Type'(007),
17 sy-vline,18(10) 'Vendor'(008) CENTERED,
28 sy-vline,29(35) 'Name'(009) CENTERED,
64 sy-vline,65(4) 'PGrp'(010) CENTERED,
69 sy-vline,70(10) 'Doc.Date'(012) CENTERED,
80 sy-vline,81(5) 'Item'(011),
86 sy-vline,87(40) 'Material Short Text'(024) CENTERED,
127 sy-vline,128(9) 'Mat.Group'(013),
137 sy-vline,138(1) 'I',
139 sy-vline,140(1) 'A',
141 sy-vline,142(4) 'Plnt'(014),
146 sy-vline,147(4) 'SLoc'(015),
151 sy-vline,152(13) 'Quantity'(016) CENTERED,
165 sy-vline,166(3) 'UoM'(017),
169 sy-vline,170(15) 'Net Value'(018) CENTERED,
185 sy-vline,186(4) 'Curr'(019),
190 sy-vline,191(5) 'Per'(020),
196 sy-vline,197(4) 'Unit'(021),
201 sy-vline,202(15) 'To be Invoiced'(023) CENTERED,
217 sy-vline,218(4) 'Curr'(019),
222 sy-vline,223(7) 'Doc.Cat'(026),
230 sy-vline.
ULINE.
ENDFORM. " header
&----
*& Form toggle_color
&----
This routine alters the color of the records in the list
----
FORM toggle_color.
IF gv_dial = space.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
gv_dial = c_x.
ELSE.
FORMAT COLOR 1 INTENSIFIED OFF.
CLEAR gv_dial.
ENDIF.
ENDFORM. " toggle_color
&----
*& Form LINE_SEL
&----
*When double clicked on EBELN field display the details of Purchase Doc
----
FORM line_sel.
CASE sy-lsind.
WHEN '1'.
DATA: lv_field(20),
lv_value(10),
lv_bstyp like i_rep-bstyp.
clear: lv_bstyp,lv_value, lv_field.
GET CURSOR FIELD lv_field VALUE lv_value.
IF lv_field = 'I_REP-EBELN'.
IF NOT lv_value IS INITIAL.
READ LINE sy-index FIELD VALUE i_rep-bstyp
INTO lv_bstyp.
READ CURRENT LINE FIELD VALUE i_rep-bstyp INTO lv_bstyp.
if lv_bstyp = 'F'.
SET PARAMETER ID 'BES' FIELD lv_value.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
elseif ( lv_bstyp = 'K' or lv_bstyp = 'L' ).
SET PARAMETER ID 'VRT' FIELD lv_value.
CALL TRANSACTION 'ME33' AND SKIP FIRST SCREEN.
elseif lv_bstyp = 'A'.
SET PARAMETER ID 'ANF' FIELD lv_value.
CALL TRANSACTION 'ME43' AND SKIP FIRST SCREEN.
endif.
ENDIF.
ENDIF.
ENDCASE.
ENDFORM. " line_sel
<b>Reward points for useful Answers</b>
Regards
Anji
07-19-2007 7:07 AM
REPORT ZGS_TEST .
data : begin of itab occurs 0,
ebeln like ekko-ebeln,
lifnr like ekko-lifnr,
matnr like ekpo-matnr,
end of itab.
select a~ebeln
a~lifnr
b~matnr
from ekko as a
join ekpo as b
on b~ebeln eq a~ebeln
into table itab.
loop at itab.
write 😕 itab-ebeln, itab-lifnr, itab-matnr.
endloop.
reward points if useful,
Aleem.
07-19-2007 7:07 AM
hi Jyothsna,
Specify your selection screen and report output required!
Antony Thomas
Regards
07-19-2007 7:13 AM
<b>Here is the Program for Vendor wise Matrial ,purchase order staus report in ALV Grid </b> ...
REPORT ZVENDOR_MAT_PURCHASSEORDER_STATUS. .
TABLES : ekkn,ekko,EKPO,EKET,VBEP,LFA1.
TYPE-POOLS : slis, ICON.
DATA : DATE1 TYPE SY-DATUM.
data : begin of itab occurs 0,
VBELN like ekkn-VBELN, "SALE ORDER
VBELP LIKE EKKN-VBELP, "LINE ITEM
BEDAT LIKE EKKO-BEDAT, "DOCUMENT DATE
KUNNR LIKE VBAK-KUNNR, "SOLD TO PARTY
VBELN1 like VBEP-VBELN, "SALE ORDER1
POSNR1 LIKE VBEP-POSNR, "LINE ITEM
EDATU LIKE VBEP-EDATU, "END DATE
EMATN LIKE EKPO-EMATN, "STATUS
BMENG LIKE VBEP-BMENG, "DAYS
TDDAT LIKE VBEP-TDDAT, "START DATE
LMENG LIKE VBEP-LMENG, "DAYS -START DATE
LABNR LIKE EKPO-LABNR, "STATUS
PLNUM LIKE VBEP-PLNUM, "OVERALL STATUS
EKGRP like ekko-EKGRP, "PURCHASING GROUP
EBELN LIKE EKKN-EBELN, "PO NO
EBELP like ekkn-EBELP, "LINE ITEM
EINDT LIKE EKET-EINDT, "DELIVERY DATE
MATNR LIKE EKPO-MATNR, "MATERIAL NUMBER
TXZ01 LIKE EKPO-TXZ01, "MATERIAL TEXT
LIFNR LIKE EKKO-LIFNR, "VENDOR
MENGE LIKE EKPO-MENGE, "QUANTITY
WEMNG LIKE EKET-WEMNG, "GR QTY
WAMNG LIKE EKET-WAMNG, "BAL QTY
MEINS LIKE EKPO-MEINS, "OUn
NETPR LIKE EKPO-NETPR, "PRICE
LOEKZ LIKE EKPO-LOEKZ, "DELETED
LIFNR1 LIKE LFA1-LIFNR, "VENDOR
NAME1 LIKE LFA1-NAME1, "VENDOR NAME
WERKS LIKE EKPO-WERKS, "PLANT
end of itab.
DATA : BEGIN OF it_final OCCURS 0,
KUNNR LIKE VBAK-KUNNR, "SOLD TO PARTY
LABNR LIKE EKPO-LABNR, "STATUS
EMATN LIKE EKPO-EMATN, "STATUS
VBELN like ekkn-VBELN, "SALE ORDER
VBELP LIKE EKKN-VBELP, "LINE ITEM
BEDAT LIKE EKKO-BEDAT, "DOCUMENT DATE
EDATU LIKE VBEP-EDATU, "END DATE
TDDAT LIKE VBEP-TDDAT, "START DATE
PLNUM LIKE VBEP-PLNUM, "OVERALL STATUS
EKGRP like ekko-EKGRP, "PURCHASING GROUP
EBELN LIKE EKKN-EBELN, "PO NO
EBELP like ekkn-EBELP, "LINE ITEM
EINDT LIKE EKET-EINDT, "DELIVERY DATE
MATNR LIKE EKPO-MATNR, "MATERIAL NUMBER
TXZ01 LIKE EKPO-TXZ01, "MATERIAL TEXT
NAME1 LIKE LFA1-NAME1, "VENDOR NAME
MENGE LIKE EKPO-MENGE, "QUANTITY
WEMNG LIKE EKET-WEMNG, "GR QTY
WAMNG LIKE EKET-WAMNG, "BAL QTY
MEINS LIKE EKPO-MEINS, "OUn
NETPR LIKE EKPO-NETPR, "PRICE
WERKS LIKE EKPO-WERKS, "PLANT
END OF it_final.
DATA: color TYPE TABLE OF lvc_s_scol WITH HEADER LINE,
st_layout TYPE slis_layout_alv.
DATA : fcat TYPE slis_t_fieldcat_alv,
ls_fcat LIKE LINE OF fcat,
fheader TYPE TABLE OF slis_listheader WITH NON-UNIQUE DEFAULT KEY
WITH HEADER LINE INITIAL SIZE 0.
DATA :i_repid LIKE sy-repid,
gs_layout TYPE slis_layout_alv,
week type n.
SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: zso FOR ekkn-vbeln.
SELECT-OPTIONS: zpgr FOR ekko-EKGRP.
SELECT-OPTIONS: ZPL FOR EKPO-WERKS.
SELECTION-SCREEN END OF BLOCK bk1.
gs_layout-colwidth_optimize = 'X'.
select A~VBELN
A~VBELP
A~EBELN
A~EBELP
B~MATNR
B~TXZ01
B~MENGE
B~MEINS
B~NETPR
B~WERKS
B~LOEKZ
C~EINDT
C~WEMNG
D~EKGRP
D~LIFNR
D~BEDAT
INTO CORRESPONDING FIELDS OF TABLE ITAB
FROM EKKN AS A
INNER JOIN EKPO AS B ON A~EBELN = B~EBELN
AND A~EBELP = B~EBELP
INNER JOIN EKET AS C ON A~EBELN = C~EBELN
AND A~EBELP = C~EBELP
INNER JOIN EKKO AS D ON A~EBELN = D~EBELN
WHERE A~VBELN IN ZSO
AND D~EKGRP IN ZPGR
AND B~WERKS IN ZPL.
LOOP AT ITAB.
ITAB-WAMNG = ITAB-MENGE - ITAB-WEMNG.
SELECT SINGLE VBELN KUNNR
FROM VBAK INTO (ITAB-VBELN , ITAB-KUNNR )
WHERE VBELN = ITAB-VBELN.
SELECT SINGLE VBELN EDATU
FROM VBEP INTO (ITAB-VBELN , ITAB-EDATU)
WHERE VBELN = ITAB-VBELN.
DATE1 = SY-DATUM.
ITAB-BMENG = ITAB-EDATU - DATE1.
if itab-BMENG < 0.
ITAB-EMATN = 'OVER DUE'.
elseif itab-BMENG ge 0 AND itab-BMENG le 10.
ITAB-EMATN = 'CRITICAL'.
elseif itab-BMENG > 10.
ITAB-EMATN = 'UNDER FOLLOW-UP'.
endif.
SELECT SINGLE VBELN POSNR TDDAT
FROM VBEP INTO (ITAB-VBELN1 , ITAB-POSNR1 , ITAB-TDDAT)
WHERE VBELN = ITAB-VBELN AND
POSNR = ITAB-VBELP.
ITAB-LMENG = ITAB-TDDAT - DATE1.
if itab-LMENG < 0.
ITAB-LABNR = 'OVER DUE'.
elseif itab-LMENG ge 0 AND itab-LMENG le 10.
ITAB-LABNR = 'CRITICAL'.
elseif itab-LMENG > 10.
ITAB-LABNR = 'UNDER FOLLOW-UP'.
endif.
IF ITAB-WAMNG LE 0 OR
ITAB-LOEKZ = 'L' OR
ITAB-LOEKZ = 'S'.
ITAB-PLNUM = 'CLOSED'.
ELSE.
ITAB-PLNUM = 'OPEN'.
ENDIF.
SELECT SINGLE LIFNR NAME1
FROM LFA1 INTO (ITAB-LIFNR1 , ITAB-NAME1)
WHERE LIFNR = ITAB-LIFNR.
MODIFY ITAB.
ENDLOOP.
loop at itab.
move-corresponding itab to it_final.
append it_final.
endloop.
perform edit_mask.
i_repid = sy-repid.
PERFORM fieldcat.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = i_repid
i_callback_user_command = 'USER_COMMAND'
it_fieldcat = fcat
i_save = 'A'
TABLES
t_outtab = it_final
EXCEPTIONS
program_error = 1
OTHERS = 2.
*&---------------------------------------------------------------------*
*& Form fieldcat
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fieldcat .
MOVE sy-repid TO i_repid.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-decimals_out = 2.
ls_fcat-col_pos = 1.
ls_fcat-fieldname = 'KUNNR'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'Sold to Party'.
ls_fcat-emphasize = 'C310'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 6.
ls_fcat-fieldname = 'LABNR'.
ls_fcat-outputlen = 20.
ls_fcat-seltext_m = 'Window Start Status'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C510'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 5.
ls_fcat-fieldname = 'EMATN'.
ls_fcat-outputlen = 15.
ls_fcat-seltext_m = 'Window End Status'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C410'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 2.
ls_fcat-fieldname = 'VBELN'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'Sale Order'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C710'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 3.
ls_fcat-fieldname = 'VBELP'.
ls_fcat-outputlen = 5.
ls_fcat-seltext_m = 'Item'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C710'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 4.
ls_fcat-fieldname = 'EBELN'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'PO Number'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C710'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 7.
ls_fcat-fieldname = 'EBELP'.
ls_fcat-outputlen = 5.
ls_fcat-seltext_m = 'PO Item'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 8.
ls_fcat-fieldname = 'EKGRP'.
ls_fcat-outputlen = 3.
ls_fcat-seltext_m = 'Pur.Group'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 9.
ls_fcat-fieldname = 'BEDAT'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'PO Doc.Date'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 10.
ls_fcat-fieldname = 'EINDT'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'PO Delivery Date'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 11.
ls_fcat-fieldname = 'MATNR'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'Material Number'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 12.
ls_fcat-fieldname = 'TXZ01'.
ls_fcat-outputlen = 15.
ls_fcat-seltext_m = 'Description'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 13.
ls_fcat-fieldname = 'NAME1'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'Vendor'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C110'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 14.
ls_fcat-fieldname = 'MENGE'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'PO Quantity'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 15.
ls_fcat-fieldname = 'WEMNG'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'Quantity Recvd'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 16.
ls_fcat-fieldname = 'WAMNG'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'Bal Qty'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 17.
ls_fcat-fieldname = 'MEINS'.
ls_fcat-outputlen = 2.
ls_fcat-seltext_m = 'OUn'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 18.
ls_fcat-fieldname = 'NETPR'.
ls_fcat-outputlen = 8.
ls_fcat-seltext_m = 'NetPrice'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 19.
ls_fcat-fieldname = 'TDDAT'.
ls_fcat-outputlen = 15.
ls_fcat-seltext_m = 'Window Start date'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 20.
ls_fcat-fieldname = 'EDATU'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'Window End date'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 21.
ls_fcat-fieldname = 'PLNUM'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'PO Status'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C610'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 22.
ls_fcat-fieldname = 'WERKS'.
ls_fcat-outputlen = 5.
ls_fcat-seltext_m = 'Plant'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ENDFORM. " fieldcat
*&---------------------------------------------------------------------*
*& Form edit_mask
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM edit_mask .
loop at it_final.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = it_final-vbeln
IMPORTING
OUTPUT = it_final-vbeln.
Read table it_final.
* modify it_final.
endloop.
ENDFORM. " edit_mask
reward points if it is usefull ...
Girish
07-19-2007 7:17 AM
<b>Here is the Program for Vendor wise Matrial ,purchase order staus report in ALV Grid </b> ...
REPORT ZVENDOR_MAT_PURCHASSEORDER_STATUS. .
TABLES : ekkn,ekko,EKPO,EKET,VBEP,LFA1.
TYPE-POOLS : slis, ICON.
DATA : DATE1 TYPE SY-DATUM.
data : begin of itab occurs 0,
VBELN like ekkn-VBELN, "SALE ORDER
VBELP LIKE EKKN-VBELP, "LINE ITEM
BEDAT LIKE EKKO-BEDAT, "DOCUMENT DATE
KUNNR LIKE VBAK-KUNNR, "SOLD TO PARTY
VBELN1 like VBEP-VBELN, "SALE ORDER1
POSNR1 LIKE VBEP-POSNR, "LINE ITEM
EDATU LIKE VBEP-EDATU, "END DATE
EMATN LIKE EKPO-EMATN, "STATUS
BMENG LIKE VBEP-BMENG, "DAYS
TDDAT LIKE VBEP-TDDAT, "START DATE
LMENG LIKE VBEP-LMENG, "DAYS -START DATE
LABNR LIKE EKPO-LABNR, "STATUS
PLNUM LIKE VBEP-PLNUM, "OVERALL STATUS
EKGRP like ekko-EKGRP, "PURCHASING GROUP
EBELN LIKE EKKN-EBELN, "PO NO
EBELP like ekkn-EBELP, "LINE ITEM
EINDT LIKE EKET-EINDT, "DELIVERY DATE
MATNR LIKE EKPO-MATNR, "MATERIAL NUMBER
TXZ01 LIKE EKPO-TXZ01, "MATERIAL TEXT
LIFNR LIKE EKKO-LIFNR, "VENDOR
MENGE LIKE EKPO-MENGE, "QUANTITY
WEMNG LIKE EKET-WEMNG, "GR QTY
WAMNG LIKE EKET-WAMNG, "BAL QTY
MEINS LIKE EKPO-MEINS, "OUn
NETPR LIKE EKPO-NETPR, "PRICE
LOEKZ LIKE EKPO-LOEKZ, "DELETED
LIFNR1 LIKE LFA1-LIFNR, "VENDOR
NAME1 LIKE LFA1-NAME1, "VENDOR NAME
WERKS LIKE EKPO-WERKS, "PLANT
end of itab.
DATA : BEGIN OF it_final OCCURS 0,
KUNNR LIKE VBAK-KUNNR, "SOLD TO PARTY
LABNR LIKE EKPO-LABNR, "STATUS
EMATN LIKE EKPO-EMATN, "STATUS
VBELN like ekkn-VBELN, "SALE ORDER
VBELP LIKE EKKN-VBELP, "LINE ITEM
BEDAT LIKE EKKO-BEDAT, "DOCUMENT DATE
EDATU LIKE VBEP-EDATU, "END DATE
TDDAT LIKE VBEP-TDDAT, "START DATE
PLNUM LIKE VBEP-PLNUM, "OVERALL STATUS
EKGRP like ekko-EKGRP, "PURCHASING GROUP
EBELN LIKE EKKN-EBELN, "PO NO
EBELP like ekkn-EBELP, "LINE ITEM
EINDT LIKE EKET-EINDT, "DELIVERY DATE
MATNR LIKE EKPO-MATNR, "MATERIAL NUMBER
TXZ01 LIKE EKPO-TXZ01, "MATERIAL TEXT
NAME1 LIKE LFA1-NAME1, "VENDOR NAME
MENGE LIKE EKPO-MENGE, "QUANTITY
WEMNG LIKE EKET-WEMNG, "GR QTY
WAMNG LIKE EKET-WAMNG, "BAL QTY
MEINS LIKE EKPO-MEINS, "OUn
NETPR LIKE EKPO-NETPR, "PRICE
WERKS LIKE EKPO-WERKS, "PLANT
END OF it_final.
DATA: color TYPE TABLE OF lvc_s_scol WITH HEADER LINE,
st_layout TYPE slis_layout_alv.
DATA : fcat TYPE slis_t_fieldcat_alv,
ls_fcat LIKE LINE OF fcat,
fheader TYPE TABLE OF slis_listheader WITH NON-UNIQUE DEFAULT KEY
WITH HEADER LINE INITIAL SIZE 0.
DATA :i_repid LIKE sy-repid,
gs_layout TYPE slis_layout_alv,
week type n.
SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: zso FOR ekkn-vbeln.
SELECT-OPTIONS: zpgr FOR ekko-EKGRP.
SELECT-OPTIONS: ZPL FOR EKPO-WERKS.
SELECTION-SCREEN END OF BLOCK bk1.
gs_layout-colwidth_optimize = 'X'.
select A~VBELN
A~VBELP
A~EBELN
A~EBELP
B~MATNR
B~TXZ01
B~MENGE
B~MEINS
B~NETPR
B~WERKS
B~LOEKZ
C~EINDT
C~WEMNG
D~EKGRP
D~LIFNR
D~BEDAT
INTO CORRESPONDING FIELDS OF TABLE ITAB
FROM EKKN AS A
INNER JOIN EKPO AS B ON A~EBELN = B~EBELN
AND A~EBELP = B~EBELP
INNER JOIN EKET AS C ON A~EBELN = C~EBELN
AND A~EBELP = C~EBELP
INNER JOIN EKKO AS D ON A~EBELN = D~EBELN
WHERE A~VBELN IN ZSO
AND D~EKGRP IN ZPGR
AND B~WERKS IN ZPL.
LOOP AT ITAB.
ITAB-WAMNG = ITAB-MENGE - ITAB-WEMNG.
SELECT SINGLE VBELN KUNNR
FROM VBAK INTO (ITAB-VBELN , ITAB-KUNNR )
WHERE VBELN = ITAB-VBELN.
SELECT SINGLE VBELN EDATU
FROM VBEP INTO (ITAB-VBELN , ITAB-EDATU)
WHERE VBELN = ITAB-VBELN.
DATE1 = SY-DATUM.
ITAB-BMENG = ITAB-EDATU - DATE1.
if itab-BMENG < 0.
ITAB-EMATN = 'OVER DUE'.
elseif itab-BMENG ge 0 AND itab-BMENG le 10.
ITAB-EMATN = 'CRITICAL'.
elseif itab-BMENG > 10.
ITAB-EMATN = 'UNDER FOLLOW-UP'.
endif.
SELECT SINGLE VBELN POSNR TDDAT
FROM VBEP INTO (ITAB-VBELN1 , ITAB-POSNR1 , ITAB-TDDAT)
WHERE VBELN = ITAB-VBELN AND
POSNR = ITAB-VBELP.
ITAB-LMENG = ITAB-TDDAT - DATE1.
if itab-LMENG < 0.
ITAB-LABNR = 'OVER DUE'.
elseif itab-LMENG ge 0 AND itab-LMENG le 10.
ITAB-LABNR = 'CRITICAL'.
elseif itab-LMENG > 10.
ITAB-LABNR = 'UNDER FOLLOW-UP'.
endif.
IF ITAB-WAMNG LE 0 OR
ITAB-LOEKZ = 'L' OR
ITAB-LOEKZ = 'S'.
ITAB-PLNUM = 'CLOSED'.
ELSE.
ITAB-PLNUM = 'OPEN'.
ENDIF.
SELECT SINGLE LIFNR NAME1
FROM LFA1 INTO (ITAB-LIFNR1 , ITAB-NAME1)
WHERE LIFNR = ITAB-LIFNR.
MODIFY ITAB.
ENDLOOP.
loop at itab.
move-corresponding itab to it_final.
append it_final.
endloop.
perform edit_mask.
i_repid = sy-repid.
PERFORM fieldcat.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = i_repid
i_callback_user_command = 'USER_COMMAND'
it_fieldcat = fcat
i_save = 'A'
TABLES
t_outtab = it_final
EXCEPTIONS
program_error = 1
OTHERS = 2.
*&---------------------------------------------------------------------*
*& Form fieldcat
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fieldcat .
MOVE sy-repid TO i_repid.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-decimals_out = 2.
ls_fcat-col_pos = 1.
ls_fcat-fieldname = 'KUNNR'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'Sold to Party'.
ls_fcat-emphasize = 'C310'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 6.
ls_fcat-fieldname = 'LABNR'.
ls_fcat-outputlen = 20.
ls_fcat-seltext_m = 'Window Start Status'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C510'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 5.
ls_fcat-fieldname = 'EMATN'.
ls_fcat-outputlen = 15.
ls_fcat-seltext_m = 'Window End Status'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C410'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 2.
ls_fcat-fieldname = 'VBELN'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'Sale Order'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C710'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 3.
ls_fcat-fieldname = 'VBELP'.
ls_fcat-outputlen = 5.
ls_fcat-seltext_m = 'Item'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C710'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 4.
ls_fcat-fieldname = 'EBELN'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'PO Number'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C710'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 7.
ls_fcat-fieldname = 'EBELP'.
ls_fcat-outputlen = 5.
ls_fcat-seltext_m = 'PO Item'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 8.
ls_fcat-fieldname = 'EKGRP'.
ls_fcat-outputlen = 3.
ls_fcat-seltext_m = 'Pur.Group'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 9.
ls_fcat-fieldname = 'BEDAT'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'PO Doc.Date'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 10.
ls_fcat-fieldname = 'EINDT'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'PO Delivery Date'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 11.
ls_fcat-fieldname = 'MATNR'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'Material Number'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 12.
ls_fcat-fieldname = 'TXZ01'.
ls_fcat-outputlen = 15.
ls_fcat-seltext_m = 'Description'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 13.
ls_fcat-fieldname = 'NAME1'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'Vendor'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C110'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 14.
ls_fcat-fieldname = 'MENGE'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'PO Quantity'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 15.
ls_fcat-fieldname = 'WEMNG'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'Quantity Recvd'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 16.
ls_fcat-fieldname = 'WAMNG'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'Bal Qty'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 17.
ls_fcat-fieldname = 'MEINS'.
ls_fcat-outputlen = 2.
ls_fcat-seltext_m = 'OUn'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 18.
ls_fcat-fieldname = 'NETPR'.
ls_fcat-outputlen = 8.
ls_fcat-seltext_m = 'NetPrice'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 19.
ls_fcat-fieldname = 'TDDAT'.
ls_fcat-outputlen = 15.
ls_fcat-seltext_m = 'Window Start date'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 20.
ls_fcat-fieldname = 'EDATU'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'Window End date'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 21.
ls_fcat-fieldname = 'PLNUM'.
ls_fcat-outputlen = 10.
ls_fcat-seltext_m = 'PO Status'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C610'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ls_fcat-col_pos = 22.
ls_fcat-fieldname = 'WERKS'.
ls_fcat-outputlen = 5.
ls_fcat-seltext_m = 'Plant'.
ls_fcat-tabname = 'IT_FINAL'.
ls_fcat-emphasize = 'C210'.
APPEND ls_fcat TO fcat.
clear ls_fcat.
ENDFORM. " fieldcat
*&---------------------------------------------------------------------*
*& Form edit_mask
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM edit_mask .
loop at it_final.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = it_final-vbeln
IMPORTING
OUTPUT = it_final-vbeln.
Read table it_final.
* modify it_final.
endloop.
ENDFORM. " edit_mask
reward points if it is usefull ...
Girish