- *& Report ZEXCEL_TO_INTERNAL_TABLE
- *&
- *&---------------------------------------------------------------------*
- *&做一个excel模版,模版头分别是 物料编号 工厂 库位,按顺序对应以下定义的内表IEXCEL
- *&
- *&---------------------------------------------------------------------*
- REPORT ZEXCEL_TO_INTERNAL_TABLE.
- DATA:BEGIN OF IEXCEL OCCURS 0,
- MATNR LIKE MARD-MATNR,
- WERKS LIKE MARD-WERKS,
- LGORT LIKE MARD-LGORT,
- END OF IEXCEL.
- SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
- PARAMETERS: P_FILE TYPE RLGRAP-FILENAME.
- SELECTION-SCREEN END OF BLOCK B1.
- AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
- * 取得文件名称
- PERFORM GET_FILENAME USING P_FILE.
- START-OF-SELECTION.
- * 上载文件
- PERFORM UPLOAD_FILE TABLES IEXCEL USING P_FILE.
- PERFORM SHOWDATA.
- *&---------------------------------------------------------------------*
- *& Form GET_FILENAME
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- * -->P_P_FILE text
- *----------------------------------------------------------------------*
- FORM GET_FILENAME USING P_FILE.
- CALL FUNCTION 'F4_FILENAME'
- EXPORTING
- PROGRAM_NAME = SYST-CPROG
- DYNPRO_NUMBER = SYST-DYNNR
- FIELD_NAME = 'P_FILE'
- IMPORTING
- FILE_NAME = P_FILE
- .
- ENDFORM. " GET_FILENAME
- *&---------------------------------------------------------------------*
- *& Form UPLOAD_FILE
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- * -->P_IEXCEL text
- * -->P_P_FILE text
- *----------------------------------------------------------------------*
- FORM UPLOAD_FILE TABLES IEXCEL
- "插入正确名称 <...>
- USING P_FILE.
- TYPE-POOLS:TRUXS.
- DATA IT_RAW TYPE TRUXS_T_TEXT_DATA.
- CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
- EXPORTING
- * I_FIELD_SEPERATOR =
- I_LINE_HEADER = 'X'
- I_TAB_RAW_DATA = IT_RAW
- I_FILENAME = P_FILE
- TABLES
- I_TAB_CONVERTED_DATA = IEXCEL
- * EXCEPTIONS
- * CONVERSION_FAILED = 1
- * OTHERS = 2
- .
- IF SY-SUBRC <> 0.
- * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
- * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
- ENDIF.
- ENDFORM. " UPLOAD_FILE
- *&---------------------------------------------------------------------*
- *& Form SHOWDATA
- *&---------------------------------------------------------------------*
- * text
- *----------------------------------------------------------------------*
- * --> p1 text
- * <-- p2 text
- *----------------------------------------------------------------------*
- FORM SHOWDATA .
- WRITE:/ '物料编号','工厂','库位'.
- LOOP AT IEXCEL.
- WRITE:/ IEXCEL-MATNR,IEXCEL-WERKS,IEXCEL-LGORT.
- ENDLOOP.
- ENDFORM. " SHOWDATA
09-24