CharlieShen

新人,大家多关照啦@_@

  博客中心 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 登录 ::
  3994 随笔 :: 0 文章 :: 20 评论 :: 0 Trackbacks
Cached @ 2025/4/27 0:45:45Control ASP.skins_cogitation_controls_blogstats_ascx
<2007年8月>
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678

留言簿(14)

随笔档案

文章档案

搜索

最新评论

阅读排行榜

评论排行榜

Cached @ 2025/4/27 0:45:45Control ASP.skins_cogitation_controls_singlecolumn_ascx

ABAP--包材分配表

网上找到的,明天试试

REPORTZTY_MM_0018MESSAGE-IDzwwerrors.
*程序名称:包材分配表(ZTY_MM_0018)
*功能描述:自动分配包装材料库存
*程序建立日期:2004-09-14
*最后修改日期日期
performprint-header.
tables:makt,  "物料管理
       mkol,  "供应商的特殊库存
       mard,  "物料的仓储位置数据
       mara,
       ekpo,  "采购订单行项目
       ekko,  "采购订单表头
       t023t, "物料组描述
       eket,  "计划协议计划行
       equk,  "配额文件:标题
       equp,  "配额文件:项目
       resb,  "预定/相关需求
       jest,  "对象状态
       aufk,  "订单主数据
       afpo,  "订单项
       lfa1.  "供应商主数据
data:beginofitemoccurs0,
          matkllikeekpo-matkl,  "物料组
          WGBEZliket023t-WGBEZ, "物料组描述
          matnrlikemakt-matnr,  "物料编码
          maktxlikemakt-maktx,  "物料描述
          fullname(50)typec,    "供应商组合
          wponumlikeekpo-menge, "供应商未清订单
          wmengelikeekpo-menge, "供应商寄售库存
          SLABSlikemkol-SLABS,  "包材库存
          labstlikemard-labst,  "包料在线库存
          lifnrlikelfa1-lifnr,  "供应商编码
          groeslikemara-groes,  "大小/量纲
          wqyhlikeekpo-menge,   "未清要货计划
          fpjhlikeekpo-menge,   "分配计划
     endofitem.
data:struclikeitem.
data:itemclikeitemoccurs0withheaderline.
data:beginoftekpooccurs0,
          ebelnlikeekpo-ebeln,  "采购订单号
          ebelplikeekpo-ebelp,  "行项目号
          matnrlikeekpo-matnr,  "物料编码
          mengelikeekpo-menge,  "订单数量
    endoftekpo.
data:beginoftekkooccurs0,
          ebelnlikeekko-ebeln,  "采购订单号
          lifnrlikeekko-lifnr,  "供应商编号
    endoftekko.
dataflagtypeivalue0.
data:beginofteketoccurs0,
          ebelnlikeeket-ebeln,  "采购订单号
          ebelplikeeket-ebelp,  "行项目号
          wemnglikeeket-wemng,  "数量
    endofteket.
data:beginoftwpooccurs0,
          ebelnlikeekpo-ebeln,  "采购订单号
          ebelplikeekpo-ebelp,  "行项目号
          matnrlikeekpo-matnr,  "物料编码
          mengelikeekpo-menge,  "订单数量
          lifnrlikeekko-lifnr,  "供应商
    endoftwpo.
data:beginoftwpo2occurs0,
          matnrlikeekpo-matnr,  "物料编码
          mengelikeekpo-menge,  "未清数量
          lifnrlikeekko-lifnr,  "供应商编码
    endoftwpo2.
data:beginoftitempoccurs0,
          matnrlikeekpo-matnr,  "物料编码
          lifnrlikeekko-lifnr,  "供应商编码
          wponumlikeekpo-menge, "供应商未清订单
          wmengelikeekpo-menge, "供应商寄售库存
          slabslikemkol-slabs,  "包材库存
          labstlikemard-labst,  "包材在线库存
          wqyhlikeekpo-menge,   "未清要货计划
          fpjhlikeekpo-menge,    "分配计划
    endoftitemp.
constantsmatnrlow(18)typecvalue'000000000002300000'.
constantsmatnrhigh(18)typecvalue'000000000002399999'.
datayearlikesy-datum.
datacyear(4)typec.
data:beginoftmaraoccurs0,
         matnrlikemara-matnr,  "物料编码
         matkllikemara-matkl,  "物料组
         groeslikemara-groes,  "大小/量纲
     endoftmara.
SELECTION-SCREEN:BEGINOFBLOCKFRAME01
  WITHFRAMETITLEText-001.
  select-optionss_lifnrforlfa1-lifnr.
  select-options:s_matnrformakt-matnr.
  select-options:s_matklfort023t-matkl.
  parametersp_werkslikevbap-werksobligatorydefault'8000'.
  select-options:s_SPARTformara-spart.
SELECTION-SCREEN:ENDOFBLOCKFRAME01.
SELECTION-SCREEN:BEGINOFBLOCKFRAME02
  WITHFRAMETITLETEXT-002.
SELECTION-SCREENCOMMENT/5(68)TEXT-003.
SELECTION-SCREEN:ENDOFBLOCKFRAME02.
SELECTION-SCREEN:BEGINOFBLOCKFRAME03
  WITHFRAMETITLETEXT-004.
SELECTION-SCREENCOMMENT/5(68)TEXT-005.
SELECTION-SCREEN:ENDOFBLOCKFRAME03.
start-of-selection.
year=sy-datum.
cyear=year+0(4).
*获取符合条件的记录
select*intocorrespondingfieldsoftabletmarafrommara
    wheremtart='ZVER'andmatklins_matkl
    andmatnrins_matnrandLVORM<>'X'andspartins_spart.

select*intocorrespondingfieldsoftabletekpofromekpo
    wherematnrins_matnrandmatklins_matkl
    andloekz<>'L'andmatnrbetweenmatnrlowandmatnrhigh
    andwerks=p_werks.
sorttekpobyebelnebelp.
select*intocorrespondingfieldsoftabletekkofromekko
          whereloekz<>'L'andlifnrins_lifnr.
sorttekkobyebeln.
ifnots_lifnrisinitial.
flag=0.
loopattekpo.
    loopattekkowhereebeln=tekpo-ebeln.
         flag=1.
         exit.
    endloop.
    ifflag=0.
        deletetekpo.
    else.
        flag=0.
    endif.
endloop.
endif.
*减去已清PO
loopattekpo.
   select*appendingcorrespondingfieldsoftableteketfromeket
         whereebeln=tekpo-ebelnandebelp=tekpo-ebelp.
endloop.
sortteketbyebelnebelp.
loopattekpo.
   loopatteketwhereebeln=tekpo-ebelnandebelp=tekpo-ebelp.
         tekpo-menge=tekpo-menge-teket-wemng.
         modifytekpo.
   endloop.
endloop.
data:beginoftlifoccurs0,
         lifnrlikelfa1-lifnr,  "供应商编号
     endoftlif.
loopattekpo.
   twpo-ebeln=tekpo-ebeln.
   twpo-ebelp=tekpo-ebelp.
   twpo-matnr=tekpo-matnr.
   twpo-menge=tekpo-menge.
   loopattekkowhereebeln=tekpo-ebeln.
       twpo-lifnr=tekko-lifnr.
       exit.
   endloop.
   appendtwpo.
endloop.
*按物料,供应商编码合并记录
sorttwpobymatnrlifnr.
readtabletwpoindex1.
twpo2-matnr=twpo-matnr.
twpo2-menge=0.
twpo2-lifnr=twpo-lifnr.
loopattwpo.
    iftwpo-matnr=twpo2-matnrandtwpo-lifnr=twpo2-lifnr.
          twpo2-menge=twpo2-menge+twpo-menge.
    else.
       appendtwpo2.
       twpo2-matnr=twpo-matnr.
       twpo2-menge=twpo-menge.
       twpo2-lifnr=twpo-lifnr.
    endif.
endloop.
appendtwpo2.

sorttekkobylifnr.
readtabletekkoindex1.
tlif-lifnr =tekko-lifnr.
loopattekko.
   iftlif-lifnr<>tekko-lifnr.
        appendtlif.
        tlif-lifnr=tekko-lifnr.
   endif.
endloop.
appendtlif.
sorttlifbylifnr.

*供应商寄售库存
data:beginoftmkoloccurs0,
         matnrlikemkol-matnr,
         lifnrlikemkol-lifnr,
         slabslikemkol-slabs,
    endoftmkol.
data:tmkol1liketmkoloccurs0withheaderline.
loopattlif.
   select*appendingcorrespondingfieldsoftabletmkolfrommkol
          wherelifnr=tlif-lifnr
          andlvorm<>'X'andwerks=p_werks.
endloop.
loopattmkol.
    tmkol1-matnr=tmkol-matnr.
    tmkol1-lifnr=tmkol-lifnr.
    tmkol1-slabs=tmkol-slabs.
    collecttmkol1.
endloop.
loopattwpo2.
   titemp-matnr=twpo2-matnr.
   titemp-lifnr=twpo2-lifnr.
   titemp-wponum=twpo2-menge.
   appendtitemp.
endloop.
flag=0.
loopattmkol1.
   loopattitempwherematnr=tmkol1-matnrandlifnr=tmkol1-lifnr.
        titemp-wmenge=tmkol1-slabs.
        modifytitemp.
        flag=1.
   endloop.
   ifflag=1.
       deletetmkol1.
       flag=0.
   endif.
endloop.
ifnottmkol1[]isinitial.
   loopattmkol1.
       titemp-matnr=tmkol1-matnr.
       titemp-lifnr=tmkol1-lifnr.
       titemp-wmenge=tmkol1-slabs.
       appendtitemp.
   endloop.
endif.
data:beginoftmardoccurs0,
        matnrlikemard-matnr,  "物料编码
        labstlikemard-labst,  "非限制库存
    endoftmard.
data:beginofmainmardoccurs0,
        matnrlikemard-matnr,
        bckclikemard-labst,
        zxkclikemard-labst,
    endofmainmard.
data:finmardlikemainmardoccurs0withheaderline.
data:onlinemardliketmardoccurs0withheaderline.
select*intocorrespondingfieldsoftabletmardfrommard
    wherematnrbetweenmatnrlowandmatnrhigh
    and(lgort='0040'orlgort='6040')
    andlabst<>0andwerks=p_werks.
select*intocorrespondingfieldsoftableonlinemardfrommard
    wherematnrbetweenmatnrlowandmatnrhigh
    and(lgort='0041'orlgort='6041')
    andlabst<>0andwerks=p_werks.
loopattmard.
  mainmard-matnr=tmard-matnr.
  mainmard-bckc=tmard-labst.
  mainmard-zxkc=0.
  appendmainmard.
endloop.
loopatonlinemard.
  mainmard-matnr=onlinemard-matnr.
  mainmard-bckc=0.
  mainmard-zxkc=onlinemard-labst.
  appendmainmard.
endloop.
loopatmainmard.
   finmard-matnr=mainmard-matnr.
   finmard-bckc=mainmard-bckc.
   finmard-zxkc=mainmard-zxkc.
   collectfinmard.
endloop.
ifnotfinmard[]isinitial.
   flag=0.
   loopatfinmard.
       loopattitempwherematnr=titemp-matnr.
            titemp-slabs=finmard-bckc.
            titemp-labst=finmard-zxkc.
            modifytitemp.
            flag=1.
       endloop.
       ifflag=1.
           deletefinmard.
           flag=0.
       endif.
   endloop.
endif.
ifnotfinmard[]isinitial.
   loopatfinmard.
       titemp-matnr=finmard-matnr.
       titemp-slabs=finmard-bckc.
       titemp-labst=finmard-zxkc.
       appendtitemp.
   endloop.
endif.
*未清要货计划
data:beginoftekesoccurs0,
         ebelnlikeekes-ebeln,
         ebelplikeekes-ebelp,
         mengelikeekes-menge,
         dabmglikeekes-dabmg,
    endoftekes.
data:beginoftwqsloccurs0,
         matnrlikeekpo-matnr,
         lifnrlikeekko-lifnr,
         wqslikeekes-menge,
    endoftwqsl.
select*intocorrespondingfieldsoftabletekesfromekes
    whereeindt=sy-datum.
loopattekes.
   selectsinglematnrfromekpointotwqsl-matnrwhere
         ebeln=tekes-ebelnandebelp=tekes-ebelp.
   selectsinglelifnrfromekkointotwqsl-lifnrwhere
         ebeln=tekes-ebeln.
   twqsl-wqs=tekes-menge-tekes-dabmg.
   collecttwqsl.
endloop.
flag=0.
loopattwqsl.
   loopattitempwherematnr=twqsl-matnrandlifnr=twqsl-lifnr.
        titemp-wqyh=twqsl-wqs.
        modifytitemp.
        flag=1.
   endloop.
   ifflag=1.
        deletetwqsl.
        flag=0.
   endif.
endloop.
ifnottwqsl[]isinitial.
   titemp-matnr=twqsl-matnr.
   titemp-lifnr=twqsl-lifnr.
   titemp-wqyh=twqsl-wqs.
   appendtitemp.
endif.
*包材分配计划
data:beginoftresboccurs0,
        matnrlikeresb-matnr,
        bdmnglikeresb-bdmng,
        aufnrlikeresb-aufnr,
    endoftresb.
select*intocorrespondingfieldsoftabletresbfromresb
    wherekzear<>'X'andxloek<>'X'andbdart='AR'
    andmatnrbetweenmatnrlowandmatnrhigh
    andbdter=sy-datum.
*    tj02t表,汉字描述
data:beginoftaufkoccurs0,
        aufnrlikeaufk-aufnr,
        objnrlikeaufk-objnr,
        statlikejest-stat,
    endoftaufk.
loopattresb.
    selectsingleaufnrobjnrfromaufkinto(taufk-aufnr,taufk-objnr)
          whereaufnr=tresb-aufnr.
    selectsinglestatfromjestintotaufk-stat
          whereobjnr=taufk-objnrandinact<>'X'.
    appendtaufk.
endloop.
loopattaufk.
    iftaufk-stat='I0009'.
         deletetaufk.
    endif.
endloop.
flag=0.
loopattresb.
    loopattaufkwhereaufnr=tresb-aufnr.
        flag=1.
        exit.
    endloop.
    ifflag=0.
       deletetresb.
    else.
       flag=0.
    endif.
endloop.
data:beginoftequkoccurs0,
        matnrlikeequk-matnr,
        qunumlikeequk-qunum,
    endoftequk.
select*intocorrespondingfieldsoftabletequkfromequk
     wherematnrbetweenmatnrlowandmatnrhigh
     andvdatu<=sy-datumandbdatu>=sy-datum.
data:beginoftequpoccurs0,
        qunumlikeequp-qunum,
        lifnrlikeequp-lifnr,
        quotelikeequp-quote,
    endoftequp.
loopattequk.
    select*appendingcorrespondingfieldsoftabletequpfromequp
          wherequnum=tequk-qunum.
endloop.
data:beginoftpeoccurs0,
        matnrlikeequk-matnr,
        lifnrlikeequp-lifnr,
        quotelikeequp-quote,
    endoftpe.
loopattequp.
   tpe-lifnr=tequp-lifnr.
   tpe-quote=tequp-quote.
   loopattequkwherequnum=tequp-qunum.
        tpe-matnr=tequk-matnr.
        exit.
   endloop.
   appendtpe.
endloop.
data:beginoftfpoccurs0,
         matnrlikemakt-matnr,
         lifnrlikeekko-lifnr,
         mengelikeresb-bdmng,
    endoftfp.
loopattpe.
   tfp-matnr=tpe-matnr.
   tfp-lifnr=tpe-lifnr.
   loopattresbwherematnr=tpe-matnr.
        tfp-menge=tresb-bdmng*tpe-quote/100.
   endloop.
   appendtfp.
endloop.
loopattitemp.
   loopattfpwherematnr=titemp-matnrandlifnr=titemp-lifnr.
       titemp-fpjh=tfp-menge.
       modifytitemp.
       exit.
   endloop.
endloop.
flag=0.
loopattitemp.
    loopattmarawherematnr=titemp-matnr.
        flag=1.
        exit.
    endloop.
    ifflag=0.
       deletetitemp.
    else.
       flag=0.
    endif.
endloop.
data:name111likelfa1-name1.
loopattitemp.
   item-matnr=titemp-matnr.
   selectsinglemaktxfrommaktintoitem-maktx
         wherematnr=titemp-matnrandspras='1'.
   loopattmarawherematnr=titemp-matnr.
        item-matkl=tmara-matkl.
        item-groes=tmara-groes.
        exit.
   endloop.
   selectsingleWGBEZfromt023tintoitem-wgbez
      whereSPRAS='1'andmatkl=item-matkl.
   item-lifnr=titemp-lifnr.
   selectsinglename1fromlfa1intoname111
         wherelifnr=item-lifnr.
   SHIFTitem-lifnrLEFTDELETINGLEADING'0'.
   concatenatename111'('item-lifnr')'intoitem-fullname.
   item-wponum=titemp-wponum.
   item-wmenge=titemp-wmenge.
   item-slabs=titemp-slabs.
   item-labst=titemp-labst.
   item-wqyh=titemp-wqyh.
   item-fpjh=titemp-fpjh.
   appenditem.
endloop.
ifitem[]isinitial.
  messageE001.
endif.
sortitembymatnrlifnr.
readtableitemindex1.
struc-matkl=item-matkl.
struc-wgbez=item-wgbez.
struc-matnr=item-matnr.
struc-maktx=item-maktx.
struc-fullname=item-fullname.
struc-lifnr=item-lifnr.
struc-wponum=0.
struc-wmenge=0.
struc-slabs=0.
struc-labst=0.
struc-lifnr=item-lifnr.
struc-groes=item-groes.
struc-wqyh=0.
struc-fpjh=0.
loopatitem.
   ifstruc-matnr=item-matnr.
        itemc-matkl=item-matkl.
        itemc-wgbez=item-wgbez.
        itemc-matnr=item-matnr.
        itemc-maktx=item-maktx.
        itemc-fullname=item-fullname.
        itemc-lifnr=item-lifnr.
        itemc-wponum=item-wponum.
        itemc-wmenge=item-wmenge.
        itemc-slabs=item-slabs.
        itemc-labst=item-labst.
        itemc-lifnr=item-lifnr.
        itemc-groes=item-groes.
        itemc-wqyh=item-wqyh.
        itemc-fpjh=item-fpjh.
        appenditemc.
        struc-matkl=item-matkl.
        struc-wgbez='小计'.
        struc-matnr=item-matnr.
        struc-maktx=item-maktx.
        struc-wponum=struc-wponum+item-wponum.
        struc-wmenge=struc-wmenge+item-wmenge.
        struc-slabs=struc-slabs+item-slabs.
        struc-labst=struc-labst+item-labst.
        struc-groes=item-groes.
        struc-wqyh=struc-wqyh+item-wqyh.
        struc-fpjh=struc-fpjh+item-fpjh.
   else.
        appendstructoitemc.
        itemc-matkl=item-matkl.
        itemc-wgbez=item-wgbez.
        itemc-matnr=item-matnr.
        itemc-maktx=item-maktx.
        itemc-fullname=item-fullname.
        itemc-lifnr=item-lifnr.
        itemc-wponum=item-wponum.
        itemc-wmenge=item-wmenge.
        itemc-slabs=item-slabs.
        itemc-labst=item-labst.
        itemc-lifnr=item-lifnr.
        itemc-groes=item-groes.
        itemc-wqyh=item-wqyh.
        itemc-fpjh=item-fpjh.
        appenditemc.
        struc-matkl=item-matkl.
        struc-wgbez=item-wgbez.
        struc-matnr=item-matnr.
        struc-maktx=item-maktx.
        struc-wponum=item-wponum.
        struc-wmenge=item-wmenge.
        struc-slabs=item-slabs.
        struc-labst=item-labst.
        struc-groes=item-groes.
        struc-wqyh=item-wqyh.
        struc-fpjh=item-fpjh.
   endif.
endloop.
appendstructoitemc.
loopatitemcwherewgbez='小计'.
     itemc-matkl=''.
     itemc-fullname=''.
     itemc-lifnr=''.
     modifyitemc.
endloop.
ifitemc[]isinitial.
   messageE001.
endif.
end-of-selection.
PERFORMole_excel
         TABLESitemc
           USING 'd:\sapdata\ty_mm_0018\ty_mm_0018.xls'.

FORMole_excel
     TABLESitab
     USINGappl_file_nameTYPEstring.
 INCLUDE ole2incl.
 DATA: excelTYPE ole2_object.
 DATA: booksTYPEole2_object.
 DATA: rangeTYPEole2_object.
 DATA: bookTYPEole2_object.
 DATA: filenameLIKErcgfiletr-ftfront.
 DATA: appl_file_pathTYPEstring.
 DATA: appl_filenameLIKErcgfiletr-ftfront.


 filename='d:\sapdata\ty_mm_0018\ty_mm_0018.xls'.
 appl_file_path='d:\sapdata\ty_mm_0018\'.

 CALLFUNCTION'WS_DOWNLOAD'
      EXPORTING
           filename='d:\sapdata\ty_mm_0018\itab.dat'
           filetype='DAT'
      TABLES
           data_tab=itab.
 FREEitab.

CONCATENATEappl_file_pathappl_file_nameINTOappl_filename.

 CALLFUNCTION'C13Z_FILE_DOWNLOAD_BINARY'
      EXPORTING
           i_file_front_end=filename
           i_file_appl     =appl_filename
           i_file_overwrite='X'.
 CALLFUNCTION'WS_EXECUTE'
        EXPORTING
             document='X'
             COMMANDLINE=filename
             PROGRAM    ='EXCEL'.

ENDFORM.

FORMprint-header.
  WRITE:/'Programstartedby',SY-UNAME,
         /'onhost',SY-HOST,
           'date:',SY-DATUM,'time:',SY-UZEIT,
         /'程序名称:包材分配表'.
  ULINE.
ENDFORM.

分享按钮发布于: 2007-08-29 06:39 CharlieShen 阅读(201) 评论(0)  编辑 收藏