12
返回列表 发新帖
楼主: houbao408

[原创] 由BOM组件反查料号

[复制链接]
求职 : SAP实施
论坛徽章:
261
土豪章
日期:2018-07-10 16:19:05ITPUB18周年纪念章
日期:2018-09-17 10:09:49ITPUB18周年纪念章
日期:2018-09-17 10:12:57妮可·罗宾
日期:2018-10-28 13:07:10ITPUB18周年纪念章
日期:2018-11-13 15:31:24ITPUB18周年纪念章
日期:2018-11-13 15:40:4519周年集字徽章-庆
日期:2019-09-06 18:30:1219周年集字徽章-19
日期:2021-02-03 16:43:4820周年集字徽章-年	
日期:2023-07-21 18:25:26
11#
 楼主| 发表于 2011-2-22 16:06 | 只看该作者
原帖由 qinyuliang 于 2011-2-22 15:52 发表


找到上层料号之后,一方面将该料号保存到另一内表,同时将该料号重新插入到a_itab 中,一直循环该动作,直到取不到上层物料


不用一直取上层物料,比如输入两个组件,只需要反查出哪些料号包含这两个组件的料号就好了,不论该料号是不是成品....

使用道具 举报

回复
论坛徽章:
3
ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:372014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11
12#
发表于 2011-2-22 16:24 | 只看该作者
好吧 , 給你一個例子 .

DATA: BEGIN OF I_TAB1 OCCURS 0 ,
  MATNR    LIKE  MARC-MATNR ,
  WERKS    LIKE  MARC-WERKS ,
END OF I_TAB1 .


DATA: BEGIN OF I_TAB2 OCCURS 0.
        INCLUDE STRUCTURE STPOV .
DATA: END OF I_TAB2 .

DATA: I_TAB3 LIKE I_TAB2 OCCURS 0 WITH HEADER LINE .

DATA: BEGIN OF I_EQUICAT OCCURS 0.
        INCLUDE STRUCTURE CSCEQUI .
DATA: END OF I_EQUICAT .


DATA: BEGIN OF I_KNDCAT OCCURS 0.
        INCLUDE STRUCTURE CSCKND .
DATA: END OF I_KNDCAT .


DATA: BEGIN OF I_MATCAT OCCURS 0.
        INCLUDE STRUCTURE CSCMAT .
DATA: END OF I_MATCAT .


DATA: BEGIN OF I_STDCAT OCCURS 0.
        INCLUDE STRUCTURE CSCSTD .
DATA: END OF I_STDCAT .


DATA: BEGIN OF I_TPLCAT OCCURS 0.
        INCLUDE STRUCTURE CSCTPL .
DATA: END OF I_TPLCAT .



SELECTION-SCREEN BEGIN OF BLOCK H1 WITH FRAME TITLE HEAD1  .
SELECT-OPTIONS V_MATNR FOR RC29L-MATNR   .
SELECT-OPTIONS V_WERKS FOR RC29L-WERKS OBLIGATORY  NO INTERVALS NO-EXTENSION  .
PARAMETERS DATUB LIKE RC29L-DATUB OBLIGATORY DEFAULT '99991231'  .   
PARAMETERS DATUV LIKE RC29L-DATUV OBLIGATORY DEFAULT SY-DATUM  .     
PARAMETERS STLAN LIKE RC29L-STLAN OBLIGATORY DEFAULT '1' .           
SELECTION-SCREEN END OF BLOCK H1 .


*--------------------
INITIALIZATION .
*--------------------
HEAD1 = 'XXXXXXX' .

*----------------------------
START-OF-SELECTION .
*----------------------------

PERFORM GET_DATA .
PERFORM LIST_INFO .





FROM GET_DATA .

  select  matnr  werks into corresponding fields of table i_tab1
   from marc  where marc~matnr in v_matnr and
                    marc~werks in v_werks .  
     
        
   if not  i_tab1[]  is initial .
        
      SORT  I_TAB1 .
      CLEAR:I_TAB3 .
      REFRESH:I_TAB3 .

      loop at i_tab1 .     

        CLEAR:I_TAB2 ,
              I_EQUICAT ,
              I_KNDCAT  ,
              I_MATCAT  ,
              I_STDCAT  ,
              I_TPLCAT  .


      REFRESH: I_TAB2    ,
               I_EQUICAT ,
               I_KNDCAT ,
               I_MATCAT ,
               I_STDCAT ,
               I_TPLCAT .



      CALL FUNCTION 'CS_WHERE_USED_MAT_ANY'
         EXPORTING
           DATUB             = DATUB
           DATUV             = DATUV
           MATNR             = I_TAB1-MATNR
           POSTP             = 'L'
           STLAN             = STLAN
           WERKS             = I_TAB1-WERKS                    
         TABLES
            WULTB             = I_TAB2
            EQUICAT           = I_EQUICAT
            KNDCAT            = I_KNDCAT
            MATCAT            = I_MATCAT
            STDCAT            = I_STDCAT
            TPLCAT            = I_TPLCAT
         EXCEPTIONS
            NO_POSITION_FOUND = 1
            OTHERS            = 2.


             LOOP AT I_TAB2 .
               MOVE-CORRESPONDING i_tab2 to i_tab3 .
               APPEND I_TAB3 .
             endloop.
      endloop .

   endif .

ENDFORM .


FROM LIST_INFO .

  LOOP AT I_TAB3 .

   WRITE:/ XXXXXXX .

  ENDLOOP .



ENDFORM .

ps: i_tab3 就是你要的 , 裡面的 matnr 字段就是父階 IDNRK 字段是你輸入查詢的料件

使用道具 举报

回复
求职 : SAP实施
论坛徽章:
261
土豪章
日期:2018-07-10 16:19:05ITPUB18周年纪念章
日期:2018-09-17 10:09:49ITPUB18周年纪念章
日期:2018-09-17 10:12:57妮可·罗宾
日期:2018-10-28 13:07:10ITPUB18周年纪念章
日期:2018-11-13 15:31:24ITPUB18周年纪念章
日期:2018-11-13 15:40:4519周年集字徽章-庆
日期:2019-09-06 18:30:1219周年集字徽章-19
日期:2021-02-03 16:43:4820周年集字徽章-年	
日期:2023-07-21 18:25:26
13#
 楼主| 发表于 2011-2-22 17:17 | 只看该作者

回复 #12 SAP_IT 的帖子

你可能没有懂我的意思,我是想要得到同时含有且只含有所输入的组件,比如输入两个组件,则出来的结果料号的组件只包含这两个组件,不能少也不能多!
你给出的程序是找出包含所输入组件的所有料号,只要料号有包含一个组件就都抓出来了,和我的意思有点出入。

使用道具 举报

回复
论坛徽章:
51
ITPUB元老
日期:2011-06-16 10:47:54双鱼座
日期:2015-07-29 10:58:352015年新春福章
日期:2015-03-06 11:57:31暖羊羊
日期:2015-03-04 14:50:37马上有对象
日期:2015-01-05 07:53:45马上有房
日期:2014-11-21 16:58:17马上加薪
日期:2014-08-15 13:24:48马上加薪
日期:2014-08-06 11:53:12马上有房
日期:2014-07-17 16:43:48马上有车
日期:2014-02-18 16:41:11
14#
发表于 2011-2-22 17:43 | 只看该作者
是否还需要输入BOM的有效期间?
可以这样考虑:把组件先放内表A,B中。
loop A  反查BOM,如果上层不在B中,就continue. 在B表中,数量+1,直到反查结束,如果数量 = B表的组件数量和,那么就查到你想要的了。

使用道具 举报

回复
求职 : SAP实施
论坛徽章:
261
土豪章
日期:2018-07-10 16:19:05ITPUB18周年纪念章
日期:2018-09-17 10:09:49ITPUB18周年纪念章
日期:2018-09-17 10:12:57妮可·罗宾
日期:2018-10-28 13:07:10ITPUB18周年纪念章
日期:2018-11-13 15:31:24ITPUB18周年纪念章
日期:2018-11-13 15:40:4519周年集字徽章-庆
日期:2019-09-06 18:30:1219周年集字徽章-19
日期:2021-02-03 16:43:4820周年集字徽章-年	
日期:2023-07-21 18:25:26
15#
 楼主| 发表于 2011-2-23 08:57 | 只看该作者

回复 #14 jiba121 的帖子

不用,默认是当前的时间。
你说的意思我不是很明白,内表A,B中都是放组件的,那loop A,得到组件上层的料号怎么会在B中呢?

使用道具 举报

回复
求职 : SAP实施
论坛徽章:
261
土豪章
日期:2018-07-10 16:19:05ITPUB18周年纪念章
日期:2018-09-17 10:09:49ITPUB18周年纪念章
日期:2018-09-17 10:12:57妮可·罗宾
日期:2018-10-28 13:07:10ITPUB18周年纪念章
日期:2018-11-13 15:31:24ITPUB18周年纪念章
日期:2018-11-13 15:40:4519周年集字徽章-庆
日期:2019-09-06 18:30:1219周年集字徽章-19
日期:2021-02-03 16:43:4820周年集字徽章-年	
日期:2023-07-21 18:25:26
16#
 楼主| 发表于 2011-2-23 14:38 | 只看该作者
顶起!

使用道具 举报

回复
论坛徽章:
0
17#
发表于 2011-6-30 09:31 | 只看该作者
why not use nested method!

使用道具 举报

回复
论坛徽章:
7
ERP板块每日发贴之星
日期:2011-06-20 01:01:01ERP板块每日发贴之星
日期:2011-07-03 01:01:012013年新春福章
日期:2013-02-25 14:51:242014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11暖羊羊
日期:2015-03-04 14:50:372015年新春福章
日期:2015-03-06 11:57:31
18#
发表于 2011-7-2 14:34 | 只看该作者
学习~

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表