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

标签 c# asp.net reporting-services rdl

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

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

令我困惑的是,Report Builder 3 能够运行其中包含嵌入式数据源的 .rdl 文件,那么为什么 Report Viewer 不能控制?有没有什么方法可以使 Report Viewer 控件像 Report Builder 3 一样运行,并且只让它运行 .rdl 文件?

最佳答案

Report Viewer 可以运行 RDL 文件,但首先需要将它们托管/发布到某个地方,这很麻烦,然后 reportviewer 才处于远程模式。 ReportView 有不同的运行模式,其中一种模式基本上只是与 SSRS 服务器对话并说:“你在那里得到了什么?”。关于何时发布本地报告或托管报告以及两者之间的优势/劣势存在很多争论。如果成本是一个问题并相应地调整防火墙,您可以只开发一个带有“高级选项”的常规 SSRS 服务器,以便将 SSRS 实例放在一个盒子上。如果这是一项政策设置,我无能为力。

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

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

关于c# - 如何在没有 SSRS 服务器的情况下使用 Report Viewer 控件执行 .rdl 报告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17621346/

相关文章:

asp.net - 这个 jscript 会在 .ASCX 页面内运行吗?

ssis - 如何将参数从 SSIS 包传递给 SSRS 报告?

c# - Linq 查询从 Sql 数据库返回重复记录

c# - LINQ 数据上下文不显示方法

c# - 仅限二进制数 TextBox

c# - 无法启用约束。一行或多行包含违反非空、唯一或外键约束的值

postgresql - 在 PostgreSQL 中获取前 1 个月或前 2 个月的所有日期

reporting-services - SSRS - 分页问题

c# - 用 HTML5 播放 wav

c# - 什么图标应该设置为表单的图标?