1:通过Cl_Gui_Frontend_Services提供的file_open_dialog方法生成选择文件对话框
REPORT z_choosing_pc_file_use_class.
TYPES: BEGIN OF rectype,
kunnr LIKE kna1-kunnr,
land1 LIKE kna1-land1,
name1 LIKE kna1-name1,
stras LIKE kna1-stras,
ort01 LIKE kna1-ort01,
pstlz LIKE kna1-pstlz,
END OF rectype.
DATA itab TYPE STANDARD TABLE OF rectype WITH HEADER LINE.
DATA: filetable TYPE filetable ,
rc TYPE i ,
wa TYPE file_table .
PARAMETERS: pc_file(80) OBLIGATORY.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pc_file.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'UPLOAD'
multiselection = 'X'
default_extension = 'TXT'
default_filename = '*.txt'
initial_directory = 'C:\SAP\'
CHANGING
file_table = filetable
rc = rc.
CALL METHOD cl_gui_cfw=>flush.
LOOP AT filetable INTO wa.
ENDLOOP.
IF wa-filename <> ''.
MOVE wa-filename TO pc_file.
ENDIF.
START-OF-SELECTION.
DATA: filename TYPE string.
filename = pc_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = filename
TABLES
data_tab = itab
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 s001(00) WITH 'File Successfully Uploaded'.
ELSE.
MESSAGE e001(00) WITH 'Error during File Uploading'.
ENDIF.
END-OF-SELECTION.
LOOP AT itab.
WRITE: / itab-kunnr, itab-land1, itab-name1(30),
itab-stras(30), itab-pstlz, itab-ort01(30).
ENDLOOP.
2:通过function module WS_FILENAME_GET实现用户PC文件的选择。
REPORT z_choosing_pc_file_use_fm.
TYPES: BEGIN OF rectype,
kunnr LIKE kna1-kunnr,
land1 LIKE kna1-land1,
name1 LIKE kna1-name1,
stras LIKE kna1-stras,
ort01 LIKE kna1-ort01,
pstlz LIKE kna1-pstlz,
END OF rectype.
DATA itab TYPE STANDARD TABLE OF rectype WITH HEADER LINE.
PARAMETERS: pc_file(80) OBLIGATORY.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pc_file.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename = '*.txt'
def_path = 'C:\SAP\'
title = 'UPLOAD'
IMPORTING
filename = pc_file
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
IF sy-subrc <> 0.
WRITE sy-subrc.
EXIT.
ENDIF.
START-OF-SELECTION.
DATA: filename TYPE string.
filename = pc_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = filename
TABLES
data_tab = itab
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 s001(00) WITH 'File Successfully Uploaded'.
ELSE.
MESSAGE e001(00) WITH 'Error during File Uploading'.
ENDIF.
END-OF-SELECTION.
LOOP AT itab.
WRITE: / itab-kunnr, itab-land1, itab-name1(30),
itab-stras(30), itab-pstlz, itab-ort01(30).
ENDLOOP.
分享到:
相关推荐
ABAP读取本地CSV文件
在ABAP(Advanced Business Application Programming)环境中,处理文件操作,如从FTP服务器下载文件、解析ZIP文件、将数据存储到内表以及管理文件系统中的文件移动,是常见的任务。本篇将详细介绍如何实现这些功能...
在 ABAP 中,读取 EXCEL 数据可以使用 OPEN DATASET 语句读取 EXCEL 文件,然后使用 LOOP 语句遍历 EXCEL 文件中的数据,并将其写入到 ABAP 内表中。下面是读取 EXCEL 数据的示例代码: ```ABAP DATA: G_DATAFILE ...
根据给定文件的信息,本文将围绕“ABAP外部链接下载文件”的主题展开,详细解析如何在SAP ABAP环境中利用URL实现文件下载的功能,并对代码片段进行深入分析。 ### 核心知识点概述 1. **ABAP环境中的HTTP客户端操作...
根据提供的文件信息,本文将详细解释 ABAP 中通过 URL 下载文件的相关知识点,包括 ABAP 程序中实现此功能的基本步骤和技术要点。 ### ABAP URL 文件下载概述 ABAP(Advanced Business Application Programming)...
abap 上传文件到ftp 比较使用的实例,大家可以学习。
从动态内表中读取数据也需要使用`FIELD-SYMBOLS`。以下是一个读取动态内表并显示数据的示例: **代码示例:** ```abap FORM output_dyntable_data. CLEAR <fs_dyn_wa>. LOOP AT <fs_dyn_table> INTO ...
在SAP ABAP中,创建动态内表通常涉及到以下几个步骤: 1. **定义表类型**:动态内表的表类型不是固定的,而是由一个结构变量(如DATA(lt_fieldname))来表示。这个结构变量通常包含字段描述符,如字段名称、长度、...
首先,"ABAP开发从入门到精通"这一主题涵盖了学习ABAP的基础到高级概念。对于初学者,入门阶段通常包括理解ABAP的基本语法,如数据类型、变量声明、控制结构(如IF语句和LOOP语句)、函数调用等。此外,还需要掌握...
通过ABAP程序去读取FTP服务器的CSV文件
SAP ABAP 动态内表详解 SAP ABAP 中的动态内表是一种特殊的内表结构,它可以根据实际情况动态地生成和赋值。本文将详细介绍动态内表的创建、赋值和读取显示。 动态内表的创建 动态内表的创建主要分为两步:首先...
ABAP 内表可以用来存储和处理大量的数据,例如从数据库中读取的数据、用户输入的数据等。 ABAP 内表的使用方法可以分为以下几种: 1. 填充内表 fills an internal table with data from a database table using ...
内容简介: 《SAP ABAP开发从入门到精通》以应用实例的形式,讲解了SAPABAP开发的相关知识点,详细介绍了SAPABAP开发者必须掌握的包与变更传输系统(CTS)、数据类型、数据库、模块化程序、内表、调试、ABAP数据...
在SAP ABAP编程中,动态内表的创建是实现灵活数据处理的重要手段,尤其是在处理大量数据或涉及多个系统表的场景下。本篇将详细解释如何动态地创建和使用内表,以及在进行动态更新时需要注意的关键点。 首先,让我们...
ABAP 三种内表区别 在 SAP 系统中,ABAP 语言是开发者的不二之选,而 ALV(Application List Viewer)则是 ABAP 中的一种报表展示工具。今天我们将探讨 ABAP 中的三种内表区别,及其在 ALV 报表开发中的应用。 第...
### ABAP 读取Excel到内表的函数与自编程序详解 #### 一、引言 在SAP系统开发中,经常需要处理Excel数据,尤其是将Excel中的数据导入到SAP系统的内表中。然而,在这个过程中会遇到一些限制,比如单元格内容长度的...
在ABAP编程中,内表(Internal Table)是一种非常重要的数据结构,用于存储和处理大量数据。内表灵活且高效,可以适应各种复杂的数据处理需求。以下是对ABAP内表创建方法的详细说明: 1. **声明表结构并基于表结构...
本案例主要介绍了如何在ABAP环境中调用DLL文件以实现特定功能,比如连接外部数据库读取数据。 首先,我们需要创建DLL文件。在这个例子中,使用了Visual Basic 6.0(VB6)创建了一个ActiveX.DLL工程。在VB6中,定义...
- **删除数据**:使用`DELETE`语句从内表中移除记录。 #### 三、性能分析 ##### 3.1 标准内表 - **优点**: - 实现简单,易于理解和使用。 - 对于不涉及复杂查询的操作,性能表现良好。 - **缺点**: - 当需要...
本节将深入探讨ABAP内表的创建、填充以及从数据库读取信息到内表的方法。 首先,我们来看创建内表的方式。内表可以通过两种方法声明: 1. **直接声明**:通过`DATA`关键字开始,然后定义内表的结构,包括字段类型...