ABAP - 文件对话框

在 selection screen 中,经常要用到文件相关的对话框,比如选择本地文件上传,将数据从 iternal table 下载到本地等,为了增加程序的友好性,需要用到文件相关的对话框。本篇博客对使用对话框的常见方法进行汇总总结,以供参考。

如果不用文件对话框,最简单的方法是定义一个 localfile 类型的参数( parameter)。下面的代码演示了这种方法。


用户可以在选择屏幕中,手工输入文件的 full path:

KD_GET_FILENAME_ON_F4

为了增加程序的友好性,我们对上面的代码增加对话框功能。比较简单的方法是使用 KD_GET_FILENAME_ON_F4 函数。该函数提供一个对话框,返回用户选择的文件名。将上面的代码改写如下:


这个函数比较简单,只需要提供一个参数 (p_fname)。

WS_FILENAME_GET

该函数的作用也是提供文件对话框,返回文件的完整路径。SAP 对这个函数已经标注为过时 (obosete)。所以不建议在代码中使用,但我们可能会在之前的程序代码中碰到它。

函数的使用要点:

  • 参数 filename 的类型为 localfileRLGRAP-FILENAME,Rlgrap-filename 的数据类型为 localfile,直接使用 localfile 比较方便
  • Exception 部分的须包括 3 (selection_cancel),否则 出现程序 dump。

file_open_dialog

cl_gui_frontend_services 类的静态方法 file_open_dialog 方法提供对话框的方式获取文件的完整路径。这个方法功能比较强大,比如可以修饰文件选择框,指定默认选择路径,设置文件类型过滤,同时打开多个文件,返回用户操作等。RC 是返回值, 如果成功获取文件名,返回值 rc 值为 1


方法的参数补充示例:

DEFAULT_EXTENSION       = '*.DOC'
DEFAULT_FILENAME        = 'C:/TEST'
FILE_FILTER = 'All Files (*.*)|*.*|Excel Files (*.xls)|*.xls|Word files(*.doc)|*.doc'.
INITIAL_DIRECTORY       = 'C:/'
MULTISELECTION          = 'X'

F4_FILENAME

函数比较简单, 一般使用使用这个就够了。

源代码

File_Dialog - 码云

猜你喜欢

转载自blog.csdn.net/stone0823/article/details/114954015