润乾报表
首先打开润乾报表设计器,点击【本地应用】-【启动示例数据库】,启动系统自带的demo示例数据库;
再点击【工具】-【数据源】
在打开数据源连接对话框中可以看到系统缺省demo数据源。选中demo数据源,点击右侧的【连接】按钮,连接成功的数据源呈粉色,并且连接状态由[未连接]变为[已连接]。如下图
点击菜单栏中新建报表的新建一个空白报表。通过“报表”-> “数据集”菜单,首先定义数据集:ds1:SELECT 客户.地区,客户.城市,订单明细.数量,订单明细.折扣,订单明细.单价,订单.雇员ID,订单.订购日期,订单明细.产品ID FROM 订单明细,订单,客户 WHERE 客户.客户ID = 订单.客户ID AND 订单.订单ID = 订单明细.订单ID and 订单.订购日期 is not null and 客户.地区 in ('华南','西南') and year(订单.订购日期)>=2014在报表中写入单元格表达式,如下图所示
(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(数量*单价)这时我们来预览报表,是这个样子:
现在,我们把报表做一些改变,首先,我们在原有数据集的基础,通过“报表”-> “数据集”菜单,增加如下数据集的定义:ds3:SELECT 雇员.雇员ID,订单明细.产品ID,雇员.职务,雇员.姓氏||雇员.名字 as 姓名 FROM 雇员,订单,订单明细 WHERE 雇员.雇员ID = 订单.雇员ID AND 订单.订单ID = 订单明细.订单ID ORDER BY 订单.订购日期 ASC然后在报表下方追加一行,增加一个纵向扩展格,如下图所示:
该报表的预览效果如下图所示:
从上图可以看出,该报表出现了两片纵向扩展区域,这两片纵向扩展区域看起来毫无关系,但是格线严格对齐。下面我们对这个报表继续做改变,在新增加的行中写入计算表达式,如下图所示:
(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格有关联,我们再看一下预览效果:
从上图可以看出,上下两片本来没有关系的扩展区域,通过D4格的表达式和上表头D2格关联起来,变成了上下两片紧密关联的扩展区域。
我们在原有数据集的基础上继续增加如下数据集的定义:ds2:SELECT 类别.类别ID,类别.类别名称 FROM 类别ds4:SELECT 产品.类别ID,产品.产品ID FROM 产品然后在报表右侧追加一列,增加一个横向扩展格,如下图所示:
该报表的预览效果如下图所示:
从上图可以看出,该报表出现了两片横向扩展区域,这两片横向扩展区域看起来毫无关系,但是格线严格对齐。下面我们对这个报表继续做改变,在新增加的行中写入计算表达式,如下图所示:
(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格有关联。 我们再看一下预览效果:
这样,上下两片本来没有关系的扩展区域,通过E3、E4格的表达式和左表头C3、C4分别格关联起来,变成了左右两片紧密关联的扩展区域。
现在,我们把报表做一些改变,在报表中分别增加两行两列,如图所示:
该报表的预览效果如下图所示:
接下来我们在新加的行列中增加一些表达式,对不同扩展区域的数据分别进行统计,如图所示:
(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的销售额之和。接下来我们进行预览:
到此,我们就完成了这张多源分片报表,从上图可以看出,整个报表横向纵向被分成了好几片单元格,有的是扩展的,有的是固定行的,固定区域和动态扩展区域混合在一起,既互相独立又有一定的数据联系,这种报表就是最典型的多源分片报表。