SSRS 2012 交互式报表 -- 钻取式报表

简介:

SSRS 2012 交互式报表 -- 钻取式报表

当分析者运用报表观察汇总数据时,当对某个数据感兴趣或是察觉异常时,往往需要调阅汇总值,以仔细深入分析。这种需求称之为钻取(Drill-Through),钻取的观念也是来自于多维度分析,不过大家要注意别与刚才介绍的深化(Drill-Down)报表搞混了。

 

所谓的钻取式报表是由母子报表(两张独立的报表)所构成,在母报表可以预先定义某些区域经点击后可以调用子报表,使用者借由触发母报表的单元格,以导向定义好的子报表。同时在母报表连接至子报表的过程中,可以根据点击母报表单元格的位置,截取字段信息转换为报表参数自动输入至子报表。例如,我们可以在母报表呈现汇总后每月的订单金额,但如果使用者想要了解该月订单的所有详细信息时,可以点选感兴趣的订单月份,此时自报表中就会出现所有订单明细,使用者就可以运用子报表了解较详细的信息,如订购产品、订购客户、出货日期等。钻取式报表不局限于“汇总->明细”的母子关系,子报表也可以设计为母报表的说明性信息,或是其他角度的汇总报表。

 

钻取式报表示例


在此沿用深化式报表作为母报表,同时设计一张销售明细表作为子报表,当点选母报表数据格时,会将该单元格的字段带入子报表的参数,以显示该单元格的销售明细。

 

步骤1

设计包含销售明细数据的子报表,在子报表的数据集中需加入对应的报表参数(销售年、销售月、产品大类、产品子类)。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
SELECT
TRX_DTE,
PRODUCTCATEGORY_NAME,
PRODUCTSUBCATEGORY_NAME,
PRODUCT_NAME,
BUSINESS_TYPE,
STORE_NAME,
SALES_QTY,
SALES_AMT
FROM  FACT_SALES A
LEFT  JOIN  DIM_PRODUCT B
ON  A.PRODUCT_KEY=B.PRODUCT_KEY
LEFT  JOIN  DIM_PRODUCTSUBCATEGORY C
ON  B.PRODUCTSUBCATEGORY_KEY=C.PRODUCTSUBCATEGORY_KEY
LEFT  JOIN  DIM_PRODUCTCATEGORY D
ON  C.PRODUCTCATEGORY_KEY=D.PRODUCTCATEGORY_KEY
LEFT  JOIN  DIM_STORE E
ON  A.STORE_KEY=E.STORE_KEY
WHERE
YEAR (TRX_DTE)=@ YEAR
AND  MONTH (TRX_DTE)=@ MONTH
AND  C.PRODUCTCATEGORY_KEY=@PRODUCTCATEGORY
AND  (B.PRODUCTSUBCATEGORY_KEY=@PRODUCTSUBCATEGORY  OR  -1=@PRODUCTSUBCATEGORY)

 

步骤2

选择母报表中与产品子类交叉的“销售金额”内容单元格,右击选择“Text Box Properties”,切换至“Action”标签页,选择“Go to report”,并在下拉菜单中设计好的子报表名称。

 

步骤3:

接下来在下方的“Use these parameters to run the report”,点击“Add”按钮,在“Name”下拉菜单中选择子报表的参数名称,并在“Value”的下拉菜单中选择母报表中要传递出去的参数字段(可以是字段、参数、内置字段或是表达式),即完成设定后请单击“OK”按钮。

 

clip_image002

 

步骤4:

至于与产品大类交叉的销售金额单元格,因为并没有细到产品子类,因此能够传递的参数自然也会不同,所以必须要选择全部的产品子类,因此,我们子报表的参数才会以之前介绍过的全选的方式撰写。此时的参数传递结构如下:

 

clip_image004

 

步骤5:

切换至“Preview”标签页,此时,当浏览者在母报表中点选销售金额字段中的任一单元格,就会启动子报表,同时自报表中会呈现母报表单元格销售的详细资料。

 

clip_image006

 

clip_image008

 

可在使用钻取哦国内能后的自报表上方看到系统自动带入的参数内容,如果参数值不希望使用者有机会自行修改,那么可在子报表的参数的“可见性”设为“隐藏”。如此一来,浏览者在子报表中就看不到这个参数的输入界面。但是相对的,使用者无法直接使用子报表(因为无法输入参数),只能通过母报表取得子报表内容。

 

不管是钻取式报表或是之前介绍过的书签功能,都是利用单元格的Action属性。利用单元格Action属性的设置,可以通过报表内部来开启网页、报表或是跳到同一张报表预设书签的部分,目前SSRS所提供的Action属性有以下三种:

n 转到报表。

n 转到书签。

n 转到URL。

 

“转到报表”的功能就是钻取报表。“转到书签”则是链接至默认书签之外。至于“转到URL”是点击设定过的文本框可以通过超链接开启网页或是放在网站上的图片,在此处设置的URL可以是固定的字串或是运算式,因此,如果报表需要加入动态的网页查询时,“转到URL”是很方便的功能。目前SSRS提供文本框以及图像文件设定“转到URL”,可以通过这项功能在报表上设计与其他网页的互相链接。
















本文转自UltraSQL51CTO博客,原文链接: http://blog.51cto.com/ultrasql/1612431,如需转载请自行联系原作者



相关文章
|
SQL 算法 Java
Mybatis-plus超详细讲解(2022)
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。
4247 1
|
SQL 机器学习/深度学习 数据采集
Apache Doris Broker数据导入使用示例及介绍
Broker load 是一个异步的导入方式,支持的数据源取决于 Broker 进程支持的数据源。用户需要通过 MySQL 协议 创建 Broker load 导入,并通过查看导入命令检查导入结果。
2001 0
Apache Doris Broker数据导入使用示例及介绍
|
9月前
|
机器学习/深度学习 人工智能 算法
DeepSeek-R1论文细节时间线梳理
中国AI初创公司DeepSeek发布了大语言模型R1,该模型在推理任务上媲美OpenAI的ChatGPT,且训练成本仅600万美元。DeepSeek由杭州对冲基金High-Flyer支持,总部位于杭州和北京。R1基于V3-Base,使用监督微调和强化学习训练,针对硬件限制进行了优化。模型在多语言处理、推理风格等方面表现出色,但存在一些局限性,如法语表现欠佳、偶尔切换语言等。DeepSeek的创新技术包括FP8量化、多头潜在注意力和蒸馏方法,引发了广泛关注和讨论。开源社区正积极尝试复现其结果,但面临训练数据和代码未公开的挑战。DeepSeek的低成本高效训练策略为AI领域带来了新的思考方向。
687 2
|
10月前
|
关系型数据库 MySQL 数据库
mysql慢查询每日汇报与分析
通过启用慢查询日志、提取和分析慢查询日志,可以有效识别和优化数据库中的性能瓶颈。结合适当的自动化工具和优化措施,可以显著提高MySQL数据库的性能和稳定性。希望本文的详解和示例能够为数据库管理人员提供有价值的参考,帮助实现高效的数据库管理。
262 11
超级好用的C++实用库之动态内存池
超级好用的C++实用库之动态内存池
185 0
|
缓存 Java 关系型数据库
【超全详解】Maven工程配置与常见问题解决指南
检查Maven配置包括验证路径、设置pom.xml与Project Structure的Java版本。基本操作有`clean-compile`、`install`和`package`,其中`install`会将jar包放入本地仓库。获取他人工程后需修改配置、清除缓存、更新依赖等。配置文件应从Maven Repository找寻,选择稳定高版本。创建Maven工程可选archetype如`quickstart`或直接创建Java工程。基本目录结构遵循分层设计原则,常见问题包括假性导包、端口占用、时区问题等,对应解决方案包括删除本地仓库文件、调整系统设置或重新加载项目。
2428 6
【超全详解】Maven工程配置与常见问题解决指南
|
安全 Unix Linux
基于MobaXterm工具的Linux远程SSH登录
本文介绍了如何使用 MobaXterm 进行 Linux 远程登录。首先,从官方网站下载并安装 MobaXterm。启动后,创建新的远程会话,选择 SSH 类型,输入服务器 IP、主机名和端口。接着,提供用户名和密码进行连接。成功后,即可使用远程终端执行命令。此外,文章还提到了其他常用的 Linux 远程登录工具,如 PuTTY、OpenSSH、SecureCRT 和 Xshell,强调了选择工具时应考虑个人偏好和安全需求。
|
前端开发 Java 微服务
微服务之间调用的异常应该如何处理
在分布式服务的场景下,业务服务都将进行拆分,不同服务之间都会相互调用,如何做好异常处理是比较关键的,可以让业务人员在页面使用系统报错后,很清楚的看到服务报错的原因,而不是返回代码级别的异常报错,比如NullException、IllegalArgumentException、FeignExecption等异常报错,这样就会让非技术人员看到了一头雾水,从而很降低用户的体验感。
|
Java
r2dbc事务处理
r2dbc事务处理
234 0
|
分布式计算 Hadoop Java
【Big Data】Hadoop--MapReduce经典题型实战(单词统计+成绩排序+文档倒插序列)
🍊本文使用了3个经典案例进行MapReduce实战🍊参考官方源码,代码风格较优雅🍊解析详细。
1276 0