代码之家  ›  专栏  ›  技术社区  ›  One Monkey

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

  •  0
  • One Monkey  · 技术社区  · 16 年前

    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;
    }
    

    我看不出如何使报告在加载时引用此代码。有人知道我应该如何让报告执行此代码吗?

    报告的可用呈现选项在报告级别是不可控制的,这仍然让人有点困惑。呵呵。

    3 回复  |  直到 7 年前
        1
  •  1
  •   One Monkey One Monkey    16 年前

    我偶然发现 this blog entry 这稍微澄清了上面的代码。事实证明,我们讨论的是使用reportviewer组件来限制导出选项。显然,这需要一个肮脏的,肮脏的黑客,而且这不是我们想要如何运行我们的报告功能。

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

    这似乎是SSR更广泛适用性的一个明显失败,因为我们有需要Excel导出功能的用户和只需要PDF的用户。哦,好吧。

        2
  •  1
  •   adolf garlic    15 年前

    一旦他们下载了数据并将其带离现场,您就已经丢失了数据。

        3
  •  0
  •   Nathan Griffiths    16 年前

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

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

    上面的URL以PDF格式生成报告。您还可以使用URL隐藏报表工具栏等。因此,您可以在应用程序中创建这些URL作为链接,可能只使用rs:Command=Render作为“查看报表”链接,也可能使用包含rs:Format=PDF作为“导出为PDF”链接的链接。

    更多关于 Reporting Services URL access .