ActiveReports中贯穿钻取功能实现

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

发布于 2013/04/26 00:00

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

 

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

关于葡萄城

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

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

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

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