共用方式為


第 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

  1. [開始] 功能表,依序選取 [所有程式]、[Microsoft Visual Studio] 和 [Visual Studio 工具],然後選取 [Visual Studio 2008 命令提示字元]

  2. 如果您是使用 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 檔案。您會將這個檔案加入應用程式中。

若要建立主控台應用程式

  1. [檔案] 功能表上,指向 [新增],然後按一下 [專案],開啟 [新增專案] 對話方塊。

  2. [專案類型] 窗格中,按一下 [Visual Basic][Visual C#] 節點。

  3. 按一下 [主控台應用程式] 圖示。

  4. [名稱] 方塊中,輸入專案的名稱。輸入名稱 SampleRDLSchema。

  5. [位置] 方塊中,輸入想要儲存專案的路徑,或按一下 [瀏覽] 導覽到資料夾。

  6. 按一下 [確定]。專案的摺疊檢視會顯示於 [方案總管] 中。

  7. [專案] 功能表上,按一下 [加入現有項目]

  8. 瀏覽至您產生 .cs 或 .vb 檔案的位置,接著選取該檔案,然後按一下 [加入]

    您也必須加入 System.Web.Services 命名空間的參考,才能讓 Web 參考運作。

  9. 在 [專案] 功能表上,按一下 [加入參考]

    [加入參考] 對話方塊的 [.NET] 索引標籤中,選取 [System.Web.Services],然後按一下 [確定]

    如需有關如何連接到報表伺服器 Web 服務的詳細資訊,請參閱<使用 Web 服務與 .NET Framework 建立應用程式>。

  10. 在 [方案總管] 中,展開專案節點。您會看到含有預設名稱 Program.cs (在 Visual Basic 中則為 Module1.vb) 的程式碼檔案已加入專案中。

  11. 開啟 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 結構描述產生類別>。