gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 20:08:16 26 4
gpt4 key购买 nike

我们正在研究用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com