知识库

推荐内容

快逸做的更好

产品优势

您的位置: 首页 > 报表技术分享 > 多级分组报表的制作

多级分组报表的制作

Web报表中,有时对分组报表的展现,有特殊要求。尽管各个报表工具都有自己的分组函数,这些函数是对数据逻辑进行的处理,提取出合适的数据,对展现的特殊要求,有时会显得很乏力。下面我们学习一个例子,看快逸报表是怎么处理这种需求的。

第一步:需求

数据库中的字段,数据:

 

需要展现的效果:

 

从上图中,城市、区县、乡镇、社区都在一列里展现;而且从城市开始,分组是纵向扩展了;每一组里,有几个子组也是不确定的;数值在最后一组中展现(如:东里 1;清河镇 2)。

第二步:快逸报表制作

1 创建数据集

内建数据,建立跟需求一样的数据,如下图:

 

给字段填入相应的数据值

 

2 建表

创建一张5行4列的空报表,从内建数据集ds1中提取数据,在单元格中输入如下表达式:

 

A1、B1、C1、D1合并,输入:特殊多级分组

A2、A3、A4、A5合并,输入:=ds1.group(国家)

B2、B3、B4、B5合并,输入:=ds1.group(地区)

C2中输入:=ds1.group(城市)

C3中输入:=ds1.group(区县) ,在隐藏行表达式中输入:if(len(C3)>0,false,true)

C4中输入:=ds1.group(乡镇) ,在隐藏行表达式中输入:if(len(C4)>0,false,true)

C5中输入:=ds1.group(社区) ,在隐藏行表达式中输入:if(len(C5)>0,false,true)

D2中输入:=if(len(ds1.区县)>0,”,ds1.select1(数值))

D3中输入:=if(len(ds1.乡镇)>0,”,ds1.select1(数值))

D4中输入:=if(len(ds1.社区)>0,”,ds1.select1(数值))

D5中输入:=ds1.select1(数值)

C3格中,扩展方式选“纵向”,左主格输入:C2

 

C4格中,扩展方式选“纵向”,左主格输入:C3

C5格中,扩展方式选“纵向”,左主格输入:C4

3 浏览结果

单击设计器的预览按钮,就能看到如下结果:

 

整个报表就制作完成了,跟需求一样了。

总结:对这些分组报表展现上的特殊要求,快逸报表运用自身的主格逻辑,轻易的实现了需求。

本文标签: