占比报表

阅读(7442) 标签: 占比报表,

接下来我们介绍占比报表的制作:

该表的数据集为ds1

SELECT 订单明细.单价,订单明细.数量,订单.货主地区 FROM 订单,订单明细 WHERE  订单.订单ID = 订单明细.订单ID

预览如下:

这是一张比较典型的浮动行(行数不定,动态扩展)的报表,如果要计算占比该怎么办?所谓的占比运算,就是拿每一行的数值除以所有行的合计值,因此,我们要先把合计值算出来,做法是:

1、  在报表最下面追加空白行

2、  在空行B3单元格输入表达式:=sum(B2{});在D3单元格输入表达式:=sum(D2{}),并设置显示格式为:¥#0.00,算出合计值

3、  设计界面截图

4、  预览截图

可以看到合计值出来了,此时我们再加上占比的表达式

5、  C2单元格输入表达式:=B2/B3,并设置显示格式为:#0.00%

E2单元格输入表达式:=D2/D3,并设置显示格式为:#0.00%

6、  设计界面截图

7、  报表保存为12.1.rpx,预览截图

说明

这是一个比较简单的行间运算例子,该例子要求报表引擎在解析报表时,能够先解析表达式,判断出B2格和D2格的占比表达式用到了B3格和D3格,从而先计算B3格和D3格,然后再计算C2格和E2格。

对于很多引用第三方表达式解析器(如BeanShell)的报表工具来说,就无法智能的判断运算优先级了。因此,对于那类报表工具来说,看起来很简单的占比报表,实现起来却很麻烦。