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.
  

目录
打赏
0
0
0
0
2
分享
相关文章
开发语言漫谈-ABAP
ABAP是SAP公司专门用于SAP软件环境的专门语言
【置顶】SAP ABAP开发实战——从入门到精通系列目录
本文章为SAP ABAP开发实战——从入门到精通系列的目录以及关于该教程的后续写作计划表
1877 0
【置顶】SAP ABAP开发实战——从入门到精通系列目录
SAP ABAP在线预览文档对象的开发实现
应用场景:有些定制化开发(报表/功能增强等)完成之后,客户需要将其操作手册或者相关文档放在某个报表的初始画面,供实际操作者在线查阅,当然这个功能也同样类似于模板的下载,这里就以在线预览(直接打开)为例进行说明。
258 0
如何使用 Restful ABAP Programming 编程模型开发一个支持增删改查的 Fiori 应用(二)
Restful ABAP Programming 编程模式是 ABAP 这门编程语言在不断向前进化的过程中,诞生的一门新的编程模型,简称为RAP模型。
178 0
如何使用 Restful ABAP Programming 编程模型开发一个支持增删改查的 Fiori 应用(二)
也谈SAP业务顾问如何避免被ABAP开发顾问怒打
也谈SAP业务顾问如何避免被ABAP开发顾问怒打
也谈SAP业务顾问如何避免被ABAP开发顾问怒打
abap开发function module时使用tables传递参数报错过时的解决方法
如下图,我写了一个Function Module我要在tables中添加一个参数TABLES参数已过时不管怎么点击保存按钮,一直报错,怎么办呢?不管是不是过时,狂点回车,就保存了
1773 0
ABAP开发基础知识:10)数据流控制
在SAP业务处理中,存在许许多多数据流,分别管控着不同的业务模式。下面介绍如何通过ABAP语法来实现数据流程管控。     1)使用IF语句实现分支       [Syntax]      IF .
1293 0
ABAP开发基础知识:11)子程序的建立与调用
ABAP子程序(Subrouting)是包含在程序中的一段具有一定功能的代码,能够将某个功能作为一个小程序包含在主程序中,以方便程序分析及阅读。特别是一此程序中多次用到的功能,可以简化代码,增加程序的可读性且便于维护。
1507 0
ABAP开发基础知识:12)ABAP宏的应用
宏(Macros)是一段独立的代码,能实现数据的运算与输出,功能与子程序类似,主要应用于同一程序中某些重复的运算,以简化代码,其定义语法如下:        DEFINE INCREMENT.    "INCREMENT为自定义宏的名称。
940 0