列出具有用户定义描述的SSRS订阅

时间:2012-09-12 15:11:21

标签: web-services reporting-services

我们有越来越多的非数据驱动的SSRS 2008订阅,SSRS中的默认列表没有提供任何方式来指示每个订阅的全部内容。是的,有一个描述,但它是自动生成的,并没有多大帮助。例如,我们需要它说“公司ABC季度管理人员”。

我查看了使用ReportingService2010 Web服务,并设法不仅阅读每个报告的描述,还修改它。但是,只要有人从SSRS编辑订阅(有时需要),说明将恢复为自动生成的订阅。

虽然我从未使用过数据驱动的报告,但我想知道这些是否会提供我需要的功能。考虑到我并不真的需要订阅是数据驱动的,所以设置似乎需要做很多工作。

我在这里错过了一些简单的东西吗?升级到较新的SSRS版本会带来这个简单的功能吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

  

我在这里错过了一些简单的东西吗?这是一个简单的功能   升级到较新的SSRS版本会带来什么?

does not appear that standard subscriptions in SSRS 2012 allow descriptions to be entered either(我找不到UI的截图)。

  

虽然我从未使用过数据驱动的报告,但我想知道   这些是否会提供我需要的功能。它只是   考虑到我并不真的需要,似乎要做很多工作   订阅是数据驱动的。

如果标准订阅满足业务需求,我会反对数据驱动订阅的必要性。这值得花时间和精力吗?如果是,明显的优势是订阅描述在UI中是可编辑的,并且在修改订阅时似乎不会被覆盖。

如果您仍然对使用标准订阅感兴趣...

“破解”SSRS以使订阅不会覆盖描述(无论如何在UI中无法编辑)的一种方法是修改存储过程ReportServer.dbo.UpdateSubscription。

免责声明:使用以下建议需要您自担风险。 这涉及修改Reporting Services所依赖的标准sproc。

您可以更改update语句,以便只有在订阅不是数据驱动的订阅时才会修改描述值(我们不想破坏数据驱动的订阅描述, 在UI中可编辑)。在存储过程中,您可以通过查看@DataSettings的值来区分数据驱动的订阅和标准订阅。如果是IS NULL,那么这是一个普通的订阅。如果是IS NOT NULL,那么我们正在查看数据驱动的订阅。

Update语句中的以下行:

[Description] = @Description,

可以更改为:

[Description] = CASE WHEN @DataSettings IS NULL THEN [Description]
                        ELSE @Description
                    END,

这会在SSRS中修改所有标准订阅说明时保持相同,但允许修改数据驱动的订阅说明。

答案 1 :(得分:0)

Per Mat's Mug,我注意到我最终使用的解决方案:

由于我们的所有订阅都涉及通过电子邮件发送报告,因此我们可以将电子邮件主题字段重新用作描述。通过这种方式,可以生成所有订阅的列表,并为每个订阅显示任意描述。

答案 2 :(得分:0)

这是dev_etter对hack的扩展。我能够使用存储过程@parameter输入以及新的报告参数(pReportParameterName)来创建一个对报告唯一的动态,用户可控的描述。

  • 向报表添加新的隐藏文本参数(pReportParameterName)
  • 在UPDATE语句上方的存储过程UpdateSubscription中添加下面的代码块1。
  • 更改'说明=' UPDATE语句的行与下面的代码块2类似。

使用该设置,创建或编辑定时订阅,并在Description参数中输入所需的文本。保存后,您应该会在“订阅”屏幕的“描述”列中看到输入的描述。

String bodyString = "<markerbegin>blah<markerend/>";
testAPICall("application/ssml+xml", bodyString,"en-US");

干杯, SJ