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

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

发布于 2013/04/27 00:00

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

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)

 

关于葡萄城

葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

推荐相关案例
推荐相关资源
关注微信
葡萄城社区二维码

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态