レポート サーバー 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 サービスにアクセスするには
まず、コード ファイルに
using(Visual Basic でImports) ディレクティブを追加して、名前空間をProgram.cs ファイル (Visual Basic でModule1.vb) に追加する必要があります。 このディレクティブを使用する場合は、名前空間内の型を完全に修飾する必要はありません。これを行うには、コード ファイルの先頭に次のコードを追加します。
Imports System Imports GetPropertiesSample.ReportService2010using System; using GetPropertiesSample.ReportService2010;コード ファイルに名前空間ディレクティブを入力したら、コンソール アプリケーションの 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 Substatic 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); } }ソリューションを保存します。
チュートリアルのサンプル コードでは、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 チュートリアル)