实现报表与算法的统一管理

在报表项目中,常常有些复杂的数据计算是一个报表专门使用的,其它报表用不到。通常,此类计算可以在报表数据源中用 SQL 实现,不过由于 SQL 无法分步计算,需要写非常复杂难懂的长语句,不利于调试和维护,因此也会使用 Java 或者存储过程来实现。但这样一来,计算程序又会和报表模板分开,不利于组织管理。

使用润乾报表的脚本数据集(结合集算器实现)来实现报表专用计算,是解决上述困境的一个有效手段,一方面既可以写出简单易懂的分步计算脚本,另一方面又可以将脚本和报表模板一起存放,利于管理。

这两种方式的系统结构对比如下图所示:

imagepng

下面通过一个具体的报表例子来看一下润乾报表脚本数据集的用法。

下表是一个《年度客户销售分析报表》,要求可以选择年份作为输入参数:

imagepng

其中,CLIENT 是客户,TOTAL 是客户销售总额,DATE1 是客户最后一次销售日期,AMOUNT1 是客户最后一次销售金额,DATE2 是客户倒数第二次销售日期,AMOUNT2 是客户倒数第二次销售日期。

1、定义报表参数

在润乾报表中新建报表模板后,要定义报表参数:

imagepng

2、配置脚本数据集

定义一个脚本数据集如下:

imagepng

脚本数据集编写如下:

 AB
1=create(client,total,date1,amount1,date2,amount2) 
2=demo.query(“select * from sales where year(ORDERDATE)=”+year) 
3=A2.group(CLIENT) 
4for A3 
5 >client=A4.m(1).CLIENT
6 >total=A4.sum(AMOUNT)
7 =A4.sort(ORDERDATE:-1)
8 >date1=B6.m(1).ORDERDATE
9 >amount1=B6.m(1).AMOUNT
10 >date2=B6.m(2).ORDERDATE
11 >amount2=B6.m(2).AMOUNT
12result A1 

代码说明:

A1:新建一个空序表,准备存放结果数据。

A2:使用报表的数据源 demo 用简单的 sql 取出销售数据,year 是报表的参数。

A3:对销售数据按照 CLIENT 分组。

A4:开始对分组数据循环处理。

B4:-B11:求结果数据,插入 A1 中,这里不再详细介绍。

A12:将结果数据 A1 返回给报表。

3、报表设计

回到报表设计器主界面,报表设计如下图:

imagepng

保存为 salary.rpx 即可。可以看到报表设计、计算脚本编写都在同一个 rpx 文件中,管理变得简单。

转载于:https://my.oschina.net/u/3980313/blog/3040122

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值