METHOD download_file.
DATA: lv_control TYPE REF TO i_oi_container_control,
lv_container TYPE REF TO cl_gui_custom_container,
lv_document TYPE REF TO i_oi_document_proxy,
lv_spreadsheet TYPE REF TO i_oi_spreadsheet,
lv_error TYPE REF TO i_oi_error,
lv_structdescr TYPE REF TO cl_abap_structdescr,
lv_elemdescr TYPE REF TO cl_abap_elemdescr,
lv_outputs TYPE STANDARD TABLE OF typ_output,
lv_output TYPE typ_output,
lv_components TYPE abap_component_tab,
lv_component TYPE abap_componentdescr,
lv_fields TYPE soi_fields_table,
lv_field TYPE rfc_fields,
lv_offset TYPE ioff,
lv_rows TYPE i,
lv_file(1000).
TRY.
*Create instance control
CALL METHOD c_oi_container_control_creator=>get_container_control
IMPORTING
control = lv_control
error = lv_error.
*Create container
CREATE OBJECT lv_container
EXPORTING
container_name = 'CONTAINER'.
*Call init_control
CALL METHOD lv_control->init_control
EXPORTING
r3_application_name = 'AR supplier items'
inplace_enabled = abap_true
parent = lv_container.
*Create document object
CALL METHOD lv_control->get_document_proxy
EXPORTING
document_type = 'Excel.Sheet'
IMPORTING
document_proxy = lv_document
error = lv_error.
*Open input file
CONCATENATE 'FILE://' pt_upd INTO lv_file.
CALL METHOD lv_document->open_document
EXPORTING
document_url = lv_file
open_readonly = abap_true
open_inplace = abap_true
IMPORTING
error = lv_error.
*Duplicate the input file
CONCATENATE 'FILE://' pt_dwd INTO lv_file.
CALL METHOD lv_document->save_copy_as
EXPORTING
file_name = lv_file
no_flush = abap_false
IMPORTING
error = lv_error.
*Close input file
CALL METHOD lv_document->close_document
EXPORTING
do_save = abap_false
no_flush = abap_false
IMPORTING
error = lv_error.
CALL METHOD lv_document->release_document
EXPORTING
no_flush = abap_false
IMPORTING
error = lv_error.
*Open download file
CALL METHOD lv_document->open_document
EXPORTING
document_url = lv_file
open_inplace = abap_true
IMPORTING
error = lv_error.
*Get spreadsheet
CALL METHOD lv_document->get_spreadsheet_interface
EXPORTING
no_flush = abap_true
IMPORTING
sheet_interface = lv_spreadsheet.
SORT lv_items BY cust_po sequence.
LOOP AT lv_items INTO lv_item.
MOVE-CORRESPONDING lv_item TO lv_output.
APPEND lv_output TO lv_outputs.
ENDLOOP.
*Populate fields table for method INSERT_ONE_TABLE
CALL FUNCTION 'DP_GET_FIELDS_FROM_TABLE'
TABLES
data = lv_outputs
fields = lv_fields
EXCEPTIONS
dp_invalid_table = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
*Create Range for entering data
*Set cursor position
DESCRIBE TABLE lv_outputs LINES lv_rows.
CALL METHOD lv_spreadsheet->insert_range_dim
EXPORTING
name = 'RANGE1'
top = 4
left = 1
columns = 30
rows = lv_rows
IMPORTING
error = lv_error.
*Clear range data
CALL METHOD lv_spreadsheet->clear_range
EXPORTING
name = 'RANGE1'
IMPORTING
error = lv_error.
CALL METHOD lv_spreadsheet->insert_one_table
EXPORTING
data_table = lv_outputs
fields_table = lv_fields
rangename = 'RANGE1'
wholetable = abap_true
IMPORTING
error = lv_error.
*Save file
CALL METHOD lv_document->save_as
EXPORTING
file_name = lv_file
IMPORTING
error = lv_error.
*Close download file
CALL METHOD lv_document->close_document
EXPORTING
do_save = abap_true
no_flush = abap_false
IMPORTING
error = lv_error.
CALL METHOD lv_document->release_document
EXPORTING
no_flush = abap_false
IMPORTING
error = lv_error.
FREE lv_document.
CATCH cx_root.
ENDTRY.
ENDMETHOD
分享到:
相关推荐
如果用户在OI产品的维修或升级方面遇到问题,可以联系当地经销商或通过EatonCare支持中心获取帮助。 4. 产品介绍和规格 手册详细介绍了S811+软启动器的功能和规格。产品信息包括外观、物理和环境参数、尺寸、重量、...
标题中的"up_541780_pars-pipe-core_oi7y1.rar"似乎是一个文件上传的ID,结合描述,我们可以推断这是一份关于PHP编程的源码包,名为"Pars-Pipe-Core"。这个库的核心功能是帮助处理和聚合从Web页面抓取的数据,对于...
FANUC 0i-C/0i Mate-C是FANUC公司生产的一款数控系统,广泛应用于机械加工领域。这款数控系统以其高稳定性和易用性深受用户喜爱。接下来,我们将详细介绍FANUC 0i-C/0i Mate-C系统的一些关键知识点。 首先是FANUC 0...
### FANUC Series 0i-MD 用户手册关键知识点总结 #### 一、概述 - **标题**: “FANUC_Series_0i-MD用户手册” 明确了文档的主要内容是关于FANUC Series 0i-MD数控系统的用户指南。 - **描述**: 同标题一致,强调了...
《Chainsaw_oi:揭示木材加工的科技力量》 在现代林业与建筑行业中,电锯,特别是"Chainsaw_oi",扮演着至关重要的角色。它是一种高效率、高强度的工具,专为切割木材和其他硬质材料设计。本文将深入探讨"Chainsaw_...
call method gr_control->init_control exporting ... endform. "create_container_control ``` 之后创建Document Proxy,打开或新建Excel文档,并进行相关操作。这个过程涉及对DOI接口的调用,以及设置Excel的...
发那科(FANUC)0i-MD系统是一款先进的数控系统,广泛应用于金属切削加工领域,如铣床、车床和加工中心等。该系统以其高效、精确和易于编程的特点,在工业界享有盛誉。这篇参数说明书是操作和调试FANUC 0i-MD系统的...
FANUC_Oi系统操作编程说明书.xdf 数控机床/加工中心 FANUC O 系 列操作编程说明书 第一篇: 编程 5 1. 综述 5 1.1 可编程功能 5 1.2 准备功能 5 1.3 辅助功能 7 2. 插补功能 8 2.1 快速定位( G00) 8 ...
FANUC Oi-MC维修说明书是一份专门针对FANUC Oi-MC数控系统的维修指南,它为从事数控加工行业的维修人员提供了丰富的维修信息和指导。FANUC Oi-MC数控系统广泛应用于各类机床的数控加工操作中,它具备高度的稳定性和...
标题中的"oi.zip"是一个ZIP压缩文件,通常用于在互联网上传输或存储多个文件。"PHP FILE MANAGER"和"file manager php_oi"表明这是一个使用PHP编程语言开发的文件管理器应用。PHP是一种广泛使用的服务器端脚本语言,...
FANUC Oi 系统传输设置详解 在本文中,我们将详细介绍 FANUC Oi 系统的传输设置,包括参数设置、传输格式、通讯端口、传输速率等方面的知识点。 一、参数设置 在 FANUC Oi 系统中,参数设置是传输的关键步骤。...
基于FANUC_OI_MATE系统的CK518数控立车电气控制 本文档主要介绍了基于FANUC_OI_MATE系统的CK518数控立车电气控制系统的设计和实现。该系统使用了华中“世纪星”HNC-21系列数控装置,具有高性能、配置灵活、结构紧凑...
- **Setup-OI-ABCIP.msi**:这是主要的安装程序文件,双击运行后,按照向导提示进行安装。过程中可能需要用户提供相关的许可证信息或选择安装路径。 - **Silent_Install_Setup.bat**:这是一个批处理文件,用于无...
OI Wiki 致⼒于成为⼀个免费开放且持续更新的知识整合站点,⼤家可以在这⾥获取关于 编程竞赛 (competitive programming) 有趣⼜实⽤的知识,我们为⼤家准备了竞赛中的基础知识、常⻅题型、解题思路以及常⽤⼯ ...
.zip_#Java_OI8K_aow_to3ja_zip" 提供的信息表明,这个压缩文件可能包含与Java编程语言相关的学习资料或者代码示例,特别是针对OI(奥林匹克信息学)的问题解决技巧。"OI8K"可能是某种比赛或训练的编号,"aow"和"to3...
3,对于每个类(Oi)中,顺序选取一个Or,计算用Or代替Oi后的消耗—E(Or)。选择E最小的那个Or来代替Oi。这样K个medoids就改变了,下面就再转到2。 4,这样循环直到K个medoids固定下来。 这种算法对于脏数据和异常...
【EJQ_Judger:OI裁判员-开源】是一个专为在线算法竞赛(OI,Online Judge)设计的裁判系统,其核心特点是简洁且高效,同时具有高度的可扩展性,能够支持更多的编程语言。作为一个开源项目,它为开发者和竞赛组织者...
2023牛客OI赛前集训营-提高组(第三场)题解 本资源摘要信息是关于2023牛客OI赛前集训营-提高组(第三场)题解的详细解读。下面将对每道题的解法进行详细的解释。 T1-填数游戏 这一题的思路是贪心算法。由于大数...
FANUC数控系统0i-F Plus连接说明(功能篇) FANUC数控系统0i-F Plus连接说明(功能篇)是FANUC株式会社发布的一份关于FANUC数控系统0i-F Plus的连接说明书。该说明书旨在提供FANUC数控系统0i-F Plus的连接信息和...
在 Hypermesh 中,可以使用 Tool -> Edges 和 Tool -> Faces 工具来合并面单元的自由边和删除重节点,从而实现网格的连续性。 2. 节点移动经验 可以使用 Project 功能将节点移动到指定的线或者面上。 3. 网格分区...