******************************************************************************
* 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
上載EXCEL文件
最新推荐文章于 2023-06-18 12:26:11 发布