`

abap从pc读取文件到内表

阅读更多
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文件.txt

    ABAP读取本地CSV文件

    ABAP从FTP下载文件并解析到内表移动文件位置.zip

    在ABAP(Advanced Business Application Programming)环境中,处理文件操作,如从FTP服务器下载文件、解析ZIP文件、将数据存储到内表以及管理文件系统中的文件移动,是常见的任务。本篇将详细介绍如何实现这些功能...

    ABAP 读取EXECL数据到数据表中

    在 ABAP 中,读取 EXCEL 数据可以使用 OPEN DATASET 语句读取 EXCEL 文件,然后使用 LOOP 语句遍历 EXCEL 文件中的数据,并将其写入到 ABAP 内表中。下面是读取 EXCEL 数据的示例代码: ```ABAP DATA: G_DATAFILE ...

    ABAP 外部链接下载文件

    根据给定文件的信息,本文将围绕“ABAP外部链接下载文件”的主题展开,详细解析如何在SAP ABAP环境中利用URL实现文件下载的功能,并对代码片段进行深入分析。 ### 核心知识点概述 1. **ABAP环境中的HTTP客户端操作...

    ABAP url下载文件

    根据提供的文件信息,本文将详细解释 ABAP 中通过 URL 下载文件的相关知识点,包括 ABAP 程序中实现此功能的基本步骤和技术要点。 ### ABAP URL 文件下载概述 ABAP(Advanced Business Application Programming)...

    abap 上传文件到ftp

    abap 上传文件到ftp 比较使用的实例,大家可以学习。

    ABAP动态内表使用的例子

    从动态内表中读取数据也需要使用`FIELD-SYMBOLS`。以下是一个读取动态内表并显示数据的示例: **代码示例:** ```abap FORM output_dyntable_data. CLEAR &lt;fs_dyn_wa&gt;. LOOP AT &lt;fs_dyn_table&gt; INTO ...

    SAP ABAP动态内表构建与例子

    在SAP ABAP中,创建动态内表通常涉及到以下几个步骤: 1. **定义表类型**:动态内表的表类型不是固定的,而是由一个结构变量(如DATA(lt_fieldname))来表示。这个结构变量通常包含字段描述符,如字段名称、长度、...

    ABAP开发从入门到精通-高清自学版 SAP+ABAP开发从入门到精通 SAP开发自学必读 SAP SAP开发自学入门到精通

    首先,"ABAP开发从入门到精通"这一主题涵盖了学习ABAP的基础到高级概念。对于初学者,入门阶段通常包括理解ABAP的基本语法,如数据类型、变量声明、控制结构(如IF语句和LOOP语句)、函数调用等。此外,还需要掌握...

    SAP从FTP读取CSV文件.txt

    通过ABAP程序去读取FTP服务器的CSV文件

    sap_ABAP-动态内表

    SAP ABAP 动态内表详解 SAP ABAP 中的动态内表是一种特殊的内表结构,它可以根据实际情况动态地生成和赋值。本文将详细介绍动态内表的创建、赋值和读取显示。 动态内表的创建 动态内表的创建主要分为两步:首先...

    abap内表使用方法

    ABAP 内表可以用来存储和处理大量的数据,例如从数据库中读取的数据、用户输入的数据等。 ABAP 内表的使用方法可以分为以下几种: 1. 填充内表 fills an internal table with data from a database table using ...

    sapabap开发从入门到精通

    内容简介: 《SAP ABAP开发从入门到精通》以应用实例的形式,讲解了SAPABAP开发的相关知识点,详细介绍了SAPABAP开发者必须掌握的包与变更传输系统(CTS)、数据类型、数据库、模块化程序、内表、调试、ABAP数据...

    ABAP动态内表的收集

    在SAP ABAP编程中,动态内表的创建是实现灵活数据处理的重要手段,尤其是在处理大量数据或涉及多个系统表的场景下。本篇将详细解释如何动态地创建和使用内表,以及在进行动态更新时需要注意的关键点。 首先,让我们...

    ABAP三种内表区别

    ABAP 三种内表区别 在 SAP 系统中,ABAP 语言是开发者的不二之选,而 ALV(Application List Viewer)则是 ABAP 中的一种报表展示工具。今天我们将探讨 ABAP 中的三种内表区别,及其在 ALV 报表开发中的应用。 第...

    ABAP 读取EXCEL到内表的函数和自编程序.doc

    ### ABAP 读取Excel到内表的函数与自编程序详解 #### 一、引言 在SAP系统开发中,经常需要处理Excel数据,尤其是将Excel中的数据导入到SAP系统的内表中。然而,在这个过程中会遇到一些限制,比如单元格内容长度的...

    ABAP内表创建整理

    在ABAP编程中,内表(Internal Table)是一种非常重要的数据结构,用于存储和处理大量数据。内表灵活且高效,可以适应各种复杂的数据处理需求。以下是对ABAP内表创建方法的详细说明: 1. **声明表结构并基于表结构...

    ABAP 调用 DLL文件

    本案例主要介绍了如何在ABAP环境中调用DLL文件以实现特定功能,比如连接外部数据库读取数据。 首先,我们需要创建DLL文件。在这个例子中,使用了Visual Basic 6.0(VB6)创建了一个ActiveX.DLL工程。在VB6中,定义...

    abap 内表效率问题

    - **删除数据**:使用`DELETE`语句从内表中移除记录。 #### 三、性能分析 ##### 3.1 标准内表 - **优点**: - 实现简单,易于理解和使用。 - 对于不涉及复杂查询的操作,性能表现良好。 - **缺点**: - 当需要...

    ABAP 内表复习与强化

    本节将深入探讨ABAP内表的创建、填充以及从数据库读取信息到内表的方法。 首先,我们来看创建内表的方式。内表可以通过两种方法声明: 1. **直接声明**:通过`DATA`关键字开始,然后定义内表的结构,包括字段类型...

Global site tag (gtag.js) - Google Analytics