如何限制SSRS中单个报告的下载选项?

时间:2009-02-05 17:02:13

标签: c# reporting-services

This question询问如何限制整个服务器。我只是想为一份报告这样做。我找到了一个代码片段,但它没有提供任何关于如何实现的线索:

 foreach (RenderingExtension extension in this.reportViewer.LocalReport.ListRenderingExtensions()) {
if (extension.Name == "PDF") {            
((Extension)(extension.GetType().GetField("m_serverExtension", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(extension))).Visible = false;
}

我无法看到如何在加载时使报告引用此代码。有谁知道我应该如何使报告执行此代码?

编辑:顺便提一下,报告访问是通过SSRS Report Manager Web应用程序进行的。总的来说,我们对这款产品很满意,所以不会考虑重新发明轮子以实现黑客攻击,以产生什么,实质上是“会很好”的功能。

报告的可用渲染选项在报告级别无法控制,但仍然会略微困惑。哼哼。

3 个答案:

答案 0 :(得分:1)

顺便说一下,我找到了this blog entry,它澄清了上面的代码。事实证明,我们正在谈论使用reportviewer组件来限制导出选项。显然,这需要一个肮脏,肮脏的黑客,除此之外我们不想运行我们的报告功能。

因此,除非有人在接下来的两周内有更好的想法,否则我会将此标记为基本上总结的答案:

您只能在某些条件下限制此类功能,即使您这样做也不容易。

这似乎是SSRS更广泛适用性的明显失败,因为我们的用户需要Excel导出功能,而用户只需要限制为PDF。哦,好吧。

答案 1 :(得分:1)

重要吗?

一旦他们下载了数据并将其带到了异地,你就会失去它。

答案 2 :(得分:0)

您还没有真正描述过如何调用报告 - 您是否创建了某种应用程序?您实际使用的是报表查看器控件吗?

您可以使用报告网址生成特定格式的报告,并包含rs:Format参数,例如

http://SERVER/reportserver?%2fSomeFolder%2fSomeReport&rs:Command=Render&rs:Format=PDF

上述网址以PDF格式生成报告。您还可以使用URL来隐藏报表工具栏等。这样您就可以将这些URL创建为应用程序中的链接,也许只使用rs:Command = Render作为“查看报表”链接和一个包含rs的链接:Format = PDF作为“导出为PDF”链接。

更多关于Reporting Services URL access