第 1 課:建立 RDL 結構描述 Visual Studio 專案
在這個教學課程中,您會建立簡單的主控台應用程式。這個教學課程假設您是在 Microsoft Visual Studio 2008 中進行開發工作。
[!附註]
當您存取在 SQL Server Express with Advanced Services 上執行的報表伺服器 Web 服務時,必須將 "_SQLExpress" 附加至 "ReportServer" 路徑。例如:
http://myserver/reportserver_sqlexpress/reportservice2010.asmx"
若要建立 Web 服務 Proxy
從 [開始] 功能表,依序選取 [所有程式]、[Microsoft Visual Studio] 和 [Visual Studio 工具],然後選取 [Visual Studio 2008 命令提示字元]。
如果您是使用 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 檔案的位置,接著選取該檔案,然後按一下 [加入]。
您也必須加入 System.Web.Services 命名空間的參考,才能讓 Web 參考運作。
在 [專案] 功能表上,按一下 [加入參考]。
在 [加入參考] 對話方塊的 [.NET] 索引標籤中,選取 [System.Web.Services],然後按一下 [確定]。
如需有關如何連接到報表伺服器 Web 服務的詳細資訊,請參閱<使用 Web 服務與 .NET Framework 建立應用程式>。
在 [方案總管] 中,展開專案節點。您會看到含有預設名稱 Program.cs (在 Visual Basic 中則為 Module1.vb) 的程式碼檔案已加入專案中。
開啟 Program.cs (在 Visual Basic 中為 Module1.vb) 檔案,然後將程式碼取代成下列項目:
下列程式碼提供方法 stubs,我們將用來實作「載入」、「更新」和「儲存功能」。
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 2: Load a report definition from the report // catalog } private void UpdateReportDefinition() { //Lesson 3: Update the report definition using the // classes generated from the RDL Schema } private void PublishReportDefinition() { //Lesson 4: 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 2: Load a report definition from the report ' catalog End Sub Private Sub UpdateReportDefinition() 'Lesson 3: Update the report definition using the ' classes generated from the RDL Schema End Sub Private Sub PublishReportDefinition() 'Lesson 4: Publish the updated report definition back ' to the report catalog End Sub End Module End Namespace
下一課
在下一課,您將使用 XML 結構描述定義工具 (Xsd.exe),從 RDL 結構描述產生類別,並將類別包含在專案之中。請參閱<第 2 課:使用 xsd 工具,從 RDL 結構描述產生類別>。