c# - 在服务中从 C# 中的文件加载 SSRS 报告

标签 c# service reporting-services

我们正在研究用 SSRS 替换 Crystal。

我想知道是否可以在 C# 中加载 .rdl 或 .rdl.data 文件并将报告生成到内存流。

我看过一些使用 LocalReport 的例子,但这似乎是 WinForms 或 WebForms 程序集的一部分。

所以我想知道的是:

  • 作为我们服务的一部分,是否可以从文件加载报告。
  • 然后我们可以将报告生成到 Stream(假设是内存 流)
  • 我可以在不使用 WebForms/WinForms 程序集的情况下执行此操作吗? 服务
  • 我们能否在不使用 SSRS 网络服务的情况下实现这一目标

最佳答案

我不确定这是一个答案,但我们称之为支持 Material 。

我有这个来自 msdn 的代码示例,它展示了如何通过创建服务客户端并将给定报告作为 PDF 调用并将其保存到文件流来执行此操作。

http://msdn.microsoft.com/en-us/library/reportexecution2005.reportexecutionservice.render.aspx

我目前遇到的问题是在将 VS 指向 SSRS 服务后找到要与之交互的正确客户端对象。我用来与服务交互的对象是:

ReportExecutionServiceSoapClient rs = new ReportExecutionServiceSoapClient();

但是,界面与我的代码示例不匹配。所以这有点接近,但不是答案。

更新:正确的代理类生成器

这里是如何正确生成代理的链接。您需要安装 windows sdk(当前为 7.1)。您可以像我一样在 microsoft.com 上找到它。执行命令行,它会为您生成一个文件。包含在项目中:

http://msdn.microsoft.com/en-us/library/ms155134%28v=SQL.110%29.aspx

更新:一切正常

我只需要生成正确的代理。好的,对于 SSRS 2010,显然他们将报告执行和管理分成了两项服务。从 C# 控制台应用程序生成报告所需的唯一一个是执行服务。也许这对除了我之外的每个人来说都是显而易见的:)?

好的,那么打开一个 Windows SDK 命令外壳并将这些东西放入其中以用于执行服务:

wsdl /language:CS /n:"Microsoft.SqlServer.ReportExecution" http://<Server Name>/reportserver/reportexecution2010.asmx?wsdl /o:"ReportExecution.cs"

转到 C:\Program Files\Microsoft SDKs\Windows\v7.1 并选择您的 ReportExecution.cs 文件。将其复制并粘贴到您的项目中。

然后你只需要这样说:

Microsoft.SqlServer.ReportExecution.ReportExecutionService rsExec = 
                new Microsoft.SqlServer.ReportExecution.ReportExecutionService();
            rsExec.Credentials = System.Net.CredentialCache.DefaultCredentials;
            rsExec.Url = @"http://<ServerName>/reportserver/ReportExecution2005.asmx";

按照 this link 中的示例进行操作,与上面的相同,您应该可以从方便的 C# 应用程序生成一些非常棒的报告。

关于c# - 在服务中从 C# 中的文件加载 SSRS 报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7255428/

相关文章:

c# - 创建 Form.MinimumClientSize 属性

android - 如何读取我的 BLE 设备的所有特征值?

android - 循环服务卡住 Activity

sql-server - 在 SQL Server Reporting Services 中,如何在打印或下载为文件(csv、pdf 等)时显示隐藏列

c# - 执行劣质 ReactiveCommand 时,ReactiveUI 处理异常的方法是什么?

c# - 使用 C# 编译的可执行文件有什么?

c# - 如何检查修改了哪些属性/条目,哪些不在 EF 6 中编辑记录

tomcat - 从命令行将 java_opts 设置为 tomcat 服务

excel - 在 SSRS 中将条件边框导出到 Excel

reporting-services - SSRS独特的lookupset函数