关闭

关闭

封号提示

内容

首页 物料反查.doc

物料反查.doc

物料反查.doc

上传者: sophsong 2011-09-14 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《物料反查doc》,可适用于IT/计算机领域,主题内容包含*** Report YPPR SAP BOM 展开**REPORT ztest NO STANDARD PAGE HEADINGTYPEPOOLS符等。

*** Report YPPR SAP BOM 展开**REPORT ztest NO STANDARD PAGE HEADINGTYPEPOOLS: slisTABLES: mast, "BOM 链接物料mara, "常规物料数据stko, "BOM 表头makt "物料描述DATA: stb           LIKE stpox OCCURS  WITH HEADER LINE,waalvfield        TYPE slisfieldcatalv, "列描述内表列清单waalvfieldcat     TYPE slistfieldcatalv, "定义内表layout              TYPE slislayoutalv,gslayout           TYPE slislayoutalv,gtlisttopofpage TYPE slistlistheader,counter TYPE i VALUE ,grepid LIKE syrepid,dc() TYPE c VALUE 'X', "是否多层展开默为多层展开gusercommand TYPE slisformname VALUE 'USERCOMMAND'DATA: BEGIN OF selpool        INCLUDE STRUCTURE cstmatDATA: END OF selpoolDATA: dststflg LIKE csdataxfeld "BOM 帮助字段DATA: BEGIN OF itdata OCCURS ,        stufe LIKE stpoxstufe, "层次        matnr LIKE maramatnr, "父件物料编码        ojtxb() TYPE c, "父件物料描述        bmeng TYPE i, "BOM 中的基本数量        idnrk LIKE stpoxidnrk, "子件物料编码        ojtxp() TYPE c, "子件物料描述        alprf LIKE stpoalprf, "优先级        ewahr LIKE stpoewahr, "使用可能性        stlan LIKE stpoxstlan, "BOM 用途        stlal LIKE stpoxstlal, "可选的BOM        alpgr LIKE stpoxalpgr, "替代组        mtart LIKE stpoxmtart, "物料类型        mmein LIKE stpoxmmein, "基本计量单位        stprs LIKE stpoxstprs, "标准价格        mnglg LIKE stpoxmnglg, "以基本计量单位为准的已计算的组件数量        mngko LIKE stpoxmngko, "以组件计量单位为准的已计算的组件数量        menge LIKE stpoxmenge, "组件数量        datuv LIKE stpoxdatuv, "开始生效有效截止日期        aennr LIKE stpoxaennr, "更改编号        andat LIKE stpoxandat, "日期记录创建于        annam LIKE stpoxannam, "创建记录的用户        ausch LIKE stpoxausch, "工序报废        avoau LIKE stpoxavoau, "工序废品        ntgew LIKE marantgew, "净重        brgew LIKE marabrgew, "毛重        weigh LIKE marabrgew, "重量 = BOM 用量 * 单重        stawn LIKE marcstawn, "外贸的商品代码和进口代码        stawt() TYPE c, "海关编码描述        sel TYPE c,END OF itdataDATA: BEGIN OF matcat OCCURS         INCLUDE STRUCTURE cscmatDATA: END OF matcatDATA: BEGIN OF mats        INCLUDE STRUCTURE cscmatDATA: END OF matsDATA: BEGIN OF dllhdata,matnr LIKE maramatnr, "物料编码bmeng TYPE i, "BOM 中的基本数量END OF dllhdataDATA: tdllhdata LIKE dllhdata OCCURS DATA: BEGIN OF wlxxdata,      matnr LIKE maramatnr, "物料编码      normt LIKE maranormt, "延伸机种即机型      maktx() TYPE c, "物料描述      groes LIKE maragroes, "描述补充      ntgew LIKE marantgew, "净重      brgew LIKE marabrgew, "毛重      stawn LIKE marcstawn, "外贸的商品代码和进口代码END OF wlxxdataDATA: twlxxdata LIKE wlxxdata OCCURS DATA: BEGIN OF hgbmdata,      stawn LIKE ttstawn, "外贸的商品代码和进口代码      text() TYPE c, "描述      text LIKE tttext, "描述      text LIKE tttext, "描述      text LIKE tttext, "描述      text LIKE tttext, "描述      text LIKE tttext, "描述      text LIKE tttext, "描述END OF hgbmdataDATA: thgbmdata LIKE hgbmdata OCCURS SELECTIONSCREEN BEGIN OF BLOCK scr WITH FRAME TITLE textSELECTOPTIONS: smatnr FOR maramatnr, "成品编码                smtart FOR maramtart, "物料类型                smatkl FOR maramatkl, "物料组                smaktx FOR maktmaktx, "物料描述                snormt FOR maranormt "机型PARAMETERS: pemeng LIKE stkobmeng OBLIGATORY DEFAULT '', "Required quantity            pstlan LIKE maststlan DEFAULT '' "Bom 用途SELECTIONSCREEN SKIP PARAMETERS:rbmcb RADIOBUTTON GROUP rg DEFAULT 'X', "多层展开           rbscb RADIOBUTTON GROUP rg "单层展开SELECTIONSCREEN SKIP PARAMETERS:rbytd RADIOBUTTON GROUP rg DEFAULT 'X', "有替代料           rbwtd RADIOBUTTON GROUP rg "无替代料SELECTIONSCREEN SKIP PARAMETERS:rball RADIOBUTTON GROUP rg, "显示所有列           rbhgy RADIOBUTTON GROUP rg DEFAULT 'X' "仅显示海关专用列SELECTIONSCREEN SKIP PARAMETERS:rbybc RADIOBUTTON GROUP rg, "仅计算原材料重量           rbwbc RADIOBUTTON GROUP rg DEFAULT 'X' "计算所有物料重量SELECTIONSCREEN END OF BLOCK scrINITIALIZATION  grepid = syrepidSTARTOFSELECTION  SELECT mara~matnr  INTO CORRESPONDING FIELDS OF TABLE tdllhdata "取得物料编码内表  FROM mara  INNER JOIN makt ON mara~matnr = makt~matnr  WHERE mara~matnr IN smatnr AND mara~mtart IN smtart AND mara~normt  IN snormt AND makt~maktx IN smaktx AND mara~matkl IN smatkl AND makt~spras = sylangu  SORT tdllhdata BY matnr  SELECT tt~stawn tt~text tt~text tt~text tt~text tt~text tt~text tt~text  INTO TABLE thgbmdata "取得海关编码及描述内表  FROM tt  WHERE tt~spras = sylangu  SORT thgbmdata BY stawn  LOOP AT thgbmdata INTO hgbmdata    CONCATENATE hgbmdatatext hgbmdatatext hgbmdatatext hgbmdatatext hgbmdatatext hgbmdatatext hgbmdatatext INTO hgbmdatatext    MODIFY thgbmdata FROM hgbmdata  ENDLOOP  IF rbmcb = '' "如果选择为单层展开则把原来的默认值由X 改为空    dc = ''  ENDIF  CLEAR: dllhdata  LOOP AT tdllhdata INTO dllhdata "循环每个物料号    CLEAR: stb    CALL FUNCTION 'CSBOMEXPLMATV'      EXPORTING        capid                 = 'ZP' "BOM 应用程序        datuv                 = sydatum "有效起始日        emeng                 = pemeng " 基本数量 required quantity stkobmeng        mtnrv                 = dllhdatamatnr "成品号或半成品号        stlan                 = '' "BOM 用途 代表生产        stlal                 = '' "可选BOM        mktls                 = 'X'        mehrs                 = dc "是否多层展开'X' 代表多层        rndkz                 = '' "Round off: ' '=always, ''=never, ''=only levels >  是否取整        werks                 = '' "工厂      IMPORTING        topmat                = selpool "开始BOM 展开的物料 显示        dstst                 = dststflg "BOM 帮助字段      TABLES        stb                   = stb        matcat                = matcat "下面含有组件的物料存放在该内表对应 stbttidx 在类别表内的索引标志直属哪个物料下的 bom      EXCEPTIONS        altnotfound         =         callinvalid          =         materialnotfound    =         missingauthorization =         nobomfound          =         noplantdata         =         nosuitablebomfound =         OTHERS                =     LOOP AT stb      itdatastufe = stbstufe "层次      itdataojtxb = stbojtxb "父件描述      itdatabmeng = selpoolbmeng      itdataidnrk = stbidnrk "子件编码      itdataojtxp = stbojtxp "子件描述      itdataalprf = stbalprf "优先级      itdataewahr = stbewahr "使用可能性      itdatastlan = stbstlan "BOM 用途      itdatastlal = stbstlal "可选的BOM      itdataalpgr = stbalpgr "替代组      itdatamtart = stbmtart "物料类型      itdatammein = stbmmein "基本计量单位      itdatastprs = stbstprs "标准价格      itdatamnglg = stbmnglg "以基本计量单位为准的已计算的组件数量      itdatamngko = stbmngko "以组件计量单位为准的已计算的组件数量      itdatamenge = stbmenge "组件数量      itdataausch = stbausch "工序报废      itdataavoau = stbavoau "工序废品      itdatadatuv = stbdatuv "生效日期      itdatastawn = stbstawn "外贸的商品代码和进口代码      itdataaennr = stbaennr "更改编号      itdataandat = stbandat "创建于      itdataannam = stbannam "创建者      READ TABLE matcat INTO mats WITH KEY INDEX = stbttidx " 根据stbttidx 找matcat 中对应的 index 可以得到其相对的上阶物料号      itdatamatnr = matsmatnr "相对的父件编码      APPEND itdata    ENDLOOP  ENDLOOP*SORT ITDATA BY MATNR STUFE ALPGR ALPRF IDNRK "按成品号层 次 号 替 代  组优先级 原料号排序  IF rbwtd = '' "如果选择无替代料则把替代料删除    DELETE itdata WHERE alpgr <> '' AND alprf <> '' "ALPGR 替代 组 alprf 为优先组  为第一优先使用可性为  视为主料  ENDIF  SELECT mara~matnr mara~normt makt~maktx mara~groes mara~ntgew mara~brgew marc~stawn  INTO TABLE twlxxdata "取得物料信息  FROM mara  INNER JOIN makt ON mara~matnr = makt~matnr  INNER JOIN marc ON mara~matnr = marc~matnr  WHERE makt~spras = sylangu AND marc~werks = ''  SORT twlxxdata BY matnr  LOOP AT itdata    CLEAR: wlxxdata,hgbmdata    READ TABLE twlxxdata INTO wlxxdata WITH KEY matnr = itdataidnrk    BINARY SEARCH    CONCATENATE wlxxdatamaktx wlxxdatagroes INTO wlxxdatamaktx    itdataojtxp = wlxxdatamaktx "连接后的完全的组件物料描述    itdatantgew = wlxxdatantgew    IF rbwbc = 'X' AND itdatamtart <> ''      itdataweigh = itdatamngko * wlxxdatantgew    ENDIF    MODIFY itdata  ENDLOOP  LOOP AT itdata    CLEAR: wlxxdata,hgbmdata    READ TABLE twlxxdata INTO wlxxdata WITH KEY matnr = itdatamatnr    BINARY SEARCH    CONCATENATE wlxxdatamaktx wlxxdatagroes INTO wlxxdatamaktx    itdataojtxb = wlxxdatamaktx "连接后的完全的父件物料描述    READ TABLE thgbmdata INTO hgbmdata WITH KEY stawn = itdatastawn    BINARY SEARCH    itdatastawt = hgbmdatatext "根据海关编码得到相应的描述    MODIFY itdata  ENDLOOP  PERFORM commentbuild CHANGING gtlisttopofpage  PERFORM subfieldcat  PERFORM layoutinit CHANGING gslayout  CALL FUNCTION 'REUSEALVGRIDDISPLAY' "调用ALV 显示表单数据  EXPORTING  icallbackprogram = syrepid  icallbacktopofpage = 'TOPOFPAGE'  itfieldcat = waalvfieldcat  islayout = gslayout  icallbackusercommand = gusercommand  TABLES  touttab = itdata  EXCEPTIONS  programerror =   OTHERS =   IF sysubrc <>     MESSAGE ID symsgid TYPE symsgty NUMBER symsgno    WITH symsgv symsgv symsgv symsgv  ENDIF***      Form  SUBFIELDCAT***       text**FORM subfieldcat  PERFORM addfield USING 'STUFE' '层次' 'C' 'X'  PERFORM addfield USING 'MATNR' '父件编码' 'C' 'X'  PERFORM addfield USING 'OJTXB' '父件描述' 'C' 'X'  PERFORM addfield USING 'BMENG' '基本数量' 'C' 'X'  PERFORM addfield USING 'IDNRK' '子件编码' 'C' 'X'  PERFORM addfield USING 'OJTXP' '子件描述' 'C' 'X'* PERFORM ADDFIELD USING 'MNGLG' 'MNGLG' 'C' 'X'  PERFORM addfield USING 'MNGKO' '用量' 'C' 'X'  PERFORM addfield USING 'NTGEW' '单重' 'C' 'X'  PERFORM addfield USING 'WEIGH' '重量' 'C' 'X'  PERFORM addfield USING 'STAWN' '海关编码' 'C' '' "外贸的商品代码和进口代码显示前导   PERFORM addfield USING 'STAWT' '描述' 'C' 'X' "外贸的商品代码和进口代码描述  IF rball = 'X'    PERFORM addfield USING 'MENGE' '组件数量' 'C' 'X'    PERFORM addfield USING 'MMEIN' '基本计量单位' 'C' 'X'    PERFORM addfield USING 'ALPGR' '替代组' 'C' ''    PERFORM addfield USING 'ALPRF' '优先级' 'C' 'X'    PERFORM addfield USING 'EWAHR' '使用可能性' 'C' 'X'    PERFORM addfield USING 'MTART' '物料类型' 'C' 'X'    PERFORM addfield USING 'AVOAU' '工序废品' 'C' 'X'    PERFORM addfield USING 'AUSCH' '工序报废' 'C' 'X'    PERFORM addfield USING 'STLAN' 'BOM 用途' 'C' 'X'    PERFORM addfield USING 'STLAL' '可选的BOM' 'C' 'X'    PERFORM addfield USING 'DATUV' '生效日期' 'C' 'X'    PERFORM addfield USING 'AENNR' '更改编号' 'C' 'X'    PERFORM addfield USING 'ANDAT' '创建于' 'C' 'X'    PERFORM addfield USING 'ANNAM' '创建者' 'C' 'X'  ENDIFENDFORM                    "SUBFIELDCAT***      Form  ADDFIELD***       text***      >IFIELDNAME  text*      >ITEXT       text*      >NG           text*      >INO         text*      >IZERO       text**FORM addfield USING ifieldname TYPE slisfieldname itext TYPE string ino TYPE c izero TYPE c  CLEAR waalvfield  waalvfieldfieldname = ifieldname  waalvfieldtabname = 'ITDATA'  waalvfieldddictxt = 'L'  waalvfieldnozero = izero "为空时显示前导 为X 时不显示前导  waalvfieldseltextl = itext  IF waalvfieldfieldname = 'BMENG'    waalvfieldemphasize = 'C'  ENDIF  IF waalvfieldfieldname = 'MNGKO'    waalvfieldemphasize = 'C'  ENDIF  APPEND waalvfield TO waalvfieldcatENDFORM "ADDFIELD***      Form  LAYOUTINIT***       text***      >RSLAYOUT  text**FORM layoutinit CHANGING rslayout TYPE slislayoutalv  rslayoutcolwidthoptimize = 'X'  rslayoutboxfieldname = 'SEL'  rslayoutzebra = 'X'  rslayoutdetailpopup = 'X'ENDFORM "LAYOUTINIT***      Form  TOPOFPAGE***       text**FORM topofpage  CALL FUNCTION 'REUSEALVCOMMENTARYWRITE'    EXPORTING      itlistcommentary = gtlisttopofpageENDFORM "TOPOFPAGE***      Form  COMMENTBUILD***       text***      >LTTOPOFPAGE  text**FORM commentbuild CHANGING lttopofpage TYPE slistlistheader  DATA lsline TYPE slislistheader  CLEAR lsline  lslinetyp = 'H'  lslineinfo = 'BOM 展开'  APPEND lsline TO lttopofpage  CLEAR lsline  lslinetyp = 'S'  lslinekey = '做成时间:'  lslineinfo = sydatum  APPEND lsline TO lttopofpage  lslinekey = '做成者:'  lslineinfo = syuname  APPEND lsline TO lttopofpageENDFORM "COMMENTBUILD***      Form  USERCOMMAND***       text***      >RUCOMM      text*      >RSSELFIELD  text**FORM usercommand USING rucomm LIKE syucommrsselfield TYPE slisselfield  CASE rucomm    WHEN 'IC' " SAP STANDARD CODE FOR DOUBLECLICKING      IF rsselfieldseltabfield = 'ITDATAMATNR'        SET PARAMETER ID 'MAT' FIELD rsselfieldvalue        CALL TRANSACTION 'CS' AND SKIP FIRST SCREEN      ENDIF      IF rsselfieldseltabfield = 'ITDATAIDNRK'        SET PARAMETER ID 'MAT' FIELD rsselfieldvalue        CALL TRANSACTION 'MM' AND SKIP FIRST SCREEN      ENDIF      IF rsselfieldseltabfield = 'ITDATAMBLNR'        SET PARAMETER ID 'MBN' FIELD rsselfieldvalue        CALL TRANSACTION 'MB' AND SKIP FIRST SCREEN      ENDIF  ENDCASEENDFORM                    "USERCOMMAND

职业精品

精彩专题

上传我的资料

热门资料

资料评价:

/ 11
所需积分:0 立即下载

意见
反馈

返回
顶部

Q