`

i_oi_spreadsheet->INSERT_ONE_TABLE

    博客分类:
  • DOI
 
阅读更多
 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
分享到:
评论

相关推荐

    S811+_Soft_Starter-用户手册-中文-20170828.pdf

    如果用户在OI产品的维修或升级方面遇到问题,可以联系当地经销商或通过EatonCare支持中心获取帮助。 4. 产品介绍和规格 手册详细介绍了S811+软启动器的功能和规格。产品信息包括外观、物理和环境参数、尺寸、重量、...

    up_541780_pars-pipe-core_oi7y1.rar

    标题中的"up_541780_pars-pipe-core_oi7y1.rar"似乎是一个文件上传的ID,结合描述,我们可以推断这是一份关于PHP编程的源码包,名为"Pars-Pipe-Core"。这个库的核心功能是帮助处理和聚合从Web页面抓取的数据,对于...

    FANUC_0i-C-0i_Mate-C简明联机

    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用户手册” 明确了文档的主要内容是关于FANUC Series 0i-MD数控系统的用户指南。 - **描述**: 同标题一致,强调了...

    Chainsaw_oi yes

    《Chainsaw_oi:揭示木材加工的科技力量》 在现代林业与建筑行业中,电锯,特别是"Chainsaw_oi",扮演着至关重要的角色。它是一种高效率、高强度的工具,专为切割木材和其他硬质材料设计。本文将深入探讨"Chainsaw_...

    ABAP DOI详解

    call method gr_control-&gt;init_control exporting ... endform. "create_container_control ``` 之后创建Document Proxy,打开或新建Excel文档,并进行相关操作。这个过程涉及对DOI接口的调用,以及设置Excel的...

    发那科FANUC 0i-MD参数说明书_FANUC0I-MD_fanucmd参数_源码

    发那科(FANUC)0i-MD系统是一款先进的数控系统,广泛应用于金属切削加工领域,如铣床、车床和加工中心等。该系统以其高效、精确和易于编程的特点,在工业界享有盛誉。这篇参数说明书是操作和调试FANUC 0i-MD系统的...

    FANUC_Oi系统操作编程说明书.xdf

    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数控系统的维修指南,它为从事数控加工行业的维修人员提供了丰富的维修信息和指导。FANUC Oi-MC数控系统广泛应用于各类机床的数控加工操作中,它具备高度的稳定性和...

    oi.zip_PHP FILE MANAGER_file manager php_oi

    标题中的"oi.zip"是一个ZIP压缩文件,通常用于在互联网上传输或存储多个文件。"PHP FILE MANAGER"和"file manager php_oi"表明这是一个使用PHP编程语言开发的文件管理器应用。PHP是一种广泛使用的服务器端脚本语言,...

    FANUC_Series_Oi系统传输设置.doc

    FANUC Oi 系统传输设置详解 在本文中,我们将详细介绍 FANUC Oi 系统的传输设置,包括参数设置、传输格式、通讯端口、传输速率等方面的知识点。 一、参数设置 在 FANUC Oi 系统中,参数设置是传输的关键步骤。...

    基于FANUC_OI_MATE系统的CK518数控立车电气控制(电气.docx

    基于FANUC_OI_MATE系统的CK518数控立车电气控制 本文档主要介绍了基于FANUC_OI_MATE系统的CK518数控立车电气控制系统的设计和实现。该系统使用了华中“世纪星”HNC-21系列数控装置,具有高性能、配置灵活、结构紧凑...

    OI-ABCIP_G-2.0.zip

    - **Setup-OI-ABCIP.msi**:这是主要的安装程序文件,双击运行后,按照向导提示进行安装。过程中可能需要用户提供相关的许可证信息或选择安装路径。 - **Silent_Install_Setup.bat**:这是一个批处理文件,用于无...

    oi-wiki-18.12.pdf

    OI Wiki 致⼒于成为⼀个免费开放且持续更新的知识整合站点,⼤家可以在这⾥获取关于 编程竞赛 (competitive programming) 有趣⼜实⽤的知识,我们为⼤家准备了竞赛中的基础知识、常⻅题型、解题思路以及常⽤⼯ ...

    ???? ??.zip_#Java_OI8K_aow_to3ja_zip

    .zip_#Java_OI8K_aow_to3ja_zip" 提供的信息表明,这个压缩文件可能包含与Java编程语言相关的学习资料或者代码示例,特别是针对OI(奥林匹克信息学)的问题解决技巧。"OI8K"可能是某种比赛或训练的编号,"aow"和"to3...

    k_medoids.rar_K聚类_k medoids matlab_k-medoids聚类_k-medoid算法_异常数据

    3,对于每个类(Oi)中,顺序选取一个Or,计算用Or代替Oi后的消耗—E(Or)。选择E最小的那个Or来代替Oi。这样K个medoids就改变了,下面就再转到2。 4,这样循环直到K个medoids固定下来。 这种算法对于脏数据和异常...

    EJQ_Judger:OI裁判员-开源

    【EJQ_Judger:OI裁判员-开源】是一个专为在线算法竞赛(OI,Online Judge)设计的裁判系统,其核心特点是简洁且高效,同时具有高度的可扩展性,能够支持更多的编程语言。作为一个开源项目,它为开发者和竞赛组织者...

    2023牛客OI赛前集训营-提高组(第三场)题解

    2023牛客OI赛前集训营-提高组(第三场)题解 本资源摘要信息是关于2023牛客OI赛前集训营-提高组(第三场)题解的详细解读。下面将对每道题的解法进行详细的解释。 T1-填数游戏 这一题的思路是贪心算法。由于大数...

    FANUC数控系统0i-F Plus连接说明(功能篇).pdf

    FANUC数控系统0i-F Plus连接说明(功能篇) FANUC数控系统0i-F Plus连接说明(功能篇)是FANUC株式会社发布的一份关于FANUC数控系统0i-F Plus的连接说明书。该说明书旨在提供FANUC数控系统0i-F Plus的连接信息和...

    hypermesh网格划分总结经验借鉴.pdf

    在 Hypermesh 中,可以使用 Tool -&gt; Edges 和 Tool -&gt; Faces 工具来合并面单元的自由边和删除重节点,从而实现网格的连续性。 2. 节点移动经验 可以使用 Project 功能将节点移动到指定的线或者面上。 3. 网格分区...

Global site tag (gtag.js) - Google Analytics