多语言展示
当前在线:1041今日阅读:75今日分享:44

多源分片报表的制作与讲解

在使用报表的过程中,大多数人会发现我们对报表的需求并不仅仅是一些简单的计算以及格式,各行各业中存在的,更多是需求复杂、计算繁琐的固定报表,那么接下来,就要给大家介绍一下润乾报表如何制作多源分片报表。
工具/原料

润乾报表

连接数据源
1

首先打开润乾报表设计器,点击【本地应用】-【启动示例数据库】,启动系统自带的demo示例数据库;

2

再点击【工具】-【数据源】

3

在打开数据源连接对话框中可以看到系统缺省demo数据源。选中demo数据源,点击右侧的【连接】按钮,连接成功的数据源呈粉色,并且连接状态由[未连接]变为[已连接]。如下图

制作多层交叉报表
1

点击菜单栏中新建报表的新建一个空白报表。通过“报表”-> “数据集”菜单,首先定义数据集:ds1:SELECT 客户.地区,客户.城市,订单明细.数量,订单明细.折扣,订单明细.单价,订单.雇员ID,订单.订购日期,订单明细.产品ID FROM 订单明细,订单,客户 WHERE 客户.客户ID = 订单.客户ID  AND  订单.订单ID = 订单明细.订单ID and 订单.订购日期 is not null and 客户.地区 in ('华南','西南') and year(订单.订购日期)>=2014在报表中写入单元格表达式,如下图所示

2

(1)  在A3单元格录入表达式:=ds1.group(year(订购日期);year(订购日期):1)+'年'(2)  在C3单元格录入表达式:=ds1.group(month(订购日期);month(订购日期):1)+'月'(3)  在D1单元格录入表达式:=ds1.group(地区;地区:1),扩展方向:横向(4)  在D2单元格录入表达式:=ds1.group(城市;城市:1),扩展方向:横向(5)  在D3单元格录入表达式:=ds1.sum(数量*单价)这时我们来预览报表,是这个样子:

纵向分片
1

现在,我们把报表做一些改变,首先,我们在原有数据集的基础,通过“报表”-> “数据集”菜单,增加如下数据集的定义:ds3:SELECT 雇员.雇员ID,订单明细.产品ID,雇员.职务,雇员.姓氏||雇员.名字 as 姓名 FROM 雇员,订单,订单明细 WHERE 雇员.雇员ID = 订单.雇员ID  AND  订单.订单ID = 订单明细.订单ID ORDER BY 订单.订购日期 ASC然后在报表下方追加一行,增加一个纵向扩展格,如下图所示:

2

该报表的预览效果如下图所示:

3

从上图可以看出,该报表出现了两片纵向扩展区域,这两片纵向扩展区域看起来毫无关系,但是格线严格对齐。下面我们对这个报表继续做改变,在新增加的行中写入计算表达式,如下图所示:

4

(1)  在B4单元格输入表达式:= ds3.group(职务;职务:1)(2)  在C4单元格输入表达式:= ds3.group(雇员ID;雇员ID:1),设置显示值为:ds3.姓名(3)  在D4单元格输入表达式:=ds1.sum(数量*单价,雇员ID==C4), 设置显示格式为:¥#0.00D4格中的表达式为:=ds1.sum(数量*单价,雇员ID==C4)。其含义是:雇员ID为C4单元格的雇员在D2城市的销售额;可以看出,这个表达式既和上表头D2格有关联,又和左表头C4格有关联,我们再看一下预览效果:

5

从上图可以看出,上下两片本来没有关系的扩展区域,通过D4格的表达式和上表头D2格关联起来,变成了上下两片紧密关联的扩展区域。

横向分片
1

我们在原有数据集的基础上继续增加如下数据集的定义:ds2:SELECT 类别.类别ID,类别.类别名称 FROM 类别ds4:SELECT 产品.类别ID,产品.产品ID FROM 产品然后在报表右侧追加一列,增加一个横向扩展格,如下图所示:

2

该报表的预览效果如下图所示:

3

从上图可以看出,该报表出现了两片横向扩展区域,这两片横向扩展区域看起来毫无关系,但是格线严格对齐。下面我们对这个报表继续做改变,在新增加的行中写入计算表达式,如下图所示:

4

(1)  在E2单元格输入表达式:=ds4.group(类别ID,类别ID!=null;类别ID:1),设置显示值为:ds2.select (类别名称,类别ID==value(),1),扩展方向:横向扩展(2)  在E3单元格输入表达式:=ds1.sum(数量*单价,产品ID in ds4.select(产品ID)),设置显示格式为:¥#0.00(3)  在E4单元格输入表达式:=ds1.sum(数量*单价,产品ID in ds4.select(产品ID) and  雇员ID==C4),设置显示格式为:¥#0.00 E3格中的表达式为:=ds1.sum(数量*单价,产品ID in ds4.select(产品ID))。其含义是:年月为C3时产品ID为E2的产品销售额之和;可以看出,这个表达式既和上表头E2格有关联,又和左表头C3格有关联。E4格中的表达式为:=ds1.sum(数量*单价,产品ID in ds4.select(产品ID) and  雇员ID==C4)。其含义是:C4单元格的销售员对产品ID为E2的产品销售额之和;可以看出,这个表达式既和上表头E2格有关联,又和左表头C4格有关联。 我们再看一下预览效果:

5

这样,上下两片本来没有关系的扩展区域,通过E3、E4格的表达式和左表头C3、C4分别格关联起来,变成了左右两片紧密关联的扩展区域。

扩展区域与静态区域混合
1

现在,我们把报表做一些改变,在报表中分别增加两行两列,如图所示:

2

该报表的预览效果如下图所示:

3

接下来我们在新加的行列中增加一些表达式,对不同扩展区域的数据分别进行统计,如图所示:

4

(1)  在E3单元格输入表达式:=sum(D3{D3>10000})(2)  在E5单元格输入表达式:=sum(D5{D5>10000})(3)  在D4单元格输入表达式:=sum(D3{D3>10000})(4)  在D6单元格输入表达式:=sum(D5{})(5)  在G3单元格输入表达式:=sum(F3{})(6)  在G5单元格输入表达式:=sum(F5{})(7)  在F4单元格输入表达式:=sum(F3{F3>10000})(8)  在F6单元格输入表达式:=sum(F5{}) 以上单元格显示格式均为:¥#0.00 E3格中的表达式为:=sum(D3{D3>10000})。其含义是:订购日期为C3的且销售额大于1000的之和;D3格中的表达式为:=sum(F3{})。其含义是:订购日期为C3的销售额之和。接下来我们进行预览:

5

到此,我们就完成了这张多源分片报表,从上图可以看出,整个报表横向纵向被分成了好几片单元格,有的是扩展的,有的是固定行的,固定区域和动态扩展区域混合在一起,既互相独立又有一定的数据联系,这种报表就是最典型的多源分片报表。

推荐信息