EXCEL——DOI实现屏幕嵌套EXCEL表格

本文介绍了如何使用ABAP实现屏幕嵌套EXCEL报表的步骤,包括上传EXCEL模板、创建对话屏幕、获取模板信息、打开及写入数据到Excel。通过这些步骤,可以解决复杂报表格式的需求。
摘要由CSDN通过智能技术生成

技术背景:当需求报表格式复杂,WRITE/ALV报表无法满足,我们可以采用先用EXCEL画出报表格式上传EXCEL模板填充数据,并将EXCEL模板嵌套在屏幕上的方法解决此类需求。

STEP 1 OAOR 上传模板
TCODE:OAOR
在这里插入图片描述
在创建页签下,展开选择文档类型或程序->标准文档类型->表模板,双击表模板会弹出路径选择框,选择你要上传的模板并填写描述确认上传,上传成功之后展开HRFPM_EXCEL_STANDARD可以看到你上传的模板,这样第一步模板上传就完成了。
在这里插入图片描述
OK,现在文档已经导入了。我们可以在OAOR界面中,显示文档、文档的详细信息(detail info.)等。

STEP 2 创建Dialog Screen
1) 新建一个screen, scren number为100。
在这里插入图片描述
2)新建一个GUI Status,编号为100,在gui status中定义function code为’&F03’,并激活GUI Status.
在这里插入图片描述
在这里插入图片描述
3) flow logic,增加一个PAI事件,用于处理屏幕的退出
在这里插入图片描述
STEP 3 获取模板文档的信息
操作excel模板文档,使用cl_bds_document_set类,这个类的get_with_url方法获取文档的url。

首先定义一些global变量:
在这里插入图片描述
获取excel模板的url :cl_bds_document_set的静态方法get_with_url获取excel模板那的url。数据存放在内表中,读取后放在global变量g_template_url里面。
在这里插入图片描述
STEP 4 打开Excel文档
根据获取的excel template的url,打开excel文档:
在这里插入图片描述
STEP 5 将数据写入Excel
数据写入Excel,可以使用批量的方式或者逐个单元格写入的方式。批量写入的方式效率高,逐个单元格写入的方式比较灵活,在程序中都能用到。将数据写入excel需要使用i_oi_spreadsheet接口实例的两个方法:

  1. insert_range_dim方法,定义一个范围(range),设定range的名称、位置和大小。
    在这里插入图片描述
  2. set_range_data方法,写入数据到range,写入的时候,ranges参数设定range的名称和大小, contents参数设定写入的内容。
    在这里插入图片描述
    PS:批量与单个的差别就在于范围的设定,单个的话RANG就设为1行1列就可以了。
    批量操作:
    在这里插入图片描述
    逐个单元格操作:
    在这里插入图片描述
    在这里插入图片描述
    程序的界面如下
    2-78行是批量插入数据
    79行是逐个单元格插入数据
    程序缺点:没做单元格属性设置实例(下次再整,我要下班了–)
    在这里插入图片描述
    在这里插入图片描述
    程序源码:
    &---------------------------------------------------------------------
    *& Report ZDOI_EXCEL
    *&
    &---------------------------------------------------------------------
    *&
    *&
    &---------------------------------------------------------------------

repo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值