润乾实现简单自定义动态列报表

需求背景:

用户生成的报表样式比较固定是较常见的网格式报表,但是要求可以选择报表的数据来源(数据表),并可以选择需要展现哪些列。根据用户选择结果生成报表查询结果。

实现思路:
1. 
利用宏可控制数据集的取数sql,实现同一数据集可根据参数输入不同得到不同的数据表检索结果。
2. 利用datasetName.field( stringExp )及datasetName.fieldName( intExp )实现动态列报表。

实现步骤:
1
. 参数、宏、数据集配置:
参数说明:

 Sql :根据参数table动态生成宏,"select * from "+@table

数据集说明:
数据集ds1,数据集sql语法:${sql},直接利用宏运算结果作为数据集。
2. 报表模板设计


 
B2
:=columns,根据接收到的字段序号组结果,横向扩展出若干个格子
B3:= ds1.fieldname(B2),根据列号取数据集的列名
B4:=ds1.field(B3),获得数据集当前行或者当前组中第一行中,指定列的数据
A4单元格为数据集结果的行号,不显示,只是作为主格。
3. 参数模板设计
数据集说明:
 


 
其中C2单元格变量名为table,编辑方式为下拉数据集:


 E2
单元格变量名为columns,编辑方式为下拉数据集


 
该单元格实现了和B2单元格的动态过滤,并支持多选功能。

实现效果:


 
用户可以通过选择数据库表及表中相应的字段生成自定义的网格式报表。

补充说明:
此种方式的报表格式比较固定,只能实现最简单意义上的报表自定义。另外函数datasetName.field(#colNo )的性能比较低应该慎用!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值