复杂报表设计之动态报表


需求说明

imagepng

imagepng

如上图所示,可以需选择不同的分组维度进行数据分析,例如类别、供应商维度;
可以通过用户输入的参数值进行数据动态过滤,例如传入不同供应商、类别的值进行数据查询过滤;
可以选择要显示的附加字段数据;
同时要求显示有排名(每个分组内的数据从大到小显示)、占比(产品占该分组维度总订购量的百分比)。

制作过程:

1. 数据准备

此示例使用脚本数据集完成数据的准备工作,此处使用脚本数据集是处于对组内排名需求的考虑,完整脚本配置如下图所示:

imagepng

其中,
A1:使用 connect 函数连接 demo 数据源
A2:使用 query 函数进行数据的过滤查询
A3:使用 group 和 sort 函数实现组内排序效果,即排名结果

2. 主报表制作

imagepng

其中,
A2:=if(arg1==“供应商 ID”,ds1.group( 供应商 ID:1),ds1.group(类别 ID:1)) 实现动态分组效果
B2:=ds1.sum(订购量) B 列为隐藏列,用于占比的分母值计算
C2:=&D2 排名效果实现,此处使用组内序号的配置即可,数据集准备的数据中已完成排名计算
D2:=ds1.select(产品 ID) 明细数据的展现,跟随 A2 不同的分组维度显示产品明细
E2:=ds1. 订购量 同一个数据集的 select 函数后面跟随取值表达式,不需要再使用 select 函数取数
F2:=if(B2==0,“-”,E2/B2) 占比的实现是除法,准备好分子和分母的数据即可,此处使用 if 对分母为 0 的数据做了特殊处理,显示为“-”
G1:=split(arg4,“,”) 对传入要附件显示的列名进行拆分,需要设置 G1 单元格的扩展方式为横向扩展
G2:=ds1.field(G1) 使用 field 函数对该字段进行取数显示

主表设计完成,保存报表,例如保存名称为:kehu1.rpx,我们可以通过设计器的预览按钮看下效果:

imagepng

输入参数值后,得到如下结果:
imagepng

3. 参数模板设计

imagepng

文件–新建报表,设置报表属性中的报表类型为:参数模板
绘制上图所示的表样
其中,
B2:编辑风格为下拉列表,并设置 web 变量名为 arg1

imagepng

D2:编辑风格为下拉数据集,并设置 web 变量名为 arg2

imagepng
此 ds1 数据集需在参数模板的 报表–数据集中进行定义

F2:编辑风格为下拉数据集,并设置 web 变量名为 arg3
B3:编辑风格为下拉列表,并设置 web 变量名为 arg4

最后,将参数模板保存为主表名称 _arg.rpx,此示例名称为 kehu1_arg.rpx

至此,整体效果已完成设置。

以下是广告时间

对润乾产品感兴趣的小伙伴,一定要知道软件还能这样卖哟性价比还不过瘾? 欢迎加入好多乾计划。
这里可以低价购买软件产品,让已经亲民的价格更加便宜!
这里可以销售产品获取佣金,赚满钱包成为土豪不再是梦!
这里还可以推荐分享抢红包,每次都是好几块钱的巨款哟!
来吧,现在就加入,拿起手机扫码,开始乾包之旅



嗯,还不太了解好多乾?
猛戳这里
玩转好多乾