使用ActiveReports中的矩阵控件Matrix实现交叉报表

发布时间:2013/04/27 00:04 发布者:jian

返回博客中心

关键词:交叉报表,矩阵报表,分组, 连续页面布局, 钻取, 钻取报表, 交互式报表

ActiveReports 7中提供了丰富的报表控件,通过这些内置的控件可以实现不同报表需求,今天我们将演示使用矩阵控件 Matrix 实现交叉报表。交叉报表是一种按照行和列同时进行数据分组汇总的报表类型,常用于商业智能报表中的数据分析。

 

我们键将演示的数据源结构如下,主分类、子分类、项目名称、城市和项目值

交叉报表数据结构

我们最终希望实现的报表样式为,数据行按照城市进行分组,数据列按照主分类、子分类和项目名称进行三级嵌套分组,显示的数据为项目值的合计信息。

ActiveReports交叉报表

 

第一步,在Visual Studio 中创建一个 Windows 桌面应用程序,并在工程中添加一个ActiveReports 的页面报表

ActiveReports 页面报表

添加的页面报表默认为固定页面报表,我们可以打开报表的设计视图,此时VS的菜单中会出现【Report】菜单项,选择“将固定页面报表转化为连续页面报表”。

ActiveReports 页面报表 2

 

第二步,为报表添加添加数据源,在报表资源管理器中的数据源节点上右键,选择添加数据源,添加数据源之后在数据源上右键选择添加数据集,在数据集对话框中查询页面中输入以下查询语句

select * from table1;

 

这里我们只是用最简单的SQL查询语句来取数据,并没有额外的用于组织数据的过程。

 

第三步,在报表中添加矩阵控件Matrix

添加矩阵控件之后我们将DataSet1中的主分类、子分类和项目名称作为矩阵的列分组条件,将城市作为矩阵的行分组条件,将项目值作为汇总数据,最终结果如下:

ActiveReports交叉报表-2

 

第四步,在工程的Form1上添加ActiveReports的报表浏览器控件 Viewer,并添加以下后台代码:

    private void Form1_Load(object sender, EventArgs e)
    {
        GrapeCity.ActiveReports.PageReport report1 = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo("CrossTable1.rdlx"));
        GrapeCity.ActiveReports.Document.PageDocument document1 = new GrapeCity.ActiveReports.Document.PageDocument(report1);
        viewer1.LoadDocument(document1);
    }

 

第五步,运行工程,此时显示结果如下

ActiveReports交叉报表-3

此时,我们可以点击浏览器控件上的【连续视图】按钮

ActiveReports_交叉报表_连续视图

 

源码下载:VS2008 + ActiveReports 7

ActiveReports_CrossTable.zip (32.08 kb)

 


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网