ABAP用FILE_OPEN_DIALOG打开多个文件后打印出名称

简介:   此实例将演示用CL_GUI_FRONTEND_SERVICES下的静态方法FILE_OPEN_DIALOG打开多个文件后打印出打开文件的名称。具体程式如下。   DATA FILE_TABLE TYPE FILE_TABLE.

  此实例将演示用CL_GUI_FRONTEND_SERVICES下的静态方法FILE_OPEN_DIALOG打开多个文件后打印出打开文件的名称。具体程式如下。

  DATA FILE_TABLE TYPE FILE_TABLE. "引用FILE_TABLE对象

  *SELECT-OPTIONS:i_file FOR FILE_TABLE NO INTERVALS.

  DATA: lt_file_names TYPE FILETABLE,
        lwa_file_name LIKE LINE OF lt_file_names,
        lv_subrc TYPE I.

  SELECT-OPTIONS: i_file FOR FILE_TABLE NO INTERVALS.

  AT SELECTION-SCREEN ON VALUE-REQUEST FOR i_file-low.
    CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
      EXPORTING
  *    WINDOW_TITLE            =
  *    DEFAULT_EXTENSION     =
  *    DEFAULT_FILENAME        =
  *    FILE_FILTER             =
        INITIAL_DIRECTORY       = 'd:temp'
        MULTISELECTION          = 'X' 
      CHANGING
        file_table                      = lt_file_names[]
        rc                                 = lv_subrc  "打开文件的数量
  *    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.

    i_file-sign = 'I'.
    i_file-option = 'EQ'.

    LOOP AT lt_file_names INTO lwa_file_name.
      i_file-low = lwa_file_name.
      APPEND i_file.
    ENDLOOP.

  START-OF-SELECTION.
    WRITE:'打开文件的数量:',lv_subrc LEFT-JUSTIFIED.
    LOOP AT i_file.
      WRITE: / i_file-low.
    ENDLOOP.
  程序运行如下:

  
  以下代碼功能與上面的類似:
  

  "DATA FILE_TABLE TYPE FILE_TABLE. "引用FILE_TABLE对象
  *SELECT-OPTIONS:i_file FOR FILE_TABLE NO INTERVALS.

  DATA: lt_file_names TYPE FILETABLE,
        lwa_file_name LIKE LINE OF lt_file_names,
        lv_subrc TYPE I.
  DATA:BEGIN OF i_file_table OCCURS 0,
       i_file_name TYPE STRING,
       END OF i_file_table.
     
  DATA:my_file_table LIKE STANDARD TABLE OF i_file_table,
       my_wa_file_table LIKE LINE OF my_file_table.

  PARAMETERS: i_file LIKE FILE_TABLE OBLIGATORY LOWER CASE. "RLGRAP-FILENAME

  AT SELECTION-SCREEN ON VALUE-REQUEST FOR i_file.
    CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
      EXPORTING
  *    WINDOW_TITLE            =
  *    DEFAULT_EXTENSION     =
  *    DEFAULT_FILENAME        =
  *    FILE_FILTER             =
        INITIAL_DIRECTORY       = 'd:temp'
        MULTISELECTION          = 'X'
      CHANGING
        file_table                      = lt_file_names[]
        rc                                 = lv_subrc  "打开文件的数量
  *    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 lt_file_names INDEX INTO lwa_file_name.
    i_file = lwa_file_name.
    LOOP AT lt_file_names INTO lwa_file_name.
      "i_file_table-i_file_name = lwa_file_name.  "有表頭
      "APPEND i_file_table.
      my_wa_file_table-i_file_name = lwa_file_name.
      APPEND my_wa_file_table TO my_file_table.
      CLEAR my_wa_file_table.
    ENDLOOP.

  START-OF-SELECTION.

   IF my_file_table IS INITIAL.
        MESSAGE 'IMPORT FILES IS EMPTY' TYPE 'S'.
        EXIT.
    ENDIF.

    WRITE:'打开文件的数量:',lv_subrc LEFT-JUSTIFIED.
  *  LOOP AT i_file_table. "有表頭
  *    WRITE: / i_file_table-i_file_name.
  *  ENDLOOP.
    LOOP AT my_file_table INTO my_wa_file_table.
      WRITE: / my_wa_file_table-i_file_name.
    ENDLOOP.
  

目录
相关文章
|
9月前
|
XML 测试技术 数据格式
如何使用 ABAP 代码解析 XML 文件试读版
如何使用 ABAP 代码解析 XML 文件试读版
如何使用 ABAP 代码解析 XML 文件试读版
使用 SAP ABAP 封装的 Office Integration class 访问本地 Excel 文件
使用 SAP ABAP 封装的 Office Integration class 访问本地 Excel 文件
|
2月前
|
XML 存储 安全
基于 ABAP OLE 和 abap2xlsx 两种技术方案对 Excel 文件进行读写的优缺点比较
基于 ABAP OLE 和 abap2xlsx 两种技术方案对 Excel 文件进行读写的优缺点比较
|
2月前
|
Android开发 Windows 缓存
WTS 上打不开 SAP ABAP Development Tool,遇到文件目录 read only 的问题
WTS 上打不开 SAP ABAP Development Tool,遇到文件目录 read only 的问题
WTS 上打不开 SAP ABAP Development Tool,遇到文件目录 read only 的问题
如何使用 ABAP 把多个文件打成一个 zip包 -利用 ABAP 标准工具类 cl_abap_zip
如何使用 ABAP 把多个文件打成一个 zip包 -利用 ABAP 标准工具类 cl_abap_zip
|
8月前
|
Unix Linux C#
使用 ABAP + OLE 消费 Windows DLL 文件里的代码和服务
使用 ABAP + OLE 消费 Windows DLL 文件里的代码和服务
|
9月前
|
BI
如何把 SAP ABAP 字符串变量的值下载成本地文件,以及文件路径 F4 Value Help 的实现方式试读版
如何把 SAP ABAP 字符串变量的值下载成本地文件,以及文件路径 F4 Value Help 的实现方式试读版
|
9月前
|
BI 数据库 数据安全/隐私保护
如何用 ABAP 生成带有水印(Watermark)的 PDF 文件试读版
如何用 ABAP 生成带有水印(Watermark)的 PDF 文件试读版
|
9月前
|
存储 SQL 数据库
将 SAP ABAP 数据库表里存储的文件二进制内容下载成为本地文件试读版
将 SAP ABAP 数据库表里存储的文件二进制内容下载成为本地文件试读版
|
9月前
|
存储 Web App开发 数据库
如何自行查找出 SAP ABAP 标准的 OData 服务返回数据的后台数据库表和表字段名称试读版
如何自行查找出 SAP ABAP 标准的 OData 服务返回数据的后台数据库表和表字段名称试读版