Adr*_*der 2 c# service reporting-services
我们正在考虑用SSRS取代Crystal.
我想知道是否可以在C#中加载.rdl或.rdl.data文件并生成报告到内存流.
我见过一些使用LocalReport的例子,但这似乎是WinForms或WebForms程序集的一部分.
所以我想知道的是:
我不确定这是一个答案,但我们称之为支持材料.
我有来自msdn的这个代码示例,它显示了如何通过创建服务客户端并将给定报告作为PDF调用并将其保存到文件流来完成此操作.
http://msdn.microsoft.com/en-us/library/reportexecution2005.reportexecutionservice.render.aspx
我目前遇到的问题是在将VS指向SSRS服务后找到正确的客户端对象进行交互.我用来与服务交互的对象是:
ReportExecutionServiceSoapClient rs = new ReportExecutionServiceSoapClient();
Run Code Online (Sandbox Code Playgroud)
但是,该接口与我的代码示例不匹配.所以这有点接近,但不是答案.
更新:正确的代理类生成器
这是如何正确生成代理的链接.你需要安装windows sdk(当前是7.1).你可以在microsoft.com上找到它,就像我一样.执行命令行,它将为您生成一个文件.包含在项目中:
http://msdn.microsoft.com/en-us/library/ms155134%28v=SQL.110%29.aspx
更新:让事情发挥作用
我只需要生成正确的代理.好吧,对于SSRS 2010,显然他们将报告执行和管理分成两个服务.我需要从C#控制台应用程序生成报告的唯一一个是执行服务.也许除了我之外,对每个人来说都是显而易见的:)?
好的,打开一个Windows SDK命令shell,并将其中的内容放入执行服务中:
wsdl /language:CS /n:"Microsoft.SqlServer.ReportExecution" http://<Server Name>/reportserver/reportexecution2010.asmx?wsdl /o:"ReportExecution.cs"
Run Code Online (Sandbox Code Playgroud)
转到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";
Run Code Online (Sandbox Code Playgroud)
按照此链接中的示例进行操作,该链接与上面的相同,您应该从方便的C#应用程序生成一些非常棒的报告.
| 归档时间: |
|
| 查看次数: |
10383 次 |
| 最近记录: |