SSRS 2012 交互式报表 -- 深化式报表
在报表中“组”是经常使用来显示汇总数据的方式,通过组可以让数据进行结构化的汇总,以方便浏览者解读报表信息。在复杂的商业报表中,经常会具有多重的组结构,例如,时间就可能会有年、季、月、日,为了方便使用者查看,如果组能够让使用者自行展开与闭合,分析者就可以选择想要查看的年份并深化至想要的时间层。
在商业智能中,除了固定式报表之外,大家所熟知的多维度分析(OLAP)最大的特点就是数据会根据维度进行汇总,让数以千万笔数据可以通过预先汇总的多维度结构体加速查询的速度。同时在多维度报表中可以通过维度层次的展开与闭合,让使用者可以切换不同的查看维度。
不过,多维度分析是利用数据事先汇总来达到动态报表的效果,在SSRS中也提供了类似的“深化报表”功能(Drill-down),虽然没办法像多维度分析般动态拖拉报表的横轴与纵轴,但是仍旧可以利用组结构设计出能够动态展开闭合的架构。深化式报表可以先将下层组或详细数据先闭合起来,等使用者想要浏览时再展开,所以这份报表看起来就会变的非常精简。虽然视觉效果“类似”多维度分析,但是由于缺乏预先汇总,因此效率是无法取代多维度分析的。所以,也有人是先设计多维度分析Cube,再利用SSRS套表,这样就可以兼顾结构上的弹性以及效率快速的考验。
深化式报表示例
在此我们要设计出数据行组“产品大类”以及“产品子类”,至于数据列组则是“时间阶层”的报表结构。使用者可以通过鼠标单击逐层展开组(“产品大类”->“产品子类”,“年”->“季”->“月”)。
步骤1:
沿用空值补零的示例所使用的报表。
步骤2:
在下方数据行组面板右击“PRODUCTSUBCATEGORY_NAME”行组选择“Group Properties…”,切换至属性对话框的“Visibility”标签页,在“When the report is initially run”处勾选“Hide”,这表示“PRODUCTSUBCATEGORY_NAME”组在报表展开时默认为隐藏(闭合)。
步骤3:
然后再将“Display can be toggled by this report item”勾选,利用下拉菜单选择上层的“PRODUCTSUBCATEGORY_NAME”组名称,这表示“产品子类”组的展开与闭合可以利用“产品大类”组行切换操作。
步骤4:
切换至“Preview”标签页,此时报表一开始数据行只会出现“产品大类”汇总项目,但是显示的组内容标头上都会出现小型的“+”符号,点击该符号后,会展开该产品大类内的所有产品子类,同时该“+”图示会切换为“-”。
在呈现报表的格式中,只有HTML以及Excel支持深化式的报表的格式。但是,不要误以为呈现成Excel就变成枢纽分析表咯!它其实是利用“大纲与组”的功能来做到缩放表格的效果。只要用鼠标轻按上方或是左方的“+”图示,就可以切换数据行列的展开闭合了。