简介:本文档为《Z_MM_350doc》,可适用于IT/计算机领域,主题内容包含** REPORT NAME : 宣告程序名称及报表格式*REPORT zmm*声明数据库表TABLES: zmrso,zmrmo,resb,m符等。
举报
** REPORT NAME : 宣告程序名称及报表格式*REPORT zmm*声明数据库表TABLES: zmrso,zmrmo,resb,mara,zmrbo,zmrll,spop,zmrcl,usr,marm,ekpo,ekko,zwxzj,eket,afko,lfa,mseg,eipa,eina,zmrmq*for alvTYPEPOOLS: slisDATA: fieldcatalog TYPE slistfieldcatalv WITH HEADER LINEDATA: lrgrid TYPE REF TO clguialvgridDATA: yxts TYPE i, wspsl TYPE i, if TYPE i*ALVF类超领类型CLASS lcleventreceiver DEFINITION DEFERREDDATA eventreceiver TYPE REF TO lcleventreceiverDATA gtf TYPE lvctfDATA gsf TYPE lvcsfDATA ichk() TYPE cDATA fcode() OCCURS WITH HEADER LINE*** CLASS LCLEVENTRECEIVER DEFINITION**CLASS lcleventreceiver DEFINITION PUBLIC SECTION METHODS: onf FOR EVENT onf OF clguialvgrid IMPORTING efieldname efieldvalue esrowno ereventdata etbadcells edisplayENDCLASS "LCLEVENTRECEIVER DEFINITION*** CLASS LCLEVENTRECEIVER IMPLEMENTATION**CLASS lcleventreceiver IMPLEMENTATION METHOD onf PERFORM subfhelp USING efieldname esrowno ereventdata>meventhandled = 'x' ENDMETHOD "onfENDCLASS "lcleventreceiver IMPLEMENTATIONDATA: BEGIN OF itab OCCURS , ebeln LIKE ekpoebeln, ebelp LIKE ekpoebelp, rsnum LIKE resbrsnum, rspos LIKE resbrspos, matnr LIKE ekpomatnr, zbcplh LIKE ekpomatnr, menge LIKE ekpomenge, bdmng LIKE resbbdmng, END OF itabDATA itab LIKE itab OCCURS WITH HEADER LINEDATA: len TYPE nDATA: xqcs LIKE resbbdmng, trfhs LIKE zmrmotrfhs, trfhs LIKE zmrmotrfhs, trfhs LIKE zmrmotrfhs, trfhs LIKE zmrmotrfhs, ebeln LIKE zmrmoebeln, ebelp LIKE zmrmoebelp, ebeln LIKE zmrmoebeln, ebelp LIKE zmrmoebelp, matnr LIKE resbmatnr, ebeln LIKE zmrmoebeln, ebelp LIKE zmrmoebelp, dbsl LIKE resbbdmngDATA: itfieldcat TYPE lvctfcat, "slistfieldcatalv WITH HEADER LINE, wafieldcat TYPE lvcsfcat, ifieldcat TYPE slisfieldcatalv, gdtabgroup TYPE slistspgroupalv, gdlayout TYPE lvcslayo, "slislayoutalv, ievents TYPE slistevent, wevents LIKE LINE OF ievents, ilistcomments TYPE slistlistheader, wlistcomments LIKE LINE OF ilistcomments, gdrepid LIKE syrepidDATA: objnr LIKE jestobjnr,txt LIKE tjttxt ,stat LIKE jeststat, zkhdm LIKE maraferth, xans TYPE cDATA itype TYPE ddvdatatype "数字检查DATA ftype TYPE f "数字检查DATA imcjrq LIKE zmrsomcjrq*定义内表*选择屏幕DATA fmname TYPE rslfnamDATA: lifnr LIKE zmrmolifnr, ekotx LIKE teekotx, name LIKE lfanameDATA:number() TYPE c, number() TYPE c, zlldh LIKE zmrsozlldh, zlldh LIKE zmrsozlldh, zlldh LIKE zmrsozlldh, hk LIKE zmrsozlldh, zlldh LIKE zmrsozlldh, zlldh LIKE zmrsozlldh, lldxm LIKE zmrmolldxm, ebeln LIKE ekpoebeln, ebelp LIKE ekpoebelp, zjwlh LIKE zmrmozjwlh, zjwlh LIKE zmrmozjwlh, trfhsa LIKE zmrbotrfhs, sumtrfhs LIKE zmrbotrfhs, trfhsb LIKE zmrbotrfhs, trfhsc LIKE zmrbotrfhs, bclls LIKE mardlabst, ddcs LIKE mardlabst, bclls LIKE mardlabst, matnrsum LIKE resbmatnr, bcllssum LIKE mardlabst, labstsum LIKE mardlabst, lldzt LIKE zmrsolldzt, zlldhe LIKE zmrsozlldh, zlldha LIKE zmrsozlldh, zlldhb LIKE zmrsozlldh, zlldhc LIKE maktmaktxDATA:BEGIN OF hditab OCCURS , zcllx LIKE zmrclzcllx,* TSKCH LIKE ZMRMOTSKCH, rspos LIKE resbrspos, rsnum LIKE resbrsnum, matnr LIKE resbmatnr, posnr LIKE resbposnr, werks LIKE resbwerks, prvbe LIKE resbprvbe, bdmng LIKE resbbdmng, meins LIKE resbmeins,"基本单位 ausme LIKE marcausme, "发货单位 ausme LIKE marcausme, "发货单位 rdprf LIKE marcrdprf, "取整参数文件 ddwbz LIKE zmrmoddwbz, slfhs LIKE zmrmoslfhs, "输入发货数 sljbs LIKE zmrmosljbs, "输入基本数 umrez LIKE marmumrez, "单位转换分子 umren LIKE marmumren, "单位转换分母 vormg LIKE rdprvormg, vormg LIKE rdprvormg, vormg LIKE rdprvormg, vormg LIKE rdprvormg, vormg LIKE rdprvormg, vormg LIKE rdprvormg, vormg LIKE rdprvormg, vormg LIKE rdprvormg, vormg LIKE rdprvormg, bstmi LIKE marcbstmi, enmng LIKE resbenmng, ebeln LIKE zmrmoebeln, ebelp LIKE zmrmoebelp, ebeln LIKE zmrmoebeln, ebelp LIKE zmrmoebelp, ddtrh LIKE zmrmoddtrh,* BAUGR LIKE RESBBAUGR, plnbez LIKE ekpomatnr, labor LIKE maralabor,* TXT LIKE TJTTXT, "状态 txt() TYPE c, "状态 llzt LIKE tjttxt, "领料状态 sttxt LIKE bsvxsttxt, llwb LIKE zllfsllwb, llfs LIKE zllfsllfs, maktx LIKE maktmaktx, ddcs LIKE resbbdmng, ddcs LIKE resbbdmng, sobkz LIKE resbsobkz, labst LIKE mardlabst, labsts LIKE mardlabst, labstq LIKE mardlabst, labsto LIKE mardlabst, kalab LIKE mskakalab, kdauf LIKE resbkdauf, kdpos LIKE resbkdpos, bzd LIKE maktmaktx, zskmz LIKE txlbtxt, smatnr LIKE maramatnr, zjbsl LIKE zzzbcxxbzjbsl, qty LIKE zzzbcxxbzzxsl, mtart LIKE maramtart, smaktx LIKE maktmaktx, psmng LIKE ekpomenge, bismt LIKE marabismt, bclls LIKE mardlabst, llxzs LIKE mardlabst, potx LIKE resbpotx, xloek LIKE resbxloek, fieldstyle TYPE lvctstyl, "FOR DISABLE gvcheck() TYPE c, lgort LIKE pvbelgort, z TYPE p DECIMALS , z TYPE p DECIMALS , za TYPE p DECIMALS , zb TYPE p DECIMALS , zc TYPE p DECIMALS , zd TYPE p DECIMALS , z() TYPE c, z() TYPE c, ddhandle TYPE int, zcldm LIKE zmrmozcldm, beizhu LIKE zmrmobeizhu, kaspe LIKE mskakaspe, disgr LIKE marcdisgr, kczsl LIKE mardlabst, tozsl LIKE mardlabst, trzsl LIKE mardlabst, lgobe LIKE tllgobe, splkz LIKE resbsplkz, color() TYPE c, lgort LIKE pvbelgort, rate TYPE i, elikz LIKE ekpoelikz, ovr LIKE zmrclzcllx, lifnr LIKE zmrmolifnr, ekorg LIKE ekkoekorg, name LIKE lfaname, bukrs LIKE zmrmobukrs, frgke LIKE ekkofrgke, zbwart LIKE zmrmozbwart, sgtxt LIKE msegsgtxt, menge LIKE msegmenge, menge LIKE msegmenge, loekz LIKE ekpoloekz, infnr LIKE ekpoinfnr, esokz LIKE eipaesokz, mwskz LIKE einemwskz, zbprei LIKE zmrmqzbprei, zjbj() TYPE c,END OF hditabDATA hditab LIKE hditab OCCURS WITH HEADER LINEDATA:BEGIN OF dhitab OCCURS , zlldh LIKE zmrsozlldh,END OF dhitabDATA: BEGIN OF itab OCCURS , zlldh LIKE zmrsozlldh, lldlx LIKE zmrsolldlx, lldzt LIKE zmrsolldzt, llfs LIKE zmrsollfs, werks LIKE zmrmowerks, mcjrq LIKE zmrsomcjrq, mcjyh LIKE zmrsomcjyh, mcjsj LIKE zmrsomcjsj, lifnr LIKE zmrmolifnr, ekorg LIKE ekkoekorg, END OF itabDATA: BEGIN OF itab OCCURS , zlldh LIKE zmrsozlldh, lldlx LIKE zmrsolldlx, lldzt LIKE zmrsolldzt, llfs LIKE zmrsollfs, werks LIKE zmrmowerks, mcjrq LIKE zmrsomcjrq, mcjyh LIKE zmrsomcjyh, mcjsj LIKE zmrsomcjsj, lldxm LIKE zmrmolldxm, ebeln LIKE zmrmoebeln, ebelp LIKE zmrmoebelp, zjwlh LIKE zmrmozjwlh, cplbm LIKE zmrmocplbm, lgort LIKE zmrmolgort, lgnum LIKE zmrmolgnum,* BDART LIKE ZMRMOBDART,* TRSQH LIKE ZMRMOTRSQH, slfhs LIKE zmrmoslfhs, sljbs LIKE zmrmosljbs, trfhs LIKE zmrmotrfhs, trjbs LIKE zmrmotrjbs, bwart LIKE zmrmobwart, ddfhd LIKE zmrmoddfhd, ddjbd LIKE zmrmoddjbd, ddwbz LIKE zmrmoddwbz, zcldm LIKE zmrmozcldm, beizhu LIKE zmrmobeizhu, labor LIKE maralabor, lgobe LIKE tllgobe, lifnr LIKE zmrmolifnr, rsnum LIKE resbrsnum, rspos LIKE resbrspos, ekorg LIKE ekkoekorg, bukrs LIKE zmrmobukrs, zbwart LIKE zmrmozbwart, mwskz LIKE einemwskz, zbprei LIKE zmrmqzbprei, END OF itabDATA : itab LIKE itab OCCURS WITH HEADER LINEDATA : itab LIKE itab OCCURS WITH HEADER LINEDATA: BEGIN OF itab OCCURS , zlldh LIKE zmrmozlldh, lldxm LIKE zmrmolldxm, ebeln LIKE zmrmoebeln, ebelp LIKE zmrmoebelp, zjwlh LIKE zmrmozjwlh, cplbm LIKE zmrmocplbm, lgort LIKE zmrmolgort, lgnum LIKE zmrmolgnum,* BDART LIKE ZMRMOBDART,* TRSQH LIKE ZMRMOTRSQH, slfhs LIKE zmrmoslfhs, sljbs LIKE zmrmosljbs, trfhs LIKE zmrmotrfhs, trjbs LIKE zmrmotrjbs, bwart LIKE zmrmobwart, ddfhd LIKE zmrmoddfhd, ddjbd LIKE zmrmoddjbd, ddwbz LIKE zmrmoddwbz, zcldm LIKE zmrmozcldm, beizhu LIKE zmrmobeizhu, charg LIKE zmrmocharg, ferth LIKE maraferth, labor LIKE maralabor, lgobe LIKE tllgobe,* ZRLGORT like ZMRMOZRLGORT, werks LIKE zmrmowerks, lifnr LIKE zmrmolifnr, rsnum LIKE resbrsnum, rspos LIKE resbrspos, ekorg LIKE ekkoekorg, bukrs LIKE zmrmobukrs, zbwart LIKE zmrmozbwart, mwskz LIKE einemwskz, zbprei LIKE zmrmqzbprei, END OF itabDATA: t() TYPE c, serial TYPE i VALUE , ebeln LIKE zmrmoebeln, ebelp LIKE zmrmoebelp, posnr TYPE i ,* *定义存储下拉列表的数据 gtddval TYPE lvctdrop, gwddval TYPE lvcsdrop, waevents TYPE slisalvevent, waddval TYPE lvcsdrop, iddval TYPE lvctdrop, "存储下拉列表的数据* waalv TYPE typalv,* ialv TYPE TABLE OF typalv, "ALV m TYPE i , datum LIKE sydatumDATA: waitab LIKE LINE OF hditabDATA: waitab LIKE LINE OF hditab*定义选择屏幕SELECTIONSCREEN BEGIN OF BLOCK b WITH FRAME TITLE t*定义单值选择项PARAMETERS:prwerks LIKE ekpowerks MEMORY ID wrk OBLIGATORYPARAMETERS:prlifnr LIKE ekkolifnr MEMORY ID lif OBLIGATORYSELECTOPTIONS:sebeln FOR ekpoebeln MEMORY ID ebelnSELECTOPTIONS:sebelp FOR ekpoebelp MEMORY ID ebelpSELECTIONSCREEN END OF BLOCK bSELECTIONSCREEN BEGIN OF BLOCK b WITH FRAME TITLE tPARAMETERS:pr TYPE c AS CHECKBOX PARAMETERS:pr TYPE c AS CHECKBOX DEFAULT 'X' ""PARAMETERS:pr TYPE c AS CHECKBOX DEFAULT 'X' ""SELECTIONSCREEN END OF BLOCK b*AT SELECTIONSCREEN ON VALUEREQUEST FOR SEBELPLOW "自定义行项目F* PERFORM getEBELP CHANGING SEBELPLOW*程序初始化INITIALIZATION* SELECT SINGLE PARVA FROM USR* INTO PRWERKS* WHERE BNAME = SYUNAME* AND PARID = 'WRK' t = '查询条件' t = '特殊选择' dbsl = datum = sydatum SELECT zlldh INTO zmrsozlldh FROM zmrso WHERE mcjrq < datum AND ( llfs = 'A' OR llfs = 'B' ) AND lldzt <> 'F' DELETE FROM zmrso WHERE zlldh = zmrsozlldh DELETE FROM zmrmo WHERE zlldh = zmrsozlldh DELETE FROM ztrto WHERE bdatu < datum ENDSELECT*数据选择STARTOFSELECTION PERFORM getdata "读取数据 PERFORM setspecificfieldattributes PERFORM eventsbuild "alv事件 PERFORM layoutbuild "定义alv格式属性 PERFORM fieldsbuild "定义列标题信息 PERFORM displaydata "显示数据ENDOFSELECTION*** Form getdata*** 获取数据**FORM getdata DATA rate TYPE i DATA zjbsl TYPE i DATA iebelp LIKE zmrmoebelp CLEAR hditab CLEAR hditab CLEAR itab CLEAR itab CLEAR itab CLEAR itab SELECT ekpo~ebeln ekpo~ebelp ekpo~matnr eket~rsnum ekpo~menge INTO (itabebeln,itabebelp,itabzbcplh,itabrsnum,itabmenge) FROM ekko JOIN ekpo ON ekko~ebeln = ekpo~ebeln JOIN eket ON eket~ebeln = ekpo~ebeln AND eket~ebelp = ekpo~ebelp WHERE ekpo~werks LIKE prwerks AND ekko~lifnr LIKE prlifnr AND ekpo~ebeln IN sebeln AND ekpo~ebelp IN sebelp APPEND itab CLEAR itab ENDSELECT SORT itab BY ebeln ebelp LOOP AT itab SELECT MAX( resb~rspos ) SUM( resb~bdmng ) MAX( resb~matnr ) FROM resb INTO (itabrspos,itabbdmng,itabmatnr) WHERE rsnum = itabrsnum AND resb~postp <> 'T' AND resb~shkzg <> 'S' GROUP BY resb~matnr resb~rsnum"resb~ebeln resb~ebelp itabebeln = itabebeln itabebelp = itabebelp itabrsnum = itabrsnum itabzbcplh = itabzbcplh itabmenge = itabmenge APPEND itab CLEAR itab ENDSELECT SELECT zbcmat INTO itabmatnr FROM zbcxxb WHERE zbcplh = itabzbcplh itabebeln = itabebeln itabebelp = itabebelp itabrsnum = itabrsnum itabzbcplh = itabzbcplh itabmenge = itabmenge APPEND itab CLEAR itab ENDSELECT ENDLOOP SORT itab BY ebeln ebelp LOOP AT itab hditabbdmng = itabbdmng IF itabrspos = '' OR itabrspos = '' SELECT SINGLE ekpo~ebeln ekpo~ebelp MIN( ekpo~lgort ) MIN( ekpo~elikz ) MIN( ekko~lifnr ) MIN( ekko~ekorg ) MIN( lfa~name ) MIN( ekpo~bukrs ) MIN( ekko~frgke ) MIN( ekpo~loekz ) MIN( eipa~esokz ) MIN( eipa~infnr ) INTO (hditabebeln,hditabebelp,hditablgort,hditabelikz,hditablifnr,hditabekorg,hditabname, hditabbukrs,hditabfrgke,hditabloekz,hditabesokz,hditabinfnr) FROM ekko JOIN ekpo ON ekko~ebeln = ekpo~ebeln JOIN lfa ON lfa~lifnr = ekko~lifnr JOIN eipa ON ekpo~infnr = eipa~infnr AND ekpo~ebeln = eipa~ebeln AND ekpo~ebelp = eipa~ebelp WHERE ekpo~ebeln = itabebeln AND ekpo~ebelp = itabebelp GROUP BY ekpo~ebeln ekpo~ebelp ekpo~matnr "获取包材信息表内容* SELECT SINGLE zbcplh zbcmat INTO (hditabplnbez, hditabmatnr) FROM zbcxxb WHERE zbcmat = itabmatnr hditabplnbez = itabzbcplh hditabmatnr = itabmatnr SELECT SINGLE zjbsl INTO zjbsl FROM zbcxxb WHERE zbcmat = itabmatnr hditabbdmng = ceil( itabmenge zjbsl ) ENDIF SELECT SINGLE resb~matnr MIN( resb~werks ) MIN( resb~prvbe ) MIN( resb~meins ) SUM( resb~enmng )"SUM( resb~bdmng ) hditabbdmng, resb~ebeln resb~ebelp MIN( ekpo~matnr ) MIN( resb~posnr ) MIN( resb~sobkz ) MIN( resb~kdauf ) MIN( resb~kdpos ) MIN( resb~xloek ) MIN( resb~rspos ) MIN( resb~rsnum ) MIN( resb~potx ) MIN( resb~splkz ) MIN( ekpo~lgort ) MIN( ekpo~elikz ) MIN( ekko~lifnr ) MIN( ekko~ekorg ) MIN( lfa~name ) MIN( ekpo~bukrs ) MIN( ekko~frgke ) MIN( ekpo~loekz ) MIN( eipa~esokz ) MIN( eipa~infnr ) INTO (hditabmatnr,hditabwerks,hditabprvbe,hditabmeins,hditabenmng,hditabebeln,hditabebelp,hditabplnbez, hditabposnr,hditabsobkz,hditabkdauf,hditabkdpos,hditabxloek,hditabrspos,hditabrsnum,hditabpotx,hditabsplkz,hditablgort, hditabelikz,hditablifnr,hditabekorg,hditabname,hditabbukrs,hditabfrgke,hditabloekz,hditabesokz,hditabinfnr) FROM resb JOIN eket ON resb~rsnum = eket~rsnum JOIN ekko ON eket~ebeln = ekko~ebeln JOIN ekpo ON eket~ebeln = ekpo~ebeln AND eket~ebelp = ekpo~ebelp JOIN lfa ON lfa~lifnr = ekko~lifnr JOIN eipa ON ekpo~infnr = eipa~infnr AND ekpo~ebeln = eipa~ebeln AND ekpo~ebelp = eipa~ebelp WHERE ekpo~ebeln = itabebeln AND ekpo~ebelp = itabebelp AND resb~rsnum = itabrsnum AND resb~rspos = itabrspos GROUP BY resb~ebeln resb~ebelp resb~matnr resb~rsnum "取税码 SELECT SINGLE mwskz INTO hditabmwskz FROM eine WHERE infnr = hditabinfnr AND ekorg = hditabekorg AND esokz = hditabesokz AND werks = hditabwerks "获得组件报价 SELECT SINGLE zbprei INTO hditabzbprei FROM zmrmq WHERE lifnr = hditablifnr AND matnr = hditabmatnr AND zstard >= sydatum AND zendd >= sydatum IF sysubrc = hditabzjbj = '有' ELSE hditabzjbj = '无' ENDIF iebelp = hditabebelp* SHIFT IEBELP LEFT DELETING LEADING '' CONCATENATE hditabebeln '' iebelp INTO hditabsgtxt SELECT SUM( menge ) FROM mseg INTO hditabmenge WHERE ( bwart = '') AND lifnr = hditablifnr AND matnr = hditabmatnr AND sobkz = 'O' AND sgtxt = hditabsgtxt AND werks = hditabwerks SHIFT iebelp LEFT DELETING LEADING '' "由于原BAPI错误导致领料项目号有前导零退料BAPI中没有前导零导致不能匹配。 CONCATENATE hditabebeln '' iebelp INTO hditabsgtxt SELECT SUM( menge ) FROM mseg INTO hditabmenge WHERE ( bwart = '') AND lifnr = hditablifnr AND matnr = hditabmatnr AND sobkz = 'O' AND sgtxt = hditabsgtxt AND werks = hditabwerks hditabenmng = hditabmenge hditabmenge hditabzcllx = '' SELECT SINGLE ausme rdprf FROM marc INTO (hditabausme,hditabrdprf) WHERE matnr = hditabmatnr AND werks = hditabwerks "SLFHS rate = IF hditabausme = 'KG' AND hditabmeins = 'G' rate = ENDIF IF hditabausme = '' hditabddwbz = hditabausme = hditabmeins ELSE hditabddwbz = hditabausme = hditabausme ENDIF*新增发货单位与基本单位转换 hditabumrez = hditabumren = *如果提货单位与基本单位不同 IF hditabausme NE hditabmeins*在MARM中提货单位与基本单位的转换率 SELECT SINGLE umrez umren FROM marm INTO (hditabumrez, hditabumren) WHERE matnr = hditabmatnr AND meinh = hditabausme IF hditabumrez > AND hditabumren > AND rate = rate = ( hditabumrez hditabumren ) ENDIF IF rate <= rate = ENDIF ENDIF hditabrate = rate hditabbdmng = hditabbdmng rate hditabenmng = hditabenmng rate* SELECT SINGLE bstmi FROM marc INTO hditabbstmi WHERE matnr = hditabmatnr SELECT SINGLE vormg FROM rdpr INTO (hditabvormg) WHERE rdprf = hditabrdprf IF hditabausme = 'KG' AND hditabmeins = 'G' hditabvormg = hditabvormg ELSE hditabvormg = hditabvormg ENDIF SELECT SINGLE maktx FROM makt INTO hditabmaktx WHERE matnr = hditabmatnr SELECT SINGLE adrc~name INTO name FROM adrc JOIN tw ON adrc~addrnumber = tw~adrnr WHERE tw~werks = hditabwerks* SELECT SINGLE PVBTX FROM PVKT* INTO PVBTX* WHERE PRVBE = HDITABPRVBE* AND SPRAS = '' SELECT SUM( verme ) INTO hditablabst FROM lqua "正常库存 WHERE matnr = hditabmatnr AND werks = prwerks AND ( lgtyp NOT LIKE '' ) AND ( bestq EQ '' ) AND sobkz NE 'E' SELECT SUM( verme ) INTO hditablabsts FROM lqua "冻结库存 WHERE matnr = hditabmatnr AND werks = prwerks AND ( lgtyp NOT LIKE '' ) AND ( bestq EQ 'S' ) AND sobkz NE 'E' SELECT SUM( verme ) INTO hditablabstq FROM lqua "质检库存 WHERE matnr = hditabmatnr AND werks = prwerks AND ( lgtyp NOT LIKE '' ) AND ( bestq EQ 'Q' ) AND sobkz NE 'E' SELECT SUM( lblab ) INTO hditablabsto FROM mslb "供应商库存 WHERE matnr = hditabmatnr AND werks = prwerks AND lifnr = hditablifnr AND sobkz = 'O' IF hditabsobkz = 'E' SELECT SINGLE kalab FROM mska INTO hditabkalab WHERE matnr = hditabmatnr AND vbeln = hditabkdauf AND posnr = hditabkdpos ENDIF*新增发货单位与基本单位转换转换库存数 hditablabst = hditablabst rate hditablabsts = hditablabsts rate hditablabstq = hditablabstq rate hditabkalab = hditabkalab rate hditablabsto = hditablabsto rate* hditabddcs = hditabbdmng hditabenmng hditabza = hditabbd