所谓的累积,就是从第一行起累加到当前行的数值之和。

报表样例

制作如下图所示的累积报表: 累积 - 图1

从累积报表的定义中不难看出 累积值=上一行的累积值+当前行需要被累积的值,那么如何在单元格表达式中表示“上一行的累积值”呢?本例通过位移坐标和临时变量两种方法来说明如何取得上一行的累计值。

制作方法

第一步 定义数据集

报表中的数据来自产品中自带的数据表“DEMO_ORDERS”、“DEMO_ORDERDETAILS“和“DEMO_EMPLOYEE”。

新建复杂SQL数据集“雇员订单表”,SQL语句为:select DEMO_EMPLOYEE.雇员ID,DEMO_EMPLOYEE.销售人员,DEMO_EMPLOYEE.出生日期,DEMO_EMPLOYEE.职务,DEMO_ORDERDETAILS.数量,DEMO_ORDERDETAILS.单价 from DEMO_EMPLOYEE,DEMO_ORDERDETAILS,DEMO_ORDERS where DEMO_ORDERS.订单ID=DEMO_ORDERDETAILS.订单ID and DEMO_EMPLOYEE.雇员ID = DEMO_ORDERS.雇员ID 累积 - 图2

第二步 制作表样并定义表达式

绘制报表基本结构并定义基本表达式。 累积 - 图3

取数表达式如下:

A3:=雇员订单表.group(雇员ID)

B3:=雇员订单表.销售人员

C3:=雇员订单表.职务

D3:=雇员订单表.出生日期

E3:=雇员订单表.Sum(数量*单价)

第三步 定义累积表达式

方法一:位移坐标

在F2单元格写入表达式:=E2+F2[-1],其中F2[-1]表示当前单元格F2上一行的值。

方法二:临时变量

这种方法能将每一行的累计值保存在某一个变量中,每一行在算累计值的时候就可以直接通过这个变量来计算。

1)在A1单元格写入表达式:=a=0,创建一个临时变量a,初始值为0。

2)在G3单元格写入表达式:=a=a+E3,引用临时变量a,每一个扩展行给a重新赋值,将上一行变量a的值+本行奖金的结果赋值给变量a,即实现奖金累计。

3)选中第一行,设置不可视。 累积 - 图4

第四步 设置显示格式和单元格格式

1)设置D3单元格的显示格式为yy-MM--dd。 累积 - 图5

设置E3、F3单元格的显示格式为¥#,##0.00。 累积 - 图6

2)设置E3、F3单元格的水平对齐方式为“靠右”,并设置缩进为5。 累积 - 图7

第五步 保存预览

点击设计界面左上角的【预览】按钮对报表模板进行保存和查看。

预览页面: 累积 - 图8

功能点说明

在没有复杂的主格关系的报表中,位移坐标的简单表示法如下:

语法: Cellx[±n]

说明: 表示当前格Cellx往上位移n格或者往下位移n格,其中+代表往下位移,-代表往上位移。