2009-12-03 46 views
0

我在SSRS 2008中有一个报告,显示了从四个分组级别汇总的数据。我正在使用ASP.NET ReportViewer控件在我的webform上显示报告。SQL Server Reporting Services:结合初始渲染级别和交互式扩展

如果我详细显示所有四个级别,报告会变得非常长(数百页)。因此,我想设置一个默认级别来显示(1-4)当我呈现报告 - 我通过具有INT(@ShowLevel)类型的报告参数,当我为报告第一次。

如果tablix中的行的级别大于@ShowLevel值,则设置为隐藏。如果@ShowLevel = 2,则级别3和级别4上的行将其“隐藏”属性设置为True,并且不会显示。

目前为止 - 它的工作很好,而且全部。

但是:现在客户想要将报告初始渲染到级别2,但是然后交互式展开某些级别2节点以显示其级别3子节点。

我该如何处理?由于3楼,隐藏的是真实的,该节点将“扩大”,但没有显示它的下面...是有一个3级节点的方式来检查

Hidden = (@ShowLevel < 3) OR (group-parent is expanded) 

或类似的东西,以支持初始渲染级别(通过报告参数设置),但是仍然允许单个节点的交互式扩展甚至超过最初的“显示级别”?

我似乎无法弄清楚如何适当且容易地......

任何想法做到这一点?提示?技巧&技巧

回答

2

您是否已经查看过在Reporting Services中作为选项进行切换的功能。你描述我做了很多次。试试这个,高亮显示一个组行,检查该组行的属性。其中一个属性称为“可见性”。 展开该属性。然后您将看到“ToggleItem”,toggleitem允许您执行的操作是基于单击另一个对象来切换整个组。例如,在这个组上面,你可以创建一个强制切换的文本框。

以这种方式,你只显示你想要的数据,但你允许客户端切换更多的级别。

下面是一个例子:

alt text http://img10.imageshack.us/img10/5015/123200984045am.jpg

PS:你有其他线程使用的的ReportServer数据库的报告服务报告文件上的任何运气?

+0

@JonH:是的,这就是解决方案 - 同时发现它:-)当我在行组上设置Hidden属性时,我可以初始设置我最初想隐藏的内容,但后来我仍然可以展开数据组。像现在的魅力一样工作 – 2009-12-03 14:56:04

+0

您的意思是关于在服务器上使用共享数据源?是的,这个问题已经解决了 - 我在这个印象中,指定了“DataSourceID”(GUID)就足够了 - 但必须确保为数据源指定正确和完整的**路径**。 “DataSource”属性中的“/ MyReport/DataSources/SharedDS”。这样做,然后工作得很好。 – 2009-12-03 14:57:23

+0

破碎的图像... – candlejack 2015-03-30 02:38:04