標籤

4GL (1) 人才發展 (10) 人物 (3) 太陽能 (4) 心理 (3) 心靈 (10) 文學 (31) 生活常識 (14) 光學 (1) 名句 (10) 即時通訊軟體 (2) 奇狐 (2) 音樂 (2) 產業 (5) 郭語錄 (3) 無聊 (3) 統計 (4) 新聞 (1) 經濟學 (1) 經營管理 (42) 解析度 (1) 遊戲 (5) 電學 (1) 網管 (10) 廣告 (1) 數學 (1) 機率 (1) 雜趣 (1) 證券 (4) 證券期貨 (1) ABAP (15) AD (1) agentflow (4) AJAX (1) Android (1) AnyChart (1) Apache (14) BASIS (4) BDL (1) C# (1) Church (1) CIE (1) CO (38) Converter (1) cron (1) CSS (23) DMS (1) DVD (1) Eclipse (1) English (1) excel (5) Exchange (4) Failover (1) FI (57) File Transfer (1) Firefox (2) FM (2) fourjs (1) gladiatus (1) google (1) Google Maps API (2) grep (1) Grub (1) HR (2) html (23) HTS (8) IE (1) IE 8 (1) IIS (1) IMAP (3) Internet Explorer (1) java (3) JavaScript (22) jQuery (6) JSON (1) K3b (1) LED (3) Linux (112) Linux Mint (4) Load Balance (1) Microsoft (2) MIS (2) MM (51) MSSQL (1) MySQL (27) Network (1) NFS (1) Office (1) Oracle (125) Outlook (3) PDF (6) Perl (59) PHP (33) PL/SQL (1) PL/SQL Developer (1) PM (3) Postfix (2) postfwd (1) PostgreSQL (1) PP (50) python (1) QM (1) Red Hat (4) Reporting Service (28) ruby (11) SAP (234) scp (1) SD (16) sed (1) Selenium-WebDriver (5) shell (5) SQL (4) SQL server (8) SQuirreL SQL Client (1) SSH (2) SWOT (3) Symantec (2) T-SQL (7) Tera Term (2) tip (1) tiptop (22) Tomcat (6) Trouble Shooting (1) Tuning (5) Ubuntu (33) ufw (1) utf-8 (1) VIM (11) Virtual Machine (2) vnc (3) Web Service (2) wget (1) Windows (19) Windows (1) WM (6) youtube (1) yum (2)

2012年11月19日 星期一

SAPLZM008





PROCESS BEFORE OUTPUT.
  MODULE STATUS_3000.
  LOOP WITH CONTROL TC_ZST046.
    MODULE FILL_TABLE_CONTROL.
  ENDLOOP.
*
PROCESS AFTER INPUT.
  LOOP WITH CONTROL TC_ZST046.
    MODULE READ_TABLE_CONTROL.
  ENDLOOP.
*  MODULE UPDATE_ZST046.

PROCESS ON VALUE-REQUEST.
*  FIELD ZST046-MATNRO MODULE VALUE_MATNRO_INPUT.
   FIELD ZST046-MATNRO MODULE VALUE_ZST046_MATNRO_INPUT.
   FIELD ZST046-MATNRC MODULE VALUE_ZST046_MATNRC_INPUT.
   FIELD ZST046-ZGROUP MODULE VALUE_ZST046_ZGROUP_INPUT.
   FIELD ZST046-LEDC MODULE VALUE_ZST046_LEDC_INPUT.
  FIELD ZST046-SEQNO MODULE VALUE_ZST046_SEQNO_INPUT.


*----------------------------------------------------------------------*
***INCLUDE LZM008O01 .
*----------------------------------------------------------------------*

*&---------------------------------------------------------------------*
*&      Module  modify_screen_attrib  OUTPUT
*&---------------------------------------------------------------------*
module modify_screen_attrib output.
   loop at screen.
      case trantype.
         when 'A'.
            screen-input = 0.
      endcase.
      modify screen.
   endloop.
endmodule.                 " modify_screen_attrib  OUTPUT

*{   INSERT         DEVK900156                                        1
*&---------------------------------------------------------------------*
*&      Module  STATUS_3000  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE STATUS_3000 OUTPUT.
**先看ZST046有沒有對應DN的資料
**CLEAR it_zst046.
**FREE it_zst046.
*  SELECT SINGLE * FROM ZST046
*   WHERE VBELN = LIPS-VGBEL
*     AND POSNR = LIPS-VGPOS.
*  IF SY-SUBRC = 0.
*    SELECT *
*      FROM ZST046
*     WHERE VBELN = LIPS-VGBEL
*       AND POSNR = LIPS-VGPOS.
*      READ TABLE IT_ZST046 WITH KEY VBELN = ZST046-VBELN
*                              POSNR = ZST046-POSNR
*                              SEQNO = ZST046-SEQNO.
*      IF SY-SUBRC <> 0.
*        READ TABLE D_ZST046 WITH KEY VBELN = ZST046-VBELN
*                              POSNR = ZST046-POSNR
*                              SEQNO = ZST046-SEQNO.
**如果在紀錄DELETE的INTERNAL TABLE也找不到,代表確實要新增
*        IF SY-SUBRC <> 0.
*          MOVE-CORRESPONDING ZST046 TO IT_ZST046.
*          APPEND IT_ZST046.
*        ENDIF.
*      ENDIF.
*    ENDSELECT.
*  ENDIF.
*  DESCRIBE TABLE IT_ZST046 LINES L_LINES.
**如果沒有,則去SALES ORDER的ZST045抓對應的SO資料
**20100910 BY SM
**  IF L_LINES = 0.
*CLEAR IT_ZST046.
*FREE IT_ZST046.
*    SELECT *
*      INTO CORRESPONDING FIELDS OF TABLE IT_ZST046
*      FROM ZST045
*     WHERE VBELN = LIPS-VGBEL
*       AND POSNR = LIPS-VGPOS
*       AND KUNNR = LIKP-KUNAG.
**  ENDIF.
*  LOOP AT IT_ZST046.
*    IT_ZST046-VBELN = LIPS-VBELN.
*    IT_ZST046-POSNR = LIPS-POSNR.
*    MODIFY IT_ZST046.
*  ENDLOOP.
*  L_LINES = 0.
*  LOOP AT IT_ZST046 WHERE VBELN = LIPS-VBELN AND POSNR = LIPS-POSNR.
*    L_LINES = L_LINES + 1.
*  ENDLOOP.
  DESCRIBE TABLE IT_ZST046 LINES L_LINES.
  TC_ZST046-LINES = L_LINES.
  SORT IT_ZST046 BY POSNR SEQNO.
ENDMODULE.                 " STATUS_3000  OUTPUT

*}   INSERT

*{   INSERT         DEVK900156                                        2
*&---------------------------------------------------------------------*
*&      Module  FILL_TABLE_CONTROL  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE FILL_TABLE_CONTROL OUTPUT.
*  READ TABLE IT_ZST046 INTO ZST046 INDEX TC_ZST046-CURRENT_LINE.
  L_LINES = 0.
  LOOP AT IT_ZST046 WHERE VBELN = LIPS-VBELN AND POSNR = LIPS-POSNR
                      AND MATNR = LIPS-MATNR.   "20110905 BY SM
    L_LINES = L_LINES + 1.
    IF L_LINES = TC_ZST046-CURRENT_LINE.
      MOVE-CORRESPONDING IT_ZST046 TO ZST046 .
    ENDIF.
  ENDLOOP.
ENDMODULE.                 " FILL_TABLE_CONTROL  OUTPUT

*}   INSERT

*----------------------------------------------------------------------*
***INCLUDE LZM008I01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  beleg_suchen  INPUT
*&---------------------------------------------------------------------*
MODULE BELEG_SUCHEN INPUT.
  DATA: FLAG.

  FLAG  = 'X'.
  EXPORT FLAG TO MEMORY ID 'MB51_FLAG'.
  CALL TRANSACTION 'MB51'.
  GET PARAMETER ID 'MBN' FIELD LIPS-REFDOCNR.
  GET PARAMETER ID 'POS' FIELD LIPS-REFDOCITEM.
ENDMODULE.                 " beleg_suchen  INPUT
*&---------------------------------------------------------------------*
*&      Module  READ_TABLE_CONTROL  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE READ_TABLE_CONTROL INPUT.
  DESCRIBE TABLE IT_ZST046 LINES L_LINES.
  IF ZST046-MATNRO IS INITIAL.
*    DELETE IT_ZST046 INDEX TC_ZST046-CURRENT_LINE.
    DELETE IT_ZST046 WHERE VBELN = ZST046-VBELN AND
                              POSNR = ZST046-POSNR AND
                              SEQNO = ZST046-SEQNO.
  ELSE.
    ZST046-VBELN = LIPS-VBELN.
    ZST046-POSNR = LIPS-POSNR.
    ZST046-MATNR = LIPS-MATNR.
    ZST046-KUNNR = LIKP-KUNAG.
    READ TABLE IT_ZST046 WITH KEY VBELN = ZST046-VBELN
                              POSNR = ZST046-POSNR
                              SEQNO = ZST046-SEQNO
*20101025 BY SM 若有修改料號,也要能判斷
                              MATNR = ZST046-MATNR
                              KUNNR = ZST046-KUNNR.
    IF SY-SUBRC = 0.
      MODIFY IT_ZST046 FROM ZST046 TRANSPORTING
                            VBELN POSNR MATNR MATNRO MATNRC KUNNR CHPCAT
                            IVULMT IVMIN IVMAX VFULMT VFMIN VFMAX
                            WDULMT WDMIN WDMAX CTULMT CCTMIN CCTMAX
                            CIE1 CIE2 CIE3 CIE4 CIE5 CIE6 CIE7 CIE8
                            CIE9 CIE10 CIE11 CIE12 CIE13 CIE14 CIE15 CIE16
      WHERE VBELN = ZST046-VBELN
        AND POSNR = ZST046-POSNR
*20110905 BY SM
        AND KUNNR = ZST046-KUNNR
        AND MATNR = ZST046-MATNR
*        AND MATNRO = ZST046-MATNRO     "20111017 BY SM
*        AND MATNRC = ZST046-MATNRC
*        AND ZGROUP = ZST046-ZGROUP
*        AND LEDC =  ZST046-LEDC
        AND SEQNO = ZST046-SEQNO.

    ELSE.
      IF ZST046-SEQNO <> SPACE.
        DELETE IT_ZST046 WHERE VBELN = ZST046-VBELN AND POSNR = ZST046-POSNR AND SEQNO = ZST046-SEQNO.
        MOVE-CORRESPONDING ZST046 TO IT_ZST046.
        APPEND IT_ZST046.
      ENDIF.
    ENDIF.
  ENDIF.
*  ELSEIF TC_ZST046-CURRENT_LINE <= L_LINES.
*    MODIFY IT_ZST046 FROM ZST046 INDEX TC_ZST046-CURRENT_LINE.
*  ELSE.
*    ZST046-VBELN = LIPS-VBELN.
*    ZST046-POSNR = LIPS-POSNR.
*    ZST046-MATNR = LIPS-MATNR.
*    ZST046-KUNNR = LIKP-KUNAG.
*    MOVE-CORRESPONDING ZST046 TO IT_ZST046.
*    APPEND IT_ZST046.
*  ENDIF.
ENDMODULE.                 " READ_TABLE_CONTROL  INPUT
*&---------------------------------------------------------------------*
*&      Module  UPDATE_ZST046  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE UPDATE_ZST046 INPUT.
  FREE MEMORY ID 'ZST046'.
  EXPORT IT_ZST046 TO MEMORY ID 'ZST046'.
*  DELETE FROM ZST046
*   WHERE VBELN = LIPS-VBELN
*     AND POSNR = LIPS-POSNR.
*20100910 BY SM ->MARK LINE 77
* MODIFY ZST046 FROM TABLE IT_ZST046.
*
*  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
*    EXPORTING
*      WAIT = 'X'.
ENDMODULE.                 " UPDATE_ZST046  INPUT
*&---------------------------------------------------------------------*
*&      Module  VALUE_MATNRO_INPUT  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE VALUE_ZST046_SEQNO_INPUT INPUT.
  DATA: IT_TMP TYPE ZST046     OCCURS 0 WITH HEADER LINE,
        IT_RET TYPE DDSHRETVAL OCCURS 0 WITH HEADER LINE,
        IT_DYNPFIELDS TYPE DYNPREAD OCCURS 0 WITH HEADER LINE,
        L_COVT(10TYPE C,
        L_CVTN TYPE N.
  DATA: L_SEQNO LIKE ZST046-SEQNO.
  DATA : L_CURSORFIELD(20VALUE 'ZST046-SEQNO'.
*20110905 BY SM
  CLEAR L_LINE.
  GET CURSOR LINE L_LINE.
  SET CURSOR FIELD 'ZST046-SEQNO'.

  GET CURSOR FIELD L_CURSORFIELD VALUE L_SEQNO.

  CLEAR IT_DYNPFIELDS. REFRESH IT_DYNPFIELDS.
*20110905 BY SM
  CLEAR IT_TMP.
  REFRESH IT_TMP.
  CLEAR IT_RET.
  REFRESH IT_RET.
*20110905 BY SM
IF IT_ZST046[] IS NOT INITIAL.
READ TABLE IT_ZST046 index L_LINE.
  IF ZST046-MATNRO IS INITIAL.
    ZST046-MATNRO = IT_ZST046-MATNRO.
  ENDIF.
  IF ZST046-MATNRC IS INITIAL.
    ZST046-MATNRC = IT_ZST046-MATNRC.
  ENDIF.
  IF ZST046-ZGROUP IS INITIAL.
    ZST046-ZGROUP = IT_ZST046-ZGROUP.
  ENDIF.
  IF ZST046-LEDC IS INITIAL.
    ZST046-LEDC = IT_ZST046-LEDC.
  ENDIF.
ENDIF.
*20100913 BY SM 維持抓既有的ZST045資料,若有異動,USER自行手動修改
*  SELECT * INTO CORRESPONDING FIELDS OF TABLE IT_TMP
*    FROM ZST045
*   WHERE VBELN = LIPS-VGBEL
*     AND POSNR = LIPS-VGPOS
**20101022 BY SM
*     AND KUNNR = LIKP-KUNAG "sold-to-party
*     AND MATNR = LIPS-MATNR.
IF ZST046-ZGROUP IS NOT INITIAL AND ZST046-LEDC IS NOT INITIAL.
  SELECT * INTO CORRESPONDING FIELDS OF TABLE IT_TMP
    FROM ZST045
    WHERE VBELN  = LIPS-VGBEL
      AND POSNR  = LIPS-VGPOS
      AND KUNNR  = LIKP-KUNNR
      AND MATNR  = LIPS-MATNR
      AND MATNRO = ZST046-MATNRO
      AND MATNRC = ZST046-MATNRC
      AND ZGROUP = ZST046-ZGROUP
      AND LEDC   = ZST046-LEDC.
ELSEIF ZST046-ZGROUP IS NOT INITIAL.
    SELECT * INTO CORRESPONDING FIELDS OF TABLE IT_TMP
    FROM ZST045
    WHERE VBELN  = LIPS-VGBEL
      AND POSNR  = LIPS-VGPOS
      AND KUNNR  = LIKP-KUNNR
      AND MATNR  = LIPS-MATNR
      AND MATNRO = ZST046-MATNRO
      AND MATNRC = ZST046-MATNRC
      AND ZGROUP = ZST046-ZGROUP.
ELSEIF ZST046-LEDC IS NOT INITIAL.
    SELECT * INTO CORRESPONDING FIELDS OF TABLE IT_TMP
    FROM ZST045
    WHERE VBELN  = LIPS-VGBEL
      AND POSNR  = LIPS-VGPOS
      AND KUNNR  = LIKP-KUNNR
      AND MATNR  = LIPS-MATNR
      AND MATNRO = ZST046-MATNRO
      AND MATNRC = ZST046-MATNRC
      AND LEDC   = ZST046-LEDC.
ELSEIF ZST046-MATNRO IS INITIAL AND ZST046-MATNRC IS INITIAL.
  SELECT * INTO CORRESPONDING FIELDS OF TABLE IT_TMP
    FROM ZST045
    WHERE VBELN  = LIPS-VGBEL
      AND POSNR  = LIPS-VGPOS
      AND KUNNR  = LIKP-KUNNR
      AND MATNR  = LIPS-MATNR.
ENDIF.

IF SY-SUBRC = 0.
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      RETFIELD    = 'SEQNO'
      DYNPPROG    = SY-REPID
      DYNPNR      = SY-DYNNR
      DYNPROFIELD = 'ZST046-SEQNO'
      VALUE_ORG   = 'S'
    TABLES
      VALUE_TAB   = IT_TMP
      RETURN_TAB  = IT_RET.
  IF IT_RET[] IS NOT INITIAL.
    READ TABLE IT_TMP WITH KEY SEQNO = IT_RET-FIELDVAL.
*20110905 BY SM
    IT_DYNPFIELDS-FIELDNAME = IT_RET-RETFIELD.
    IT_DYNPFIELDS-FIELDVALUE = IT_RET-FIELDVAL.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
*20100913 BY SM 因為改用SEQNO當KEY ,所以要多抓對外料號欄位MATNRO,否則若重新選擇後該項次不會更新,若有兩個項次以上則會空白
     IT_DYNPFIELDS-FIELDNAME = 'ZST046-MATNRO'.
     IT_DYNPFIELDS-FIELDVALUE = IT_TMP-MATNRO.
     IT_DYNPFIELDS-STEPL = L_LINE.
     APPEND IT_DYNPFIELDS.
*
*    SORT IT_ZST046 BY POSNR SEQNO DESCENDING.
*    READ TABLE IT_ZST046 WITH KEY POSNR = LIPS-POSNR.
*20100910 BY SM MARK LINE 131-133 解決序號問題
*    L_CVTN = IT_ZST046-SEQNO + 1.
*    IT_DYNPFIELDS-FIELDVALUE = L_CVTN.
*    IT_TMP-SEQNO = L_CVTN.
*    IT_DYNPFIELDS-STEPL = L_LINE.
*    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-MATNRC'.
    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-MATNRC.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.

    IT_DYNPFIELDS-FIELDNAME = 'ZST046-ZGROUP'.
    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-ZGROUP.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.

    IT_DYNPFIELDS-FIELDNAME = 'ZST046-LEDC'.
    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-LEDC.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
*20110905 BY SM
*    IT_DYNPFIELDS-FIELDNAME = 'ZST046-CHPCAT'.
*    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-CHPCAT.
*    IT_DYNPFIELDS-STEPL = L_LINE.
*    APPEND IT_DYNPFIELDS.
*    IT_DYNPFIELDS-FIELDNAME = 'ZST046-IVULMT'.
*    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-IVULMT.
*    IT_DYNPFIELDS-STEPL = L_LINE.
*    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-SEQNO'.
    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-SEQNO.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
*20110905 BY SM
    SORT IT_ZST046 BY POSNR SEQNO DESCENDING.

    READ TABLE IT_ZST046 WITH KEY POSNR = LIPS-POSNR.

    IT_DYNPFIELDS-FIELDNAME = 'ZST046-FLAG'.
    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-FLAG.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.

    IT_DYNPFIELDS-FIELDNAME = 'ZST046-IVMIN'.
    L_COVT = IT_TMP-IVMIN.
    IT_DYNPFIELDS-FIELDVALUE = L_COVT.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-IVMAX'.
    L_COVT = IT_TMP-IVMAX.
    IT_DYNPFIELDS-FIELDVALUE = L_COVT.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
*20110905 BY SM
*    IT_DYNPFIELDS-FIELDNAME = 'ZST046-VFULMT'.
*    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-VFULMT.
*    IT_DYNPFIELDS-STEPL = L_LINE.
*    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-VFMIN'.
    L_COVT = IT_TMP-VFMIN.
    IT_DYNPFIELDS-FIELDVALUE = L_COVT.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-VFMAX'.
    L_COVT = IT_TMP-VFMAX.
    IT_DYNPFIELDS-FIELDVALUE = L_COVT.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
*20110905
*    IT_DYNPFIELDS-FIELDNAME = 'ZST046-WDULMT'.
*    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-WDULMT.
*    IT_DYNPFIELDS-STEPL = L_LINE.
*    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-WDMIN'.
    L_COVT = IT_TMP-WDMIN.
    IT_DYNPFIELDS-FIELDVALUE = L_COVT.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-WDMAX'.
    L_COVT = IT_TMP-WDMAX.
    IT_DYNPFIELDS-FIELDVALUE = L_COVT.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
*2011905 BY SM
*    IT_DYNPFIELDS-FIELDNAME = 'ZST046-CTULMT'.
*    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-CTULMT.
*    IT_DYNPFIELDS-STEPL = L_LINE.
*    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-CCTMIN'.
    L_COVT = IT_TMP-CCTMIN.
    IT_DYNPFIELDS-FIELDVALUE = L_COVT.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-CCTMAX'.
    L_COVT = IT_TMP-CCTMAX.
    IT_DYNPFIELDS-FIELDVALUE = L_COVT.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-CIE1'.
    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-CIE1.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-CIE2'.
    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-CIE2.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-CIE3'.
    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-CIE3.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-CIE4'.
    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-CIE4.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-CIE5'.
    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-CIE5.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-CIE6'.
    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-CIE6.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-CIE7'.
    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-CIE7.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-CIE8'.
    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-CIE8.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-CIE9'.
    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-CIE9.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-CIE10'.
    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-CIE10.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-CIE11'.
    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-CIE11.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-CIE12'.
    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-CIE12.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-CIE13'.
    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-CIE13.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-CIE14'.
    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-CIE14.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-CIE15'.
    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-CIE15.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
    IT_DYNPFIELDS-FIELDNAME = 'ZST046-CIE16'.
    IT_DYNPFIELDS-FIELDVALUE = IT_TMP-CIE16.
    IT_DYNPFIELDS-STEPL = L_LINE.
    APPEND IT_DYNPFIELDS.
*20110905 BY SM
*    DELETE IT_ZST046 WHERE POSNR = LIPS-POSNR AND SEQNO = L_SEQNO.
      DELETE IT_ZST046
       WHERE MATNRO = ZST046-MATNRO
         AND MATNRC = ZST046-MATNRC
         AND ZGROUP = ZST046-ZGROUP
         AND LEDC = ZST046-LEDC
         AND POSNR = LIPS-POSNR
         AND SEQNO = L_SEQNO.

    CALL FUNCTION 'DYNP_VALUES_UPDATE'
      EXPORTING
        DYNAME     = SY-REPID
        DYNUMB     = SY-DYNNR
      TABLES
        DYNPFIELDS = IT_DYNPFIELDS.

    MOVE-CORRESPONDING IT_TMP TO ZST046.
    ZST046-VBELN = LIKP-VBELN.
    ZST046-POSNR = LIPS-POSNR.
    ZST046-MATNR = LIPS-MATNR.
    ZST046-KUNNR = LIKP-KUNNR.
    MOVE-CORRESPONDING ZST046 TO IT_ZST046.

   APPEND IT_ZST046.
   CLEAR IT_ZST046.
  ENDIF.
ENDIF.
ENDMODULE.                 " VALUE_ZST046_SEQNO_INPUT  INPUT
*&---------------------------------------------------------------------*
*&      Module  VALUE_ZST046_MATNRO_INPUT  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE VALUE_ZST046_MATNRO_INPUT INPUT.
  DATABEGIN OF IT_MATNRO OCCURS 0,
          KUNNR    LIKE ZST045-KUNNR,
          MATNRO   LIKE ZST045-MATNRO,
        END OF IT_MATNRO.
  DATA: IT_MATNRO_RET TYPE ddshretval OCCURS 0 WITH HEADER LINE.
  SELECT DISTINCT KUNNR MATNRO INTO CORRESPONDING FIELDS OF TABLE IT_MATNRO
    FROM ZST045
    WHERE VBELN  = LIPS-VGBEL
      AND POSNR  = LIPS-VGPOS
      AND MATNR  = LIPS-MATNR.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield    = 'MATNRO'
      dynpprog    = sy-repid
      dynpnr      = sy-dynnr
      dynprofield = 'ZST046_MATNRO'
      value_org   = 'S'
    TABLES
      value_tab   = IT_MATNRO
      return_tab  = IT_MATNRO_RET.

  ZST046-MATNRO = IT_MATNRO_RET-FIELDVAL.

ENDMODULE.                 " VALUE_ZST046_MATNRO_INPUT  INPUT
*&---------------------------------------------------------------------*
*&      Module  VALUE_ZST046_MATNRC_INPUT  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE VALUE_ZST046_MATNRC_INPUT INPUT.
  DATABEGIN OF IT_MATNRC OCCURS 0,
          KUNNR    LIKE ZST045-KUNNR,
          MATNRO   LIKE ZST045-MATNRO,
          MATNRC   LIKE ZST045-MATNRC,
        END OF IT_MATNRC.
  DATA: IT_MATNRC_RET TYPE ddshretval OCCURS 0 WITH HEADER LINE.
  SELECT DISTINCT KUNNR MATNRO MATNRC INTO CORRESPONDING FIELDS OF TABLE IT_MATNRC
    FROM ZST045
    WHERE VBELN  = LIPS-VGBEL
      AND POSNR  = LIPS-VGPOS
      AND MATNR  = LIPS-MATNR
      AND MATNRO = ZST046-MATNRO.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield    = 'MATNRC'
      dynpprog    = sy-repid
      dynpnr      = sy-dynnr
      dynprofield = 'ZST046_MATNRC'
      value_org   = 'S'
    TABLES
      value_tab   = IT_MATNRC
      return_tab  = IT_MATNRC_RET.

  ZST046-MATNRC = IT_MATNRC_RET-FIELDVAL.


ENDMODULE.                 " VALUE_ZST046_MATNRC_INPUT  INPUT
*&---------------------------------------------------------------------*
*&      Module  VALUE_ZST046_ZGROUP_INPUT  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE VALUE_ZST046_ZGROUP_INPUT INPUT.
  DATABEGIN OF IT_ZGROUP OCCURS 0,
          KUNNR    LIKE ZST045-KUNNR,
          MATNRO   LIKE ZST045-MATNRO,
          MATNRC   LIKE ZST045-MATNRC,
          ZGROUP   LIKE ZST045-ZGROUP,
          SEQNO    LIKE ZST045-SEQNO,
          MATNR    LIKE ZST045-MATNR,
          LEDC     LIKE ZST045-LEDC,
          IVMIN  LIKE ZST045-IVMIN,
          IVMAX  LIKE ZST045-IVMAX,
          VFMIN  LIKE ZST045-VFMIN,
          VFMAX  LIKE ZST045-VFMAX,
          CIE1   LIKE ZST045-CIE1,
          CIE2   LIKE ZST045-CIE2,
          CIE3   LIKE ZST045-CIE3,
          CIE4   LIKE ZST045-CIE4,
          WDMIN  LIKE ZST045-WDMIN,
          WDMAX  LIKE ZST045-WDMAX,
          CCTMIN LIKE ZST045-CCTMIN,
          CCTMAX LIKE ZST045-CCTMAX,
        END OF IT_ZGROUP.
  DATA: IT_ZGROUP_RET TYPE ddshretval OCCURS 0 WITH HEADER LINE.
  SELECT * INTO CORRESPONDING FIELDS OF TABLE IT_ZGROUP
    FROM ZST045
    WHERE VBELN  = LIPS-VGBEL
      AND POSNR  = LIPS-VGPOS
      AND MATNR  = LIPS-MATNR
      AND MATNRO = ZST046-MATNRO
      AND MATNRC = ZST046-MATNRC.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield    = 'ZGROUP'
      dynpprog    = sy-repid
      dynpnr      = sy-dynnr
      dynprofield = 'ZST046_ZGROUP'
      value_org   = 'S'
    TABLES
      value_tab   = IT_ZGROUP
      return_tab  = IT_ZGROUP_RET.

  ZST046-ZGROUP = IT_ZGROUP_RET-FIELDVAL.

ENDMODULE.                 " VALUE_ZST046_ZGROUP_INPUT  INPUT
*&---------------------------------------------------------------------*
*&      Module  VALUE_ZST046_LEDC_INPUT  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE VALUE_ZST046_LEDC_INPUT INPUT.
  DATABEGIN OF IT_LEDC OCCURS 0,
          KUNNR    LIKE ZST045-KUNNR,
          MATNRO   LIKE ZST045-MATNRO,
          MATNRC   LIKE ZST045-MATNRC,
          ZGROUP   LIKE ZST045-ZGROUP,
          SEQNO    LIKE ZST045-SEQNO,
          MATNR    LIKE ZST045-MATNR,
          LEDC     LIKE ZST045-LEDC,
          IVMIN  LIKE ZST045-IVMIN,
          IVMAX  LIKE ZST045-IVMAX,
          VFMIN  LIKE ZST045-VFMIN,
          VFMAX  LIKE ZST045-VFMAX,
          CIE1   LIKE ZST045-CIE1,
          CIE2   LIKE ZST045-CIE2,
          CIE3   LIKE ZST045-CIE3,
          CIE4   LIKE ZST045-CIE4,
          WDMIN  LIKE ZST045-WDMIN,
          WDMAX  LIKE ZST045-WDMAX,
          CCTMIN LIKE ZST045-CCTMIN,
          CCTMAX LIKE ZST045-CCTMAX,
        END OF IT_LEDC.
  DATA: IT_LEDC_RET TYPE ddshretval OCCURS 0 WITH HEADER LINE.
  SELECT * INTO CORRESPONDING FIELDS OF TABLE IT_LEDC
    FROM ZST045
    WHERE VBELN  = LIPS-VGBEL
      AND POSNR  = LIPS-VGPOS
      AND MATNR  = LIPS-MATNR
      AND MATNRO = ZST046-MATNRO
      AND MATNRC = ZST046-MATNRC.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield    = 'LEDC'
      dynpprog    = sy-repid
      dynpnr      = sy-dynnr
      dynprofield = 'ZST046_LEDC'
      value_org   = 'S'
    TABLES
      value_tab   = IT_LEDC
      return_tab  = IT_LEDC_RET.

  ZST046-LEDC = IT_LEDC_RET-FIELDVAL.

ENDMODULE.                 " VALUE_ZST046_LEDC_INPUT  INPUT

MODULE VALUE_ZST046_MATNRO_INPUT INPUT.
  DATABEGIN OF IT_MATNRO OCCURS 0,
          KUNNR    LIKE ZST045-KUNNR,
          MATNRO   LIKE ZST045-MATNRO,
        END OF IT_MATNRO.
  DATA: IT_MATNRO_RET TYPE ddshretval OCCURS 0 WITH HEADER LINE.
  SELECT DISTINCT KUNNR MATNRO INTO CORRESPONDING FIELDS OF TABLE IT_MATNRO
    FROM ZST045
    WHERE VBELN  = LIPS-VGBEL
      AND POSNR  = LIPS-VGPOS
      AND MATNR  = LIPS-MATNR.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield    = 'MATNRO'
      dynpprog    = sy-repid
      dynpnr      = sy-dynnr
      dynprofield = 'ZST046_MATNRO'
      value_org   = 'S'
    TABLES
      value_tab   = IT_MATNRO
      return_tab  = IT_MATNRO_RET.

  ZST046-MATNRO = IT_MATNRO_RET-FIELDVAL.

ENDMODULE.                 " VALUE_ZST046_MATNRO_INPUT  INPUT
*&---------------------------------------------------------------------*
*&      Module  VALUE_ZST046_MATNRC_INPUT  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE VALUE_ZST046_MATNRC_INPUT INPUT.
  DATABEGIN OF IT_MATNRC OCCURS 0,
          KUNNR    LIKE ZST045-KUNNR,
          MATNRO   LIKE ZST045-MATNRO,
          MATNRC   LIKE ZST045-MATNRC,
        END OF IT_MATNRC.
  DATA: IT_MATNRC_RET TYPE ddshretval OCCURS 0 WITH HEADER LINE.
  SELECT DISTINCT KUNNR MATNRO MATNRC INTO CORRESPONDING FIELDS OF TABLE IT_MATNRC
    FROM ZST045
    WHERE VBELN  = LIPS-VGBEL
      AND POSNR  = LIPS-VGPOS
      AND MATNR  = LIPS-MATNR
      AND MATNRO = ZST046-MATNRO.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield    = 'MATNRC'
      dynpprog    = sy-repid
      dynpnr      = sy-dynnr
      dynprofield = 'ZST046_MATNRC'
      value_org   = 'S'
    TABLES
      value_tab   = IT_MATNRC
      return_tab  = IT_MATNRC_RET.

  ZST046-MATNRC = IT_MATNRC_RET-FIELDVAL.


ENDMODULE.                 " VALUE_ZST046_MATNRC_INPUT  INPUT
*&---------------------------------------------------------------------*
*&      Module  VALUE_ZST046_ZGROUP_INPUT  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE VALUE_ZST046_ZGROUP_INPUT INPUT.
  DATABEGIN OF IT_ZGROUP OCCURS 0,
          KUNNR    LIKE ZST045-KUNNR,
          MATNRO   LIKE ZST045-MATNRO,
          MATNRC   LIKE ZST045-MATNRC,
          ZGROUP   LIKE ZST045-ZGROUP,
          SEQNO    LIKE ZST045-SEQNO,
          MATNR    LIKE ZST045-MATNR,
          LEDC     LIKE ZST045-LEDC,
          IVMIN  LIKE ZST045-IVMIN,
          IVMAX  LIKE ZST045-IVMAX,
          VFMIN  LIKE ZST045-VFMIN,
          VFMAX  LIKE ZST045-VFMAX,
          CIE1   LIKE ZST045-CIE1,
          CIE2   LIKE ZST045-CIE2,
          CIE3   LIKE ZST045-CIE3,
          CIE4   LIKE ZST045-CIE4,
          WDMIN  LIKE ZST045-WDMIN,
          WDMAX  LIKE ZST045-WDMAX,
          CCTMIN LIKE ZST045-CCTMIN,
          CCTMAX LIKE ZST045-CCTMAX,
        END OF IT_ZGROUP.
  DATA: IT_ZGROUP_RET TYPE ddshretval OCCURS 0 WITH HEADER LINE.
  SELECT * INTO CORRESPONDING FIELDS OF TABLE IT_ZGROUP
    FROM ZST045
    WHERE VBELN  = LIPS-VGBEL
      AND POSNR  = LIPS-VGPOS
      AND MATNR  = LIPS-MATNR
      AND MATNRO = ZST046-MATNRO
      AND MATNRC = ZST046-MATNRC.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield    = 'ZGROUP'
      dynpprog    = sy-repid
      dynpnr      = sy-dynnr
      dynprofield = 'ZST046_ZGROUP'
      value_org   = 'S'
    TABLES
      value_tab   = IT_ZGROUP
      return_tab  = IT_ZGROUP_RET.

  ZST046-ZGROUP = IT_ZGROUP_RET-FIELDVAL.

ENDMODULE.                 " VALUE_ZST046_ZGROUP_INPUT  INPUT
*&---------------------------------------------------------------------*
*&      Module  VALUE_ZST046_LEDC_INPUT  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE VALUE_ZST046_LEDC_INPUT INPUT.
  DATABEGIN OF IT_LEDC OCCURS 0,
          KUNNR    LIKE ZST045-KUNNR,
          MATNRO   LIKE ZST045-MATNRO,
          MATNRC   LIKE ZST045-MATNRC,
          ZGROUP   LIKE ZST045-ZGROUP,
          SEQNO    LIKE ZST045-SEQNO,
          MATNR    LIKE ZST045-MATNR,
          LEDC     LIKE ZST045-LEDC,
          IVMIN  LIKE ZST045-IVMIN,
          IVMAX  LIKE ZST045-IVMAX,
          VFMIN  LIKE ZST045-VFMIN,
          VFMAX  LIKE ZST045-VFMAX,
          CIE1   LIKE ZST045-CIE1,
          CIE2   LIKE ZST045-CIE2,
          CIE3   LIKE ZST045-CIE3,
          CIE4   LIKE ZST045-CIE4,
          WDMIN  LIKE ZST045-WDMIN,
          WDMAX  LIKE ZST045-WDMAX,
          CCTMIN LIKE ZST045-CCTMIN,
          CCTMAX LIKE ZST045-CCTMAX,
        END OF IT_LEDC.
  DATA: IT_LEDC_RET TYPE ddshretval OCCURS 0 WITH HEADER LINE.
  SELECT * INTO CORRESPONDING FIELDS OF TABLE IT_LEDC
    FROM ZST045
    WHERE VBELN  = LIPS-VGBEL
      AND POSNR  = LIPS-VGPOS
      AND MATNR  = LIPS-MATNR
      AND MATNRO = ZST046-MATNRO
      AND MATNRC = ZST046-MATNRC.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield    = 'LEDC'
      dynpprog    = sy-repid
      dynpnr      = sy-dynnr
      dynprofield = 'ZST046_LEDC'
      value_org   = 'S'
    TABLES
      value_tab   = IT_LEDC
      return_tab  = IT_LEDC_RET.

  ZST046-LEDC = IT_LEDC_RET-FIELDVAL.

ENDMODULE.                 " VALUE_ZST046_LEDC_INPUT  INPUT

 

沒有留言:

張貼留言