Reporting Services のカスタム アセンブリの使用方法について以下のステップを通し簡単に説明します。
1) Visual Studio でカスタムアセンブリ(dll)を作成する
2) 作成したカスタムアセンブリを参照するReporting Services のレポートを作成する
3) Reporting Services のレポートで、作成したカスタムアセンブリの参照設定を行う
4) Reporting Services のレポートで、カスタムアセンブリを使用した式を指定する
またこのBlogでは下記からダウンロードできるデータベースと、Visual Studio 2010 を利用して説明します。
AdventureWorksDW2008R2
http://adventureworksdw2008.codeplex.com/
それでは、順番にみていきましょう。
=====================================
Visual Studio でカスタムアセンブリ(dll)を作成する
=====================================
1. Visual Studio から新しいプロジェクトを開きます。
2. クラスライブラリプロジェクトを作成します。言語、名前は任意ですがここでは Visual Basicを使用し、名前は SampleAssembly とします。 Reporting Services が .NET Framework 2.0 ベースなので、.NET Framework2.0 でプロジェクトを作成します。
3. ソリューション・エクスプローラで、Class1.vbの名前をSample.vbに変更します。
変更する際に名前の変更をするとすべての参照設定が変更される旨の通知がありますがそのままYESを選びます。
4. Sample.vbのコード欄に以下を追加します。
Public Class Sample Public Shared Function Calculate(ByVal inputDate As Date) As Integer Return DateDiff(“yyyy”, inputDate, DateTime.Now()) End Function End Class |
5. 次に厳密な名前でアセンブリに署名します。
プロジェクトを右クリックしてプロパティを開きます。
6. Sign the assembly にチェックを入れます
New… を選択します。
キーの名前を SNsnk とし、パスワードで保護はしないので、チェックをはずし、OKをクリックします。
キーファイルが作成されます。プロパティ画面を閉じます。
7. 次に、AssemblyInfo.vb に必要な情報を追加します。
ソリューション・エクスプローラーのツールボタンからすべてのファイルを表示するボタン(下の図の黄色でハイライトした部分)をクリックします。
ファイルが表示されます。表示された中から、My Project を開き、AssemblyInfo.vbをダブルクリックし開きます。
以下の黄色のコードを追加します。
<Assembly: AllowPartiallyTrustedCallers()>を追加することで、Reporting Services がアセンブリにアクセスすることができるようになります。
8. ここでプロジェクトをビルドします。
SampleAssemblyプロジェクトがあるフォルダにSampleAssembly.dll が作成されます。
9. 作成された Sample.dll を以下のフォルダ以下にそれぞれコピーします。(ドラッグアンドドロップ)
C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin\
C:\Windows\assembly\
========================================================
作成したカスタムアセンブリを参照するReporting Services のレポートを作成する========================================================
10. 次に、アセンブリを参照させるためのレポートを作成します。
SQL Server Business Intelligence Development Studio (BIDS)を開き、レポートサーバープロジェクトを作成します。
11. 新しいデータソースを選択し、任意の名前を入力して編集ボタンをクリックすると「接続のプロパティ」が開きます。
ここで接続先のデータベースを指定します。 データベースはサンプルとしてCodeplexからダウンロードしたAdventureWorksDW2008R2 を使います。
OKをクリックし、次に進みます。
次にクエリのデザインで DimEmployee テーブルから名前と生年月日、雇用年月日を選択するクエリを指定します。
レポートの種類、テーブルのデザインを選択し、ウィザードを完了します。
レポート名は ReportSample とし、完了します。
========================================================
Reporting Services のレポートで、作成したカスタムアセンブリの参照設定を行う
========================================================
13. レポートにアセンブリを指定します。
レポートのプロパティをメニューから選びます。
14. 参照でアセンブリの追加をします。
先ほどコピーしたアセンブリ SampleAssembly.dll を選択します。 参照タブをクリックします。
参照先例:C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin\
========================================================
Reporting Services のレポートで、カスタムアセンブリを使用した式を指定する
========================================================
16. 式を代入します。
HireDate の値の指定欄に以下の式を入力します。
=SampleAssembly.Sample.Calculate(Fields!HireDate.Value)
Birth Date に以下の式を入力します。
=SampleAssembly.Sample.Calculate(Fields!BirthDate.Value)
また、HireDateを雇用期間、BirthDateを年齢 と変更します。
ビルドし、配置します。
それぞれの年数が計算されたデータが表示されます。
※ 2013 年 5 月 15 日現在の情報です。
--
SQL Server / Windows Azure SQL Database Support
Kayoko Gray