在本教程中,你将创建一个简单的控制台应用程序。 本教程假定你在 Visual Studio 2010 Microsoft进行开发。
注释
使用高级服务访问 SQL Server Express 上运行的报表服务器 Web 服务时,必须将“_SQLExpress”追加到“ReportServer”路径。 例如:
http://myserver/reportserver_sqlexpress/reportservice2010.asmx"
创建 Web 服务代理
从“ 开始 ”菜单中,依次选择“ 所有程序”、“Microsoft Visual Studio 工具”和 “Visual Studio 2010 命令提示符”。
在命令提示符窗口中,如果使用 C# ,请运行以下命令:
wsdl /language:CS /n:"ReportService2010" http://<Server Name>/reportserver/reportservice2010.asmx?wsdl如果使用 Visual Basic,请运行以下命令:
wsdl /language:VB /n:"ReportService2010" http://<Server Name>/reportserver/reportservice2010.asmx?wsdl此命令生成.cs或.vb文件。 将此文件添加到应用程序。
创建控制台应用程序
在“ 文件 ”菜单上,指向“ 新建”,然后单击“ 项目 ”以打开“ 新建项目 ”对话框。
在左窗格中的 “已安装模板”下,单击 “Visual Basic ”或“ Visual C# ”节点,然后从展开列表中选择项目类型的类别。
选择 控制台应用程序 项目类型。
在“ 名称 ”框中,输入项目的名称。 键入名称
SampleRDLSchema。在 “位置 ”框中,键入要保存项目的路径,或单击“ 浏览 ”导航到文件夹。
单击 “确定” 。 项目的折叠视图将会出现在解决方案资源管理器中。
在 项目 菜单上,单击 添加现有项。
导航到生成的.cs或.vb文件的位置,然后选择该文件,然后单击“ 添加”。
您还需要为 Services 命名空间添加一个引用,以确保 Web 引用能正常工作。
在“项目”菜单上,单击“ 添加引用”。
在 “添加引用 ”对话框中的 “.NET ”选项卡中,选择 System.Web.Services,然后单击“ 确定”。
有关如何连接到报表服务器 Web 服务的详细信息,请参阅 使用 Web 服务和 .NET Framework 生成应用程序。
在解决方案资源管理器中,展开项目节点。 你将看到一个代码文件,该文件的默认名称为 Program.cs (Module1.vb for Visual Basic) 已添加到项目中。
打开 Program.cs(Module1.vb for Visual Basic)文件,并将代码替换为以下内容:
以下代码提供了用于实现加载、更新和保存功能的方法存根。
using System; using System.Collections.Generic; using System.IO; using System.Text; using System.Xml; using System.Xml.Serialization; using ReportService2010; namespace SampleRDLSchema { class ReportUpdater { ReportingService2010 _reportService; static void Main(string[] args) { ReportUpdater reportUpdater = new ReportUpdater(); reportUpdater.UpdateReport(); } private void UpdateReport() { try { // Set up the Report Service connection _reportService = new ReportingService2010(); _reportService.Credentials = System.Net.CredentialCache.DefaultCredentials; _reportService.Url = "http://<Server Name>/reportserver/" + "reportservice2010.asmx"; // Call the methods to update a report definition LoadReportDefinition(); UpdateReportDefinition(); PublishReportDefinition(); } catch (Exception ex) { System.Console.WriteLine(ex.Message); } } private void LoadReportDefinition() { //Lesson 3: Load a report definition from the report // catalog } private void UpdateReportDefinition() { //Lesson 4: Update the report definition using the // classes generated from the RDL Schema } private void PublishReportDefinition() { //Lesson 5: Publish the updated report definition back // to the report catalog } } }Imports System Imports System.Collections.Generic Imports System.IO Imports System.Text Imports System.Xml Imports System.Xml.Serialization Imports ReportService2010 Namespace SampleRDLSchema Module ReportUpdater Private m_reportService As ReportingService2010 Public Sub Main(ByVal args As String()) Try 'Set up the Report Service connection m_reportService = New ReportingService2010 m_reportService.Credentials = _ System.Net.CredentialCache.DefaultCredentials m_reportService.Url = _ "http:// <Server Name>/reportserver/" & _ "reportservice2010.asmx" 'Call the methods to update a report definition LoadReportDefinition() UpdateReportDefinition() PublishReportDefinition() Catch ex As Exception System.Console.WriteLine(ex.Message) End Try End Sub Private Sub LoadReportDefinition() 'Lesson 3: Load a report definition from the report ' catalog End Sub Private Sub UpdateReportDefinition() 'Lesson 4: Update the report definition using the ' classes generated from the RDL Schema End Sub Private Sub PublishReportDefinition() 'Lesson 5: Publish the updated report definition back ' to the report catalog End Sub End Module End Namespace
下一课
在下一课中,你将使用 XML 架构定义工具(Xsd.exe)从 RDL 架构生成类,并将其包含在项目中。 请参阅 第 2 课:使用 xsd 工具从 RDL 架构生成类。