次の方法で共有


レッスン 3: Web サービスへのアクセス

レポート サーバー Web サービスの参照をプロジェクトに追加した後、次の手順は、Web サービスのプロキシ クラスのインスタンスを作成することです。 その後、プロキシ クラスのメソッドを呼び出すことによって、Web サービスのメソッドにアクセスできます。 アプリケーションがこれらのメソッドを呼び出すと、Visual Studio によって生成されたプロキシ クラス コードによって、アプリケーションと Web サービス間の通信が処理されます。

まず、Web サービスのプロキシ クラス ( ReportingService2010) のインスタンスを作成します。 次に、プロキシ クラスを使用して Web サービスの GetProperties メソッドを呼び出します。 この呼び出しを使用して、サンプル レポートの 1 つである Company Sales の名前と説明を取得します。

SQL Server Express で実行されている Web サービスに Advanced Services を使用してアクセスする場合は、"$SQLExpress" を "ReportServer" パスに追加する必要があります。 例えば次が挙げられます。

http://<Server Name>/reportserver$sqlexpress/reportservice2010.asmx"

Web サービスにアクセスするには

  1. まず、コード ファイルに using (Visual Basic でImports ) ディレクティブを追加して、名前空間をProgram.cs ファイル (Visual Basic でModule1.vb) に追加する必要があります。 このディレクティブを使用する場合は、名前空間内の型を完全に修飾する必要はありません。

  2. これを行うには、コード ファイルの先頭に次のコードを追加します。

    Imports System  
    Imports GetPropertiesSample.ReportService2010  
    
    using System;  
    using GetPropertiesSample.ReportService2010;  
    
  3. コード ファイルに名前空間ディレクティブを入力したら、コンソール アプリケーションの Main メソッドに次のコードを入力します。 Web サービス インスタンスの URL プロパティを設定するときは、必ずサーバーの名前を変更してください。

    Sub Main()  
       Dim rs As New ReportingService2010  
       rs.Credentials = System.Net.CredentialCache.DefaultCredentials  
       rs.Url = "http://<Server Name>/reportserver/reportservice2010.asmx"  
    
       Dim name As New [Property]  
       name.Name = "Name"  
    
       Dim description As New [Property]  
       description.Name = "Description"  
    
       Dim properties(1) As [Property]  
       properties(0) = name  
       properties(1) = description  
    
       Try  
          Dim returnProperties As [Property]() = rs.GetProperties( _  
             "/AdventureWorks 2012 Sample Reports/Company Sales 2012", properties)  
    
          Dim p As [Property]  
          For Each p In returnProperties  
              Console.WriteLine((p.Name + ": " + p.Value))  
          Next p  
    
       Catch e As Exception  
          Console.WriteLine(e.Message)  
       End Try  
    End Sub  
    
    static void Main(string[] args)  
    {  
       ReportingService2010 rs = new ReportingService2010();  
       rs.Credentials = System.Net.CredentialCache.DefaultCredentials;  
       rs.Url = "http://<Server Name>/reportserver/reportservice2010.asmx";  
    
       Property name = new Property();  
       name.Name = "Name";  
    
       Property description = new Property();  
       description.Name = "Description";  
    
       Property[] properties = new Property[2];  
       properties[0] = name;  
       properties[1] = description;  
    
       try  
       {  
          Property[] returnProperties = rs.GetProperties(  
          "/AdventureWorks 2012 Sample Reports/Company Sales 2012",properties);  
    
          foreach (Property p in returnProperties)  
          {  
             Console.WriteLine(p.Name + ": " + p.Value);  
          }  
       }  
    
       catch (Exception e)  
       {  
          Console.WriteLine(e.Message);  
       }  
    }  
    
  4. ソリューションを保存します。

チュートリアルのサンプル コードでは、Web サービスの GetProperties メソッドを使用して、サンプル レポート Company Sales 2012 のプロパティを取得します。 GetProperties メソッドは、プロパティ情報を取得するレポートの名前と、取得する値を持つプロパティの名前を含む Property[] オブジェクトの配列という 2 つの引数を受け取ります。 このメソッドは、properties 引数で指定されたプロパティの名前と値を含む Property[] オブジェクトの配列も返します。

properties 引数に空の Property[] 配列を指定すると、使用可能なすべてのプロパティが返されます。

前のサンプルでは、コードは GetProperties メソッドを使用して、サンプル レポート Company Sales 2012 の名前と説明を返します。 その後、コードは foreach ループを使用して、プロパティと値をコンソールに書き込みます。

レポート サーバー Web サービスのプロキシ クラスの作成と使用の詳細については、「 Web サービス プロキシの作成」を参照してください。

こちらもご覧ください

レッスン 4: アプリケーションの実行 (VB-VC#)
Visual Basic または Visual C# を使用したレポート サーバー Web サービスへのアクセス (SSRS チュートリアル)