2008/11/05

CS_WHERE_USED_MAT 最上位BOM

REPORT  ZZZHAOTEST001.

TYPESBEGIN OF ITAB ,
        MATNR TYPE KEKO-MATNR, "品目コード
        WERKS TYPE KEKO-WERKS, "プラント
       END OF ITAB.

TYPESBEGIN OF ALTTAB ,
        MATNR TYPE KEKO-MATNR, "品目コード
        WERKS TYPE KEKO-WERKS, "プラント
       END OF ALTTAB.
*----- 最上位
TYPESBEGIN OF TOP_CODE ,
        MATNR TYPE KEKO-MATNR, "品目コード
        WERKS TYPE KEKO-WERKS, "プラント
       END OF TOP_CODE.

DATA:
      TD_ITAB TYPE  STANDARD TABLE OF ITAB,
      ST_ITAB TYPE ITAB,
      TD_ALTTAB TYPE  STANDARD TABLE OF ALTTAB,
      ST_ALTTAB TYPE ALTTAB,
      TD_TOP_CODE TYPE  STANDARD TABLE OF TOP_CODE,
      ST_TOP_CODE TYPE TOP_CODE.

DATA:LW_DATUB TYPE RC29L-DATUB,
     LW_DATUV TYPE RC29L-DATUV,
     LW_MATNR TYPE RC29L-MATNR,
     LST_TOPMAT TYPE MC29S,
     TD_WULTB TYPE  STANDARD TABLE OF STPOV,
     TD_EQUICAT TYPE STANDARD TABLE OF  CSCEQUI,
     TD_KNDCAT TYPE STANDARD TABLE OF  CSCKND,
     TD_MATCAT TYPE STANDARD TABLE OF  CSCMAT,
     TD_STDCAT TYPE STANDARD TABLE OF  CSCSTD,
     TD_TPLCAT TYPE STANDARD TABLE OF  CSCTPL.

DATA : TOP_CNT(5TYPE N,
       M_CNT(5TYPE N,
       LIN(5TYPE N,
       LINE_CNT(5TYPE N.

SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME.
SELECTION-SCREEN : COMMENT 1(60TEXT-001,
                   SKIP.
PARAMETERS : MATNR LIKE MARC-MATNR OBLIGATORY,
             WERKS LIKE MARC-WERKS OBLIGATORY DEFAULT '1101'.
SELECT-OPTIONS : BDATE FOR SY-DATUM DEFAULT SY-DATUM TO SY-DATUM
                 NO-EXTENSION OBLIGATORY.
SELECTION-SCREEN END OF BLOCK BLK1.

START-OF-SELECTION.
  ST_ITAB-MATNR = MATNR.
  ST_ITAB-WERKS = 1.
  APPEND  ST_ITAB TO TD_ITAB.
  CLEAR ST_ITAB.

  PERFORM GET_TOP_CODE.

*&---------------------------------------------------------------------*
*&      FORM  GET_TOP_CODE
*&---------------------------------------------------------------------*
FORM GET_TOP_CODE.
  DATA:
     LST_WULTB TYPE   STPOV,
     LST_EQUICAT TYPE  CSCEQUI,
     LST_KNDCAT TYPE   CSCKND,
     LST_MATCAT TYPE   CSCMAT,
     LST_STDCAT TYPE   CSCSTD,
     LST_TPLCAT TYPE   CSCTPL.

  CLEAR LIN.
  DESCRIBE TABLE TD_ITAB LINES LIN.
  IF LIN = 0.
    EXIT.
  ENDIF.

  LOOP AT TD_ITAB INTO ST_ITAB.
    CALL FUNCTION 'CS_WHERE_USED_MAT'
         EXPORTING
              DATUB                      = BDATE-HIGH
              DATUV                      = BDATE-LOW
              MATNR                      = ST_ITAB-MATNR
              WERKS                      = WERKS
         TABLES
    WULTB                            = TD_WULTB
    EQUICAT                          = TD_EQUICAT
    KNDCAT                           = TD_KNDCAT
    MATCAT                           = TD_MATCAT
    STDCAT                           = TD_STDCAT
    TPLCAT                           = TD_TPLCAT
         EXCEPTIONS
              CALL_INVALID               = 1
              MATERIAL_NOT_FOUND         = 2
              NO_WHERE_USED_REC_FOUND    = 3
              NO_WHERE_USED_REC_SELECTED = 4
              NO_WHERE_USED_REC_VALID    = 5
              OTHERS                     = 6.

    CLEAR LINE_CNT.
    DESCRIBE TABLE TD_WULTB LINES LINE_CNT.
    IF LINE_CNT = 0.
      MOVE ST_ITAB-MATNR TO ST_TOP_CODE-MATNR.
      ST_TOP_CODE-WERKS = ST_ITAB-WERKS.
      COLLECT ST_TOP_CODE INTO TD_TOP_CODE.
      CLEAR ST_TOP_CODE.
    ELSE.
      LOOP AT TD_WULTB[] INTO LST_WULTB WHERE POSTP NE 'F' AND DATUV LE BDATE-HIGH
                      AND ( SUMFG = ' ' OR SUMFG = 'X' ).
        SELECT SINGLE LKENZ INTO STAS-LKENZ FROM STAS
               WHERE STLTY = 'M'
               AND   STLNR = LST_WULTB-STLNR
               AND   STLAL = '01'
               AND   STLKN = LST_WULTB-STLKN
               AND   DATUV LE BDATE-LOW
               AND   LKENZ = 'X'.
        IF SY-SUBRC NE 0.
          MOVE LST_WULTB-MATNR TO ST_ALTTAB-MATNR.
          ST_ALTTAB-WERKS = LST_WULTB-WERKS.
          COLLECT ST_ALTTAB INTO TD_ALTTAB.
        ENDIF.
        CLEAR ST_ALTTAB.
      ENDLOOP.
    ENDIF.
    REFRESH : TD_WULTB,TD_EQUICAT,TD_KNDCAT,TD_MATCAT,TD_STDCAT,TD_TPLCAT.


  ENDLOOP.

  REFRESH TD_ITAB.
  TD_ITAB[] = TD_ALTTAB[].
  REFRESH TD_ALTTAB.
  PERFORM GET_TOP_CODE.

ENDFORM.                    " GET_TOP_CODE

6 comments:

Anonymous said...

get facebook likes
buy facebook likes

http://www.modmomsclub.com/content/make-treats-little-less-sweet http://entrepreneurship.unica-network.eu/content/peter-drucker-society-europe-launches-essay-contest
facebook likes buy facebook likes buy facebook likes
Personally I never have 2 Anti-Virus programs installed at the same time. They seem to have a knack for totally screwing each other up. They like to detect each other as a virus signature and tend to blow each other up. ~Yiffy MSE

buy facebook likes facebook likes [url=http://1000fbfans.info]get facebook likes [/url] buy facebook likes

Anonymous said...

Hey there! I know this is kinda off topic however , I'd figured I'd
ask. Would you be interested in trading links or maybe guest authoring a blog post or
vice-versa? My blog discusses a lot of the same topics as yours and I feel we could greatly benefit from each other.
If you might be interested feel free to send me an e-mail.
I look forward to hearing from you! Awesome blog by the way!


Here is my site ... Twitter technology
My website > followers twitter buy

Anonymous said...

whoah this blog is fantastic i really like reading your articles.
Stay up the great work! You recognize, lots of people are looking round for this info, you can
aid them greatly.
facebook for business

Anonymous said...

Aԁmiring the ԁedіcаtiоn yοu
put іnto уοur sitе and detaіled infoгmation yοu present.
It's awesome to come across a blog every once in a while that isn't the same out of datе rehashed material.
Fantastic reаd! Ι've bookmarked your site and I'm аddіng yοuг RЅS feeds to my Google aсcount.


Here is my wеb-site :: natural coffee extract

chenmeinv0 said...

adidas superstar trainers
cheap jerseys
cheap basketball shoes
mavericks jerseys
cheap nhl jerseys
polo ralph lauren outlet
moncler coats
moncler pas cher
louboutin shoes
ugg classic
2016.12.21xukaimin

Anonymous said...

directory dolabuy.co you can look here Dolabuy Loewe i thought about this Fendi Dolabuy