如何在没有SSRS服务器的情况下使用Report Viewer控件执行.rdl报告?

时间:2013-07-12 18:08:48

标签: c# asp.net reporting-services rdl

我正在尝试设置一个网页,用户可以在其中选择要运行的.rdl文件,它将打开报表查看器控件(ASPX),加载报表定义文件,运行它并显示报表。

到目前为止,我发现,“本地”报告只能接受来自代码的数据源(因此您必须手动执行数据库代码,这将是一个痛苦,因为数据源在报告之间可能有很大差异),并且“远程”报告需要SSRS服务器,这是我无法设置的。

让我感到困惑的是,Report Builder 3能够运行带有嵌入式数据源的.rdl文件,那么为什么Report Viewer无法控制呢?有没有什么方法可以让Report Viewer控件像Report Builder 3一样运行并运行.rdl文件?

3 个答案:

答案 0 :(得分:2)

报表查看器可以运行RDL文件,但是首先需要托管/发布它们,然后报表查看器处于远程模式。 ReportView具有可以运行的不同模式,其中一个基本上只是与SSRS服务器通话并说:“你在那里得到了什么?”。关于何时对本地报告或托管报告进行了很多争论,以及哪一方面的优点/缺点是什么。您可以使用“高级选项”开发一个常规SSRS服务器,以便在需要考虑成本的情况下在框中获取SSRS实例并相应地调整防火墙。如果这是一个政策设置我无法帮助。

老实说,如果你想对实体框架或WCF服务这样的东西进行更多的耦合控制,并且想要在将数据放到报告之前按摩你的数据,我会去RDLC。如果要创建包含大型数据集的报表,并为用户提供许多选项来更改报表布局和参数值,我会转到rdl,但是知道您需要设置SSRS实例。尝试在没有服务器的情况下设置RDL报告,然后运行它们是一个巨大的痛苦,不会让你感到痛苦。如果是您想要的参数,您可以创建自己的参数,然后在数据进入RDLC的数据源之前按摩数据,然后将RDLC呈现给最终用户。此方法涉及阅读有关报告语言的更多MS白皮书,并了解如何在代码中实现RDLC对象。

这里有更多关于RDL与RDLC的永恒论点:When to use RDLC over RDL reports?

答案 1 :(得分:0)

不,除非您使用RDLC文件,否则您将需要SSRS服务器来执行您要执行的操作。您可以获得非常有创意并自己解析数据源的RDL xml并执行操作,但这基本上与RDLC完全相同。

答案 2 :(得分:0)

以下是MSDN文章的链接,该文章将提供有关使用WebForms ReportViewer控件的一些信息:

http://technet.microsoft.com/en-us/library/aa337091(v=sql.100).aspx