ลิขิตฟ้า หรือ จะสู้มานะคน

chon_pro
Location :
สมุทรปราการ Thailand

[Profile ทั้งหมด]

ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 12 คน [?]




ผมแค่อยากเขียน บันทึกเกี่ยวกับข้อมูลการทำงานของผมต่างๆ เพื่อเก็บเอาไว้ใช้ดูเวลาที่ผมหลงลืม และเพื่อเป็นประโยชน์ กับน้องๆๆๆ ทั้งหลาย
loaocat

Stat Counter :
Group Blog
 
All Blogs
 
Friends' blogs
[Add chon_pro's blog to your web]
Links
 

 
Goods Receive Report

report zmmr002 no standard page heading
line-size 245
line-count 65.
*-----------------------------------------------------------------------
* TABLES
*-----------------------------------------------------------------------
tables: t001k,t001,sadr,marm,mseg,mkpf,ekpo.
tables: t001w,t001z,makt,lfa1.
*-----------------------------------------------------------------------
* DATA DECLARATION
*-----------------------------------------------------------------------
data: begin of i_mseg occurs 5.
include structure mseg.
data: end of i_mseg.
*
data: begin of i_mkpf occurs 5.
include structure mkpf.
data: end of i_mkpf.
*
data: begin of i_lfa1 occurs 5.
include structure lfa1.
data: end of i_lfa1.
*
data: begin of i_ekpo occurs 5.
include structure ekpo.
data: end of i_ekpo.
*
data: begin of i_tab occurs 5,
werks like mseg-werks, "Plant
lgort like mseg-lgort, "Location
ebeln like ekpo-ebeln, "P/O no.
omeng like ekpo-menge, "Order Qty.
netpr like ekpo-netwr, "Order price
ebelp like ekpo-ebelp, "P/O item no.
budat like mkpf-budat, "Posting date
mblnr like mkpf-mblnr, "Document no.
bwart like mseg-bwart, "Movement type
xblnr like mkpf-xblnr, "Ref. doc. no.
charg like mseg-charg, "Batch
matnr like mseg-matnr, "Material no.
maktx like makt-maktx, "Material description
menge like mseg-menge, "Receiving Qty.
meins like mseg-meins, "U.O.M
dmbtr like mseg-dmbtr, "Amount in PO
lifnr like mseg-lifnr, "Vendor
kostl like mseg-kostl, "Cost center
ps_psp_pnr like mseg-ps_psp_pnr, "WBS element no
lfbnr like mseg-lfbnr, "Reverse document no.
banfn like ekpo-banfn, "P/R No.
name1 like lfa1-name1, "Vendor name
usnam like mkpf-usnam, "User name
end of i_tab.
*
data: v_comp_name(60),
v_fr_date like sy-datum,
v_to_date like sy-datum,
gc_flg like sy-subrc.
*-----------------------------------------------------------------------
* SELECTION SCREEN
*-----------------------------------------------------------------------
selection-screen begin of block b1 with frame title title1.
select-options: v_werks for mseg-werks default '0006',
v_lgort for mseg-lgort,
v_matnr for mseg-matnr,
v_mblnr for mkpf-mblnr,
v_budat for mkpf-budat,
v_lifnr for mseg-lifnr,
v_ebeln for mseg-ebeln,
v_kostl for mseg-kostl,
v_ps_psp for mseg-ps_psp_pnr,
v_usnam for mkpf-usnam.
parameters: v_mjahr like mkpf-mjahr,
v_comp like t001-bukrs default '0006'.
selection-screen end of block b1.
*-----------------------------------------------------------------------
* INITIALIZATION
*-----------------------------------------------------------------------
initialization.
title1 = 'Selection Criteria'.
v_budat-sign = 'I'.
v_budat-option = 'BT'.
concatenate sy-datum(4) sy-datum+4(2) '01' into v_budat-low.
v_budat-high = sy-datum.
v_mjahr = sy-datum(4).
append v_budat.
*-----------------------------------------------------------------------
* START-OF-SELECTION
*-----------------------------------------------------------------------
start-of-selection.
refresh: i_mseg,i_mkpf,i_ekpo,i_lfa1.
perform select_mkpf using gc_flg.
check gc_flg = 0.
perform select_mseg using gc_flg.
check gc_flg = 0.
perform select_mseg_reverse using gc_flg.
check gc_flg = 0.
perform select_pr_item.
perform select_vendor_name.
perform pros_inti_rep.
*--------------------------------------------------------------
* END OF SELECTION
*--------------------------------------------------------------
end-of-selection.
tables: t001l.
data: i_matnr type i,
p_matnr(15),
f_po,
f_itm.
select single * from t001 where bukrs = v_comp.
v_comp_name = t001-butxt.
sort i_tab ascending by werks lgort ebeln ebelp budat.
loop at i_tab.
at new werks.
select single * from t001w where werks = i_tab-werks.
new-page.
endat.
at new ebeln.
f_po = 'Y'.
endat.
at new ebelp.
f_itm = 'Y'.
endat.
i_matnr = i_tab-matnr.
p_matnr = i_matnr.
condense p_matnr.
if f_po = 'Y'.
f_po = 'N'.
f_itm = 'N'.
write: / i_tab-ebeln,
12 i_tab-ebelp no-zero left-justified no-sign,
24 i_tab-mblnr,
36 i_tab-budat,
48 i_tab-bwart,
54 p_matnr(15),
69 i_tab-maktx(20),
92 i_tab-lifnr,
102 i_tab-name1(23),
119(13) i_tab-omeng decimals 2 right-justified no-sign,
135(13) i_tab-menge decimals 2 right-justified,
150 i_tab-meins,
155(13) i_tab-dmbtr decimals 2 right-justified,
169(11) i_tab-netpr decimals 2 right-justified no-sign,
182 i_tab-xblnr,
202 i_tab-kostl,
212 i_tab-ps_psp_pnr,
229 i_tab-usnam.
elseif f_itm = 'Y'.
f_itm = 'N'.
write: /12 i_tab-ebelp no-zero left-justified no-sign,
24 i_tab-mblnr,
36 i_tab-budat,
48 i_tab-bwart,
54 p_matnr(15),
69 i_tab-maktx(20),
92 i_tab-lifnr,
102 i_tab-name1(23),
119(13) i_tab-omeng decimals 2 right-justified no-sign,
135(13) i_tab-menge decimals 2 right-justified,
150 i_tab-meins,
155(13) i_tab-dmbtr decimals 2 right-justified,
169(11) i_tab-netpr decimals 2 right-justified no-sign,
182 i_tab-xblnr,
202 i_tab-kostl,
212 i_tab-ps_psp_pnr,
229 i_tab-usnam.
else.
write: /24 i_tab-mblnr,
36 i_tab-budat,
48 i_tab-bwart,
54 p_matnr(15),
69 i_tab-maktx(20),
92 i_tab-lifnr,
102 i_tab-name1(23),
135(13) i_tab-menge decimals 2 right-justified,
150 i_tab-meins,
155(13) i_tab-dmbtr decimals 2 right-justified,
182 i_tab-xblnr,
202 i_tab-kostl,
212 i_tab-ps_psp_pnr,
229 i_tab-usnam.
endif.
at end of ebelp.
sum.
write: /119(13) sy-uline,
135(13) sy-uline,
155(13) sy-uline,
/50 '*** Total by Item ***',
119(13) i_tab-omeng decimals 2 right-justified no-sign,
135(13) i_tab-menge decimals 2 right-justified,
155(13) i_tab-dmbtr decimals 2 right-justified,
/119(13) sy-uline,
135(13) sy-uline,
155(13) sy-uline.
endat.
at end of werks.
sum.
write: /50 '*** Total by plant ***',
155(13) i_tab-dmbtr decimals 2 right-justified,
/155(13) sy-uline.
endat.
endloop.
*--------------------------------------------------------------
* TOP-OF-PAGE
*--------------------------------------------------------------
top-of-page.
write: /107 v_comp_name,
230 'Date:',sy-datum dd/mm/yyyy.
write: /105 'List of GR material document',
230 'Page:', sy-pagno left-justified,
/102 'From:',v_budat-low dd/mm/yyyy,' To:',
v_budat-high dd/mm/yyyy,
230 'Pgm : ZMMR002'.
write: / 'Plant:',i_tab-werks,' ',t001w-name1,
230 'Time:',sy-uzeit left-justified.
uline /(245).
write: / 'PO no.',
12 'Item no.',
24 'Doc. no.',
36 'Post date',
48 'Mvt.',
54 'Mat. no.',
69 'Description',
92 'Vendor',
102 'Vendor name',
119(13) 'Order Qty.' right-justified,
135(13) 'Recv Qty.' right-justified,
150 'UOM',
155(13) 'Amount' right-justified,
169(11) 'Price' right-justified,
182 'Deliv note',
202 'Cost cc.',
212 'Capex no.',
229 'User Name'.
uline /(245).
*&---------------------------------------------------------------------*
*& Form select_mkpf
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GC_FLG text
*----------------------------------------------------------------------*
form select_mkpf using p_gc_flg.
select * from mkpf into table i_mkpf
where budat in v_budat and
usnam in v_usnam and
mblnr in v_mblnr and
mjahr = v_mjahr.
p_gc_flg = sy-subrc.
endform. " select_mkpf
*&---------------------------------------------------------------------*
*& Form select_mseg
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GC_FLG text
*----------------------------------------------------------------------*
form select_mseg using p_gc_flg.
select * from mseg into table i_mseg
for all entries in i_mkpf
where mblnr = i_mkpf-mblnr and
mjahr = i_mkpf-mjahr and
bwart between '101' and '104' and
werks in v_werks and
lgort in v_lgort and
matnr in v_matnr and
lifnr in v_lifnr and
ebeln in v_ebeln and
kostl in v_kostl and
ps_psp_pnr in v_ps_psp.
p_gc_flg = sy-subrc.
endform. " select_mseg
*&---------------------------------------------------------------------*
*& Form select_pr_item
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form select_pr_item .
data li_tab like i_mseg occurs 0 with header line.
li_tab[] = i_mseg[].
sort li_tab by ebeln ebelp.
delete adjacent duplicates from li_tab comparing ebeln ebelp.
select * from ekpo into table i_ekpo
for all entries in li_tab
where ebeln = li_tab-ebeln and
ebelp = li_tab-ebelp.
endform. " select_pr_item
*&---------------------------------------------------------------------*
*& Form selc_vendor_name
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form select_vendor_name .
data: li_tab like i_mseg occurs 0 with header line,
li_tab2 like i_mseg occurs 0 with header line.

li_tab[] = i_mseg[].
sort li_tab by lifnr.
delete adjacent duplicates from li_tab comparing lifnr.
select * from lfa1 into table i_lfa1
for all entries in li_tab
where lifnr = li_tab-lifnr.
endform. " select_vendor_name
*&---------------------------------------------------------------------*
*& Form pros_inti_rep
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form pros_inti_rep .
loop at i_mseg.
clear i_tab.
move-corresponding i_mseg to i_tab.
clear i_mkpf.
read table i_mkpf with key mblnr = i_mseg-mblnr
mjahr = i_mseg-mjahr.
move-corresponding i_mkpf to i_tab.
clear i_ekpo.
read table i_ekpo with key ebeln = i_mseg-ebeln
ebelp = i_mseg-ebelp.
i_tab-banfn = i_ekpo-banfn.
i_tab-maktx = i_ekpo-txz01.
i_tab-netpr = i_ekpo-netpr.
i_tab-omeng = i_ekpo-menge.
i_tab-netpr = i_ekpo-netpr.
clear i_lfa1.
read table i_lfa1 with key lifnr = i_mseg-lifnr.
i_tab-name1 = i_lfa1-name1.
if i_mseg-matnr is initial.
i_tab-menge = i_mseg-erfmg.
i_tab-meins = i_mseg-erfme.
endif.
*
* IF i_MSEG-SHKZG = 'H'.
* I_TAB-MENGE = 0 - i_tab-MENGE.
* I_TAB-DMBTR = 0 - i_tab-DMBTR.
* ENDIF.
* if i_mseg-bwart = '101' or i_mseg-bwart = '103'.
* i_tab-lfbnr = ' '.
* endif.
if i_mseg-dmbtr = 0.
i_tab-dmbtr = i_tab-menge * i_tab-netpr.
endif.
append i_tab.
endloop.
endform. " pros_inti_rep
*&---------------------------------------------------------------------*
*& Form select_mseg_reverse
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GC_FLG text
*----------------------------------------------------------------------*
form select_mseg_reverse using p_gc_flg.
data: li_tab like i_mseg occurs 0 with header line.

refresh li_tab.
li_tab[] = i_mseg[].
delete li_tab where bwart = '101' or bwart = '103'.
sort li_tab by lfbja lfbnr lfpos.
loop at i_mseg where bwart = '101' or bwart = '103'.
read table li_tab with key lfbnr = i_mseg-mblnr
lfbja = i_mseg-mjahr
lfpos = i_mseg-zeile.
if sy-subrc = 0.
delete i_mseg.
endif.
endloop.
delete i_mseg where bwart = '102' or bwart = '104'.
if i_mseg[] is initial.
p_gc_flg = 5.
else.
p_gc_flg = 0.
endif.
endform. " select_mseg_reverse


Create Date : 05 พฤศจิกายน 2552
Last Update : 5 พฤศจิกายน 2552 9:01:16 น. 0 comments
Counter : 587 Pageviews.

ชื่อ : * blog นี้ comment ได้เฉพาะสมาชิก
Comment :
  *ส่วน comment ไม่สามารถใช้ javascript และ style sheet
 
 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.