hemir_abap

学习ABAP的小小博客

My Links

Blog Stats

Cached @ 2025/4/28 14:54:44Control ASP.skins_mtclean_controls_blogstats_ascx

留言簿(1)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜

Cached @ 2025/4/28 14:54:44Control ASP.skins_mtclean_controls_singlecolumn_ascx

SAP:ABAP:数据从本地PC文件Upload到程序内表(GUI_UPLOAD/GUI_OPEN_DIALOG)

REPORT ZTEST_GUI_UPLOAD .

DATA:
  TD_BKPF TYPE TABLE OF BKPF,
  TH_BKPF TYPE BKPF.

*&---------------------------------------------------------------------*
*&      START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.

  PERFORM FRM_UPLOAD_DATA.

  PERFORM FRM_WRITE_MSG.

*&---------------------------------------------------------------------*
*&      Form  FRM_UPLOAD_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM FRM_UPLOAD_DATA.
  DATA:
    LTD_FILETABLE TYPE FILETABLE,
    LTH_FILETABLE LIKE LINE OF LTD_FILETABLE,
    LW_RC TYPE I,
    LW_FILENAME TYPE STRING.

  CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
     EXPORTING
       WINDOW_TITLE            = 'Select upload file!'
       DEFAULT_EXTENSION       = 'XLS'
*      DEFAULT_FILENAME        =
       FILE_FILTER             = 'XLS'
*      INITIAL_DIRECTORY       =
*      MULTISELECTION          =                  "是否可以同时打开多个文件
    CHANGING
      FILE_TABLE              = LTD_FILETABLE         "你所打开的文件名字列表
      RC                      = LW_RC                                  "返回值,如果成功打开了,为1
*      USER_ACTION             =
    EXCEPTIONS
      FILE_OPEN_DIALOG_FAILED = 1
      CNTL_ERROR              = 2
      ERROR_NO_GUI            = 3
      others                  = 4.

  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  READ TABLE LTD_FILETABLE INTO LTH_FILETABLE INDEX 1.
  LW_FILENAME = LTH_FILETABLE-FILENAME.

  CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD
    EXPORTING
      FILENAME                = LW_FILENAME
      FILETYPE                = 'ASC'
      HAS_FIELD_SEPARATOR     = 'X'
*      HEADER_LENGTH           = 0
*    IMPORTING
*      FILELENGTH              =
*      HEADER                  =
    CHANGING
      DATA_TAB                = TD_BKPF
    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
      others                  = 17.

  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.                    " FRM_UPLOAD_DATA

*&---------------------------------------------------------------------*
*&      Form  FRM_WRITE_MSG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM FRM_WRITE_MSG.
  DATA:
    LW_LINES TYPE I.

  DESCRIBE TABLE TD_BKPF LINES LW_LINES.

  WRITE: 'Upload records:' , LW_LINES.

ENDFORM.                    " FRM_WRITE_MSG

posted on 2009-03-25 17:59 hemir 阅读(1332) 评论(0)  编辑 收藏

Feedback

标题
姓名
主页
内容 
  登录  使用高级评论  Top 订阅回复  取消订阅
[使用Ctrl+Enter键可以直接提交]