首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

DOI技术-屏幕嵌套EXCEL形式报表

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

1

STEP 1 OAOR 上传模板

TCODE:OAOR

在创建页签下,展开选择文档类型或程序->标准文档类型->表模板,双击表模板会弹出路径选择框,选择你要上传的模板并填写描述确认上传,上传成功之后展开HRFPM_EXCEL_STANDARD可以看到你上传的模板,这样第一步模板上传就完成了。

OK,现在文档已经导入了。我们可以在OAOR界面中,显示文档、文档的详细信息(detail info.)等。

2

STEP 2 创建Dialog Screen

新建一个screen, scren number为100。

新建一个GUI Status,编号为100,在gui status中定义function code为’&F03’,并激活GUI Status.

flow logic,增加一个PAI事件,用于处理屏幕的退出

3

STEP 3 获取模板文档的信息

操作excel模板文档,使用类,这个类的方法获取文档的url。

首先定义一些global变量:

获取excel模板的url:的静态方法获取excel模板那的url。数据存放在内表中,读取后放在global变量g_template_url里面。

4

STEP 4 打开Excel文档

根据获取的excel template的url,打开excel文档。

05

STEP 5 将数据写入Excel

数据写入Excel,可以使用批量的方式或者逐个单元格写入的方式。批量写入的方式效率高,逐个单元格写入的方式比较灵活,在程序中都能用到。将数据写入excel需要使用i_oi_spreadsheet接口实例的两个方法:

insert_range_dim方法,定义一个范围(range),设定range的名称、位置和大小。

set_range_data方法,写入数据到range,写入的时候,ranges参数设定range的名称和大小, contents参数设定写入的内容。

PS:批量与单个的差别就在于范围的设定,单个的话RANG就设为1行1列就可以了。

批量操作:

逐个单元格操作:

06

程序的界面如下

2-78行是批量插入数据

79行是逐个单元格插入数据

程序缺点:没做单元格属性设置实例(下次再整,我要下班了--)

我就知道你“在看”

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191124A02B5C00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券