← 返回所有博客文章

钻取报表, 交互式报表, 动态报表, 主从报表

 

在现代商业智能报表中,对交互式报表的需求越来越强烈,数据钻取就是交互式报表中最为常用功能之一,数据钻取是指通点击指向其它报表的链接来跳转到该报表。本文将以葡萄城控件产品研发中心的部门组织结构为例,讲解如何使用ActiveReports实现数据钻取功能。

假设我们现在的整个组织结构如下图所示:

145

从以上数据来看,整个数据结构分为【部门】、【子部门】和【员工】,接下来我们将使用ActiveReports实现以上数据所对应的钻取报表。

首先,我们创建显示部门信息的报表“Department.rdlx”,并要进行以下几步操作:

1、添加一个名为 ParentID ,默认值为 –1 的参数

2、添加数据源,对应的查询语句为:

select * from department where ParentID= ?;

3、添加数据源参数,名为 Parameter1 , 对应的值为 “=[@ParentID]”

4、在部门ID数据文本框中增加数据钻取链接,并设置如图中的钻取参数

147

通过以上操作,我们就完成了从上级部门钻取到下级部门的全部操作,接下来我们将实现从子部门钻取到员工信息的操作。

创建名为 Employee.rdlx 的员工信息报表,并举行以下操作:

1、添加名为 ParentID 的报表参数

2、添加数据源参数,名为 Parameter1 ,值为“=[@ParentID]”

3、添加数据源查询语句

select * from Employee where DepartmentID = ?;

接下来我们要在部门报表中添加钻取到员工信息报表的钻取链接,我们选用的钻取链接控件还是“部门ID”文本框,但是,现在就遇到一个问题,部门ID文本框可能会根据数据钻取到子部门,如果没有子部门就钻取到员工信息报表,为了实现按条件钻取功能,我们在部门ID是在的位置再放置一个文本框,该文本框对应的钻取设置如下图所示:

146

 

接下来最重要的一步操作,我们需要根据数据源来显示以上两个完全重叠的文本框,设置如下

1、设置钻取到员工信息的文本框的 Visibility.Hidden 为 “=IIF( [HasSub] = 0,false,true)”

2、设置钻取到子部门信息的文本框的 Visibility.Hidden 为 “=IIF( [HasSub] = 0,false,true)”

 

最终运行结果如下图:

ActiveReports 钻取报表

 

源码下载:VS2008 + ActiveReports 7

DrillThrough1.zip (33.75 kb)