標籤

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日 星期一

ZCL_IM_SHP_TAB_CUST_ITEM



客製DN new tab

METHOD IF_EX_LE_SHP_TAB_CUST_ITEM~ACTIVATE_TAB_PAGE .
  DATA: CHINAORDERTYPE TYPE EKKO-CHINAORDERTYPE.

  FIELD-SYMBOLS: <LS_XLIPS> TYPE LIPSVB.

  CASE IS_LIKP-LFART.
    WHEN 'NL' OR 'NLR'.
      READ TABLE IT_XLIPS ASSIGNING <LS_XLIPS>
                          WITH KEY VBELN = IS_LIKP-VBELN.
      CHECK SY-SUBRC EQ 0.
      SELECT CHINAORDERTYPE INTO CHINAORDERTYPE FROM EKKO
                                 WHERE EBELN EQ <LS_XLIPS>-VGBEL.
        EXIT.
      ENDSELECT.
      IF SY-SUBRC EQ 0.
        CASE CHINAORDERTYPE.
          WHEN '3'.
            IF IS_LIKP-LFART EQ 'NLR'.
              EF_CAPTION = 'Goods Movement Data'.
              EF_POSITION = 11.
              EF_PROGRAM = 'SAPLZM008'.
              EF_DYNPRO = '2000'.
            ENDIF.
          WHEN 'D'.
            EF_CAPTION = 'Goods Movement Data'.
            EF_POSITION = 11.
            EF_PROGRAM = 'SAPLZM008'.
            EF_DYNPRO = '1000'.
        ENDCASE.
      ENDIF.
  ENDCASE.

  EF_CAPTION = 'LED Specification'.
  EF_POSITION = 12.
  EF_PROGRAM = 'SAPLZM008'.
  EF_DYNPRO = '3000'.
ENDMETHOD.

METHOD IF_EX_LE_SHP_TAB_CUST_ITEM~TRANSFER_DATA_TO_SUBSCREEN .
  CASE IS_LIKP-LFART.
    WHEN 'NL' OR 'NLR'.
      CALL FUNCTION 'Z_SHPTAB_ITEM_GR_PUSH'
        EXPORTING
          IM_LIPS     = IS_LIPS
          IM_TRANTYPE = IF_TRTYP.
  ENDCASE.

  CALL FUNCTION 'Z_SHPTAB_ITEM_GR_PUSH'
    EXPORTING
      IM_LIPS     = IS_LIPS
      IM_TRANTYPE = IF_TRTYP
      IM_LIKP     = IS_LIKP
    TABLES
      IT_XLIPS    = IT_XLIPS.
ENDMETHOD.

FUNCTION Z_SHPTAB_ITEM_GR_PUSH.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     REFERENCE(IM_LIPS) TYPE  LIPS
*"     REFERENCE(IM_TRANTYPE) TYPE  TRTYP
*"     REFERENCE(IM_LIKP) TYPE  LIKP
*"  TABLES
*"      IT_XLIPS TYPE  SHP_LIPS_T OPTIONAL
*"----------------------------------------------------------------------

  LIPS-REFDOCNR = IM_LIPS-REFDOCNR.
  LIPS-REFDOCITEM = IM_LIPS-REFDOCITEM.

  TRANTYPE = IM_TRANTYPE.

  MOVE-CORRESPONDING IM_LIPS TO LIPS.
  MOVE-CORRESPONDING IM_LIKP TO LIKP.
  IT_LIPS[] = IT_XLIPS[].
  IMPORT IT_ZST046 FROM MEMORY ID 'ZST046'.
  FREE MEMORY ID 'ZST046'.

*20101110 BY SM  IF IT_ZST046[] IS INITIAL.
    LOOP AT IT_LIPS INTO WA_LIPSVB.
*20110119 BY SM 找不到DN及ITEM 的才從ZST045讀取
READ TABLE IT_ZST046 WITH KEY POSNR = WA_LIPSVB-POSNR  "因為VL01N進來時不會有DN NO.
                              MATNR = WA_LIPSVB-MATNR. "若該項次有異動料號時也要能判斷正確
*    READ TABLE IT_ZST046 WITH KEY VBELN = WA_LIPSVB-VBELN
*                                  POSNR = WA_LIPSVB-POSNR.
    IF SY-SUBRC = 4.   "找不到的才從ZST045讀取
*20110119 BY SM 若是找不到,有可能是該項次料號異動,該item在IT_ZST046 & ZST046的資料要刪除
*否則會有Double item資料的情形
      DELETE IT_ZST046 WHERE POSNR = WA_LIPSVB-POSNR.
*      MODIFY IT_ZST046.
      DELETE FROM ZST046 WHERE VBELN = WA_LIPSVB-VBELN AND POSNR = WA_LIPSVB-POSNR.
      SELECT *
        INTO CORRESPONDING FIELDS OF IT_ZST046
        FROM ZST045
       WHERE VBELN = WA_LIPSVB-VGBEL
         AND POSNR = WA_LIPSVB-VGPOS
*20101022 BY SM 增加客戶及料號判斷,才可以抓到正確的資料
         AND KUNNR = IM_LIKP-KUNAG
         AND MATNR = WA_LIPSVB-MATNR.
        IT_ZST046-VBELN = WA_LIPSVB-VBELN.
        IT_ZST046-POSNR = WA_LIPSVB-POSNR.
        APPEND IT_ZST046.
      ENDSELECT.
    ENDIF.           " END OF 找不到的才從ZST045讀取
    ENDLOOP.

*20101110  ENDIF.
ENDFUNCTION.

FUNCTION Z_SHPTAB_ITEM_GR_PUSH.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     REFERENCE(IM_LIPS) TYPE  LIPS
*"     REFERENCE(IM_TRANTYPE) TYPE  TRTYP
*"     REFERENCE(IM_LIKP) TYPE  LIKP
*"  TABLES
*"      IT_XLIPS TYPE  SHP_LIPS_T OPTIONAL
*"----------------------------------------------------------------------

  LIPS-REFDOCNR = IM_LIPS-REFDOCNR.
  LIPS-REFDOCITEM = IM_LIPS-REFDOCITEM.

  TRANTYPE = IM_TRANTYPE.

  MOVE-CORRESPONDING IM_LIPS TO LIPS.
  MOVE-CORRESPONDING IM_LIKP TO LIKP.
  IT_LIPS[] = IT_XLIPS[].
  IMPORT IT_ZST046 FROM MEMORY ID 'ZST046'.
  FREE MEMORY ID 'ZST046'.

*20101110 BY SM  IF IT_ZST046[] IS INITIAL.
    LOOP AT IT_LIPS INTO WA_LIPSVB.
*20110119 BY SM 找不到DN及ITEM 的才從ZST045讀取
READ TABLE IT_ZST046 WITH KEY POSNR = WA_LIPSVB-POSNR  "因為VL01N進來時不會有DN NO.
                              MATNR = WA_LIPSVB-MATNR. "若該項次有異動料號時也要能判斷正確
*    READ TABLE IT_ZST046 WITH KEY VBELN = WA_LIPSVB-VBELN
*                                  POSNR = WA_LIPSVB-POSNR.
    IF SY-SUBRC = 4.   "找不到的才從ZST045讀取
*20110119 BY SM 若是找不到,有可能是該項次料號異動,該item在IT_ZST046 & ZST046的資料要刪除
*否則會有Double item資料的情形
      DELETE IT_ZST046 WHERE POSNR = WA_LIPSVB-POSNR.
*      MODIFY IT_ZST046.
      DELETE FROM ZST046 WHERE VBELN = WA_LIPSVB-VBELN AND POSNR = WA_LIPSVB-POSNR.
      SELECT *
        INTO CORRESPONDING FIELDS OF IT_ZST046
        FROM ZST045
       WHERE VBELN = WA_LIPSVB-VGBEL
         AND POSNR = WA_LIPSVB-VGPOS
*20101022 BY SM 增加客戶及料號判斷,才可以抓到正確的資料
         AND KUNNR = IM_LIKP-KUNAG
         AND MATNR = WA_LIPSVB-MATNR.
        IT_ZST046-VBELN = WA_LIPSVB-VBELN.
        IT_ZST046-POSNR = WA_LIPSVB-POSNR.
        APPEND IT_ZST046.
      ENDSELECT.
    ENDIF.           " END OF 找不到的才從ZST045讀取
    ENDLOOP.

*20101110  ENDIF.
ENDFUNCTION.

method if_ex_le_shp_tab_cust_item~transfer_data_from_subscreen .
*  case cs_likp-lfart.
*  when 'NL' or 'NLR'.
  call function 'Z_SHPTAB_ITEM_GR_POP'
    IMPORTING
      ex_lips = cs_lips.
*  endcase.
endmethod.

function z_shptab_item_gr_pop.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  EXPORTING
*"     REFERENCE(EX_LIPS) TYPE  LIPS
*"----------------------------------------------------------------------

*ex_lips-refdocnr = lips-refdocnr.
*ex_lips-refdocitem = lips-refdocitem.
  free memory id 'ZST046'.
  export it_zst046 to memory id 'ZST046'.

endfunction.

 

沒有留言:

張貼留言