润乾集算报表实现算法绑定

来源:互联网 发布:android 多媒体数据库 编辑:程序博客网 时间:2024/05/18 01:07

在报表项目中,常常有些复杂数据计算是为一个报表专用的,其它报表用不到。此类计算可以在报表数据源中用SQL实现,但由于SQL无法分步计算,经常会写出非常复杂难懂的长语句,不利于调试和维护。如果用Java或者存储过程来实现,计算程序会和报表模板又会分开,不利于管理。使用润乾集算报表的脚本数据集来实现报表专用计算,既可以写出简单易懂的分步骤计算脚本,又可以将脚本存放在报表模板中利于管理。系统结构的对比如下图:

report5_r_bang_1

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

  《年度客户销售分析报表》可以选择年份作为输入参数,如下图:

report5_r_bang_2

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

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

report5_r_bang_3

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

report5_r_bang_4

  脚本数据集编写如下:

 AB1=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).CLIENT6 >total=A4.sum(AMOUNT)7 =A4.sort(ORDERDATE:-1)8 >date1=B6.m(1).ORDERDATE9 >amount1=B6.m(1).AMOUNT10 >date2=B6.m(2).ORDERDATE11 >amount2=B6.m(2).AMOUNT12result A1 

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

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

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

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

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

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

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

report5_r_bang_5

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

0 0
原创粉丝点击