← 返回所有博客文章

 

矩表控件出现之前,对于复杂表头的报表的实现,如多行表头嵌套,列单元格合并等,只能通过一些Look Like的方法来实现,并没有做到真正的底层实现来解决实质性的内容。复杂表头报表,甚至只能通过Table嵌套来实现,这样一来,报表设计难度上升,而且容易出现样式错误等信息。

无所不能的矩表控件,所向无敌,列单元格合并更不在话下。

本节中国式复杂报表第四讲:类Excel 复杂表头报表实现;主要通过行列单元格合并功能来实现。无论多复杂的报表表头,都能轻松创建

 

报表结构分析:

 

QQ截图20160411093936

 

1. 表头复杂,单列包含多级列头,列头占用的单元格数不确定。

2. 合计行在明细行上方

(这要是没有了矩表控件,可是难倒一大片报表专家)

 

解决方案:

  • 矩表,矩表,矩表;
  • 列单元格合并

     

    报表实现:

     

    1. 新建RDL 报表模板

    2. 添加数据源和数据集

     

    1. 绑定数据源

    2. 添加数据集

    select * from 财政教育经费投入数据 ;

    image

     

    3. 添加矩表控件

     

    添加Tablix后,会发现有类似[ 符号,表示分组,即可根据具体数据动态生成行。会发现设计器下面的矩表分组管理器;

    4. 添加复杂表头

    通过报表结构分析,报表列数据主要分为三组;列中包含三大列“财政教育经费投入(万元)”;“其他投入”;“补充资料”;每一大列下面包含合计项,和子列头;如其他投入:包含村投入,社会捐款;

    因此我们需要逐层细化;构造复杂的表头结构;

    • 1. 添加三个分组列;

    image

    image

     

    • 2. 添加列头行 5列;

    image

     

    • 3.构造“财务教育经费投入(万元)”列

    image

     

    • 添加8个子列,合计列自动生成;

    image

     

    • 合并首行单元格,输入“财政教育经费投入(万元)”

     

    • 合并第二行“1-7”单元格;输入“教育事业费”

     

    • 合并第二行“8”单元格,第三行“8”单元格,第四行“8”单元格,第五行“8”单元格;输入“基建拨款”

    image

     

    • 合并第三行“1-2”单元格;输入“合计”

     

    • 列单元格合并,输入“人员经费”;同样的方法,创建“日常公用经费”

     

    image

    image

     

    • 合并第三行“5-7”单元格,输入“项目经费”

    image

     

    • 合并第四行和第五行单元格“1”;合并第四行和第五行单元格“2”;输入内容

    image

     

    • 合并第四行和第五行“5”单元格,输入“合计”;合并第四行“6”,“7”单元格;输入“其中”;在剩余的单元格中,输入内容;

    image

     

    • 添加分组合计;选中单元格,右键选择添加合计“分组前面”

    image

     

    • 合并相应单元格,输入“合计”;

     

    image

     

    “财政教育经费投入”列就已经构造完成,可采用相同的操作来创建“其他投入”;“补充资料”列。

     

    5. 添加行,将具体字段拖拽到行分组中。

     

    6. 将具体数据绑定到单元格中;

     

    7. 选择行分组单元格添加合计,选择插入“分组前面”,即可保证合计在详细数据上方:

     

    image

     

    到这里,报表的整体结构都已创建完成了,需要做的就是调整报表样式。

     

    报表模板下载:

    http://demo.grapecity.com.cn/ActiveReports/ASPNET/ControlExplorer/Viewers/Default.aspx?category=1005&action=2&t=lib

     

    您在使用产品过程中有任何疑问,可以登录官方产品技术社区和经验丰富的技术工程师、ActiveReports开发人员交流:了解更多

    了解ActiveReports产品更多特性:

    /developer/activereports

    下载产品体验产品功能:

    /download/?pid=16