動的構造

FORM UPLOAD_FILE  USING    VALUE(UP_FILE)   TYPE RLGRAP-FILENAME
                  CHANGING CT_FILE          TYPE TABLE.

  DATA: LT_FILE_TMP         TYPE STANDARD TABLE OF TYP_FILE_TMP,
        LW_RAW              TYPE TYP_FILE_TMP,
        LW_FILE_NAME        TYPE STRING,
        LT_FIELDS           TYPE STANDARD TABLE OF STRING,
        LW_FIELDS           TYPE STRING,
        LW_LINES            TYPE I,
        LREF_FILE_STR       TYPE REF TO DATA.

  FIELD-SYMBOLS: <LFS_FILE>  TYPE ANY,
                 <LFS_FIELD> TYPE ANY.

  LW_FILE_NAME = UP_FILE.

  CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD
    EXPORTING
      FILENAME                = LW_FILE_NAME
      FILETYPE                = 'ASC'
      HAS_FIELD_SEPARATOR     = SPACE
*      HEADER_LENGTH           = 0
*      READ_BY_LINE            = 'X'
*      DAT_MODE                = SPACE
*      CODEPAGE                = SPACE
*      IGNORE_CERR             = ABAP_TRUE
*      REPLACEMENT             = '#'
*      VIRUS_SCAN_PROFILE      =
*    IMPORTING
*      FILELENGTH              =
*      HEADER                  =
    CHANGING
      DATA_TAB                = LT_FILE_TMP
    EXCEPTIONS
      FILE_OPEN_ERROR         = 1
      FILE_READ_ERROR         = 2
      NO_BATCH                = 3
      GUI_REFUSE_FILETRANSFER = 4
      INVALID_TYPE            = 5
      NO_AUTHORITY            = 6
      UNKNOWN_ERROR           = 7
      BAD_DATA_FORMAT         = 8
      HEADER_NOT_ALLOWED      = 9
      SEPARATOR_NOT_ALLOWED   = 10
      HEADER_TOO_LONG         = 11
      UNKNOWN_DP_ERROR        = 12
      ACCESS_DENIED           = 13
      DP_OUT_OF_MEMORY        = 14
      DISK_FULL               = 15
      DP_TIMEOUT              = 16
      NOT_SUPPORTED_BY_GUI    = 17
      ERROR_NO_GUI            = 18
      OTHERS                  = 19
          .
  IF SY-SUBRC = 0.
    CREATE DATA LREF_FILE_STR LIKE LINE OF CT_FILE.
    ASSIGN LREF_FILE_STR->* TO <LFS_FILE>.
    LOOP AT LT_FILE_TMP INTO LW_RAW.
      SPLIT LW_RAW-LINE AT ',' INTO TABLE LT_FIELDS.
      DESCRIBE TABLE LT_FIELDS LINES LW_LINES.
      LOOP AT LT_FIELDS INTO LW_FIELDS.
        ASSIGN COMPONENT SY-TABIX OF STRUCTURE <LFS_FILE> TO <LFS_FIELD>.
            <LFS_FIELD> = LW_FIELDS.
      ENDLOOP.
      APPEND <LFS_FILE> TO CT_FILE.
    ENDLOOP.
  ELSE.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.                    " UPLOAD_FILE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值