关键词:交叉报表,矩阵报表,分组, 连续页面布局, 钻取, 钻取报表, 交互式报表
ActiveReports 7中提供了丰富的报表控件,通过这些内置的控件可以实现不同报表需求,今天我们将演示使用矩阵控件 Matrix 实现交叉报表。交叉报表是一种按照行和列同时进行数据分组汇总的报表类型,常用于商业智能报表中的数据分析。
我们键将演示的数据源结构如下,主分类、子分类、项目名称、城市和项目值
我们最终希望实现的报表样式为,数据行按照城市进行分组,数据列按照主分类、子分类和项目名称进行三级嵌套分组,显示的数据为项目值的合计信息。
第一步,在Visual Studio 中创建一个 Windows 桌面应用程序,并在工程中添加一个ActiveReports 的页面报表
添加的页面报表默认为固定页面报表,我们可以打开报表的设计视图,此时VS的菜单中会出现【Report】菜单项,选择“将固定页面报表转化为连续页面报表”。
第二步,为报表添加添加数据源,在报表资源管理器中的数据源节点上右键,选择添加数据源,添加数据源之后在数据源上右键选择添加数据集,在数据集对话框中查询页面中输入以下查询语句
select * from table1;
这里我们只是用最简单的SQL查询语句来取数据,并没有额外的用于组织数据的过程。
第三步,在报表中添加矩阵控件Matrix
添加矩阵控件之后我们将DataSet1中的主分类、子分类和项目名称作为矩阵的列分组条件,将城市作为矩阵的行分组条件,将项目值作为汇总数据,最终结果如下:
第四步,在工程的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); }
第五步,运行工程,此时显示结果如下
此时,我们可以点击浏览器控件上的【连续视图】按钮
源码下载:VS2008 + ActiveReports 7
ActiveReports_CrossTable.zip (32.08 kb)