*&---------------------------------------------------------------------*
*& 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