知识库

推荐内容

快逸做的更好

产品优势

您的位置: 首页 > 知识库 > 设计基础 > 主子表+补足空行实现多栏式报表

主子表+补足空行实现多栏式报表

报表需求: 

本例为客户的实际表样,需要实现如下需求: 

 

根据承办人分组统计已归档,已登记,尚未登记的案件,在一张报表里进行统一展现 

1.       黄色,红色,蓝色区域分别以列表形式统计已归档,已登记,尚未登记的案件,三片区域形成多栏式报表。 

2.       对每个承办人分组显示不同类型的案件。 

3.       每一个承办人所占的行数相同,以案件数最大的行数为准,剩下的以补足空行的方法保证格式统一。 

  

实现思路: 

1.       针对已归档案件,已登记案件,尚未登记案件复杂报表设计" target="_blank" class="quieeLink1">设计三张独立的报表模板。设计主报表模板以引入式子报表的方式调用这三张模板,并且传入承办人作为报表参数,形成多栏式报表。 

2.       为实现需求中的第3点,需要共享三张子报表模板中的数据集,根据数据集条数决定当前报表应该补多少行空白行。 

  

  

具体实现: 

1.       子报表模板: 

三张子报表的实现方式类型,这里只以其中一张报表为例介绍实现过程。 

1)添加参数name,该参数需要从主报表模板中传入。 

2)报表数据集为测试内建数据集 

3)报表模板设计如下: 

 

筛选数据集中承办人(姓名)为name参数值的记录。 

2.       主报表模板: 

 

A3单元格为可扩展单元格,其中为承办人的名字,测试使用表达式=list(“俞巍“,”李四“,”王五“)返回集合结果。 

B3,H3,N3单元格分别引用设计好的3张子报表,并传递A3单元格的值作为参数。 

 

通过以上方式可以预览得到如下效果: 

 

通过预览效果可看出,对于相同的参数得到的子报表的条目数是不一致的,不足条目数的部分会出现空白区域。 

为实现格式一致性,需要用不足空行的方式在空白区域补足空行。 

下面就需要对设计好的三张子报表模板做修改,共享这三张模板的数据集,得到他们的最大行数,不足行数的模板补足空行。 

三张报表模板修改方式类似,同样以一张报表模板为例介绍,修改如下: 

1)添加数据集,添加其他两个报表模板中用到的数据集 

 

2)模板修改 

 

A.             第一行在A1B1C1分别统计根据name参数筛选的数据集记录数,也就是子报表的条目数。E1单元格=maxc(B1,C1,D1,D1)[1]取得A1B1C1单元格的最大值,也就是三张子报表的最大条目数。第一行为隐藏行。 

B.             A4单元格=to(0,E1-count(B3{})-1) 根据本子报表实际扩展行数count(B3{})和最大记录数E1单元格值,计算需要补足的行数。该单元格不可视。 

修改子报表后的报表展现效果如下,空白区域已经以空行补足,保证格式一致性。 

 

  

  

本文标签:
发布日期:2011/09/01
本文分类: 设计基础