上載EXCEL文件

 ******************************************************************************
*   FORM: UPLOAD_DATA
*   DESC: 上載數據到內表
******************************************************************************
   FORM ADD_PRE_ZERO USING PF_PRETEXT.
        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
           EXPORTING
             INPUT  = PF_PRETEXT
           IMPORTING
             OUTPUT = PF_PRETEXT.
   ENDFORM.
   FORM DATA_CONVERT USING PF_VALUE PF_DATE.
      CLEAR: PF_DATE.
      CALL FUNCTION 'CONVERT_DATE_INPUT'
         EXPORTING
              INPUT                     = PF_VALUE
              PLAUSIBILITY_CHECK        = 'X'
         IMPORTING
              OUTPUT                    = PF_DATE
         EXCEPTIONS
              PLAUSIBILITY_CHECK_FAILED = 1
              WRONG_FORMAT_IN_INPUT     = 2
              OTHERS                    = 3.
   ENDFORM.   "--DATA_CONVERT
FORM UPLOAD_DATA.
  DATA: LT_LOAD LIKE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
*   讀EXCEL到內表
    CLEAR: LT_LOAD, LT_LOAD[].
    CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
      EXPORTING
        FILENAME                = P_UFILE
        I_BEGIN_COL             = '1'
        I_END_COL               = '31'  "11
        I_BEGIN_ROW             = '2'
        I_END_ROW               = '6000'
      TABLES
        INTERN                  = LT_LOAD
      EXCEPTIONS
        INCONSISTENT_PARAMETERS = 1
        UPLOAD_OLE              = 2
        OTHERS                  = 3.
    IF SY-SUBRC NE 0.
      MESSAGE TEXT-M03 TYPE 'S' DISPLAY LIKE 'E'.  "Upload Excel files was faild!
      STOP.
    ENDIF.
*   處理讀到內表LT_LOADDATA的數據
    CLEAR: IT_UPDATA, IT_UPDATA[].
    SORT LT_LOAD BY ROW COL.
    LOOP AT LT_LOAD.
      CASE LT_LOAD-COL.
        WHEN '0001'. IT_UPDATA-BKTXT = LT_LOAD-VALUE.                             "Document Header Text
        WHEN '0002'. IT_UPDATA-BWART = LT_LOAD-VALUE.                             "Movement Type
        WHEN '0003'. IT_UPDATA-WERKS = LT_LOAD-VALUE.                             "Plant
        WHEN '0004'. IT_UPDATA-LGORT = LT_LOAD-VALUE.                             "Storage Location
        WHEN '0005'. IT_UPDATA-KOSTL = LT_LOAD-VALUE.                             "cost center
                     PERFORM ADD_PRE_ZERO USING IT_UPDATA-KOSTL.
        WHEN '0006'. IT_UPDATA-MATNR = LT_LOAD-VALUE.                             "material
        WHEN '0007'. IT_UPDATA-ERFMG = LT_LOAD-VALUE.                             "quantity
        WHEN '0008'PERFORM DATA_CONVERT USING LT_LOAD-VALUE IT_UPDATA-BUDAT.    "posting date
        WHEN '0009'PERFORM DATA_CONVERT USING LT_LOAD-VALUE IT_UPDATA-BLDAT.    "document date
        WHEN '0010'. IT_UPDATA-CHARG = LT_LOAD-VALUE.                             "Batch
                     PERFORM ADD_PRE_ZERO USING IT_UPDATA-CHARG.
        WHEN '0011'PERFORM DATA_CONVERT USING LT_LOAD-VALUE IT_UPDATA-HSDAT.    "Date of Manufacture
        WHEN '0012'PERFORM DATA_CONVERT USING LT_LOAD-VALUE IT_UPDATA-AGING.    "posting date for aging
        WHEN OTHERS.
      ENDCASE.
      AT END OF ROW.
         APPEND IT_UPDATA.
         CLEAR  IT_UPDATA.
      ENDAT.
    ENDLOOP.
    IF IT_UPDATA[] IS INITIAL.
      MESSAGE TEXT-M01 TYPE 'S' DISPLAY LIKE 'E'.    "No Upload data!
      STOP.
    ENDIF.
ENDFORM.    "--UPLOAD_DATA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值