SQL Server Reporting Services カスタムアセンブリの設定方法

Reporting Services のカスタム アセンブリの使用方法について以下のステップを通し簡単に説明します。

 

1) Visual Studio でカスタムアセンブリ(dll)を作成する

2) 作成したカスタムアセンブリを参照するReporting Services のレポートを作成する

3) Reporting Services のレポートで、作成したカスタムアセンブリの参照設定を行う

4) Reporting Services のレポートで、カスタムアセンブリを使用した式を指定する

 

またこのBlogでは下記からダウンロードできるデータベースと、Visual Studio 2010 を利用して説明します。

AdventureWorksDW2008R2
https://adventureworksdw2008.codeplex.com/

それでは、順番にみていきましょう。

=====================================
Visual Studio でカスタムアセンブリ(dll)を作成する
=====================================

1. Visual Studio から新しいプロジェクトを開きます。

image

2. クラスライブラリプロジェクトを作成します。言語、名前は任意ですがここでは Visual Basicを使用し、名前は SampleAssembly とします。 Reporting Services が .NET Framework 2.0 ベースなので、.NET Framework2.0 でプロジェクトを作成します。
     
clip_image002

3. ソリューション・エクスプローラで、Class1.vbの名前をSample.vbに変更します。

clip_image003

変更する際に名前の変更をするとすべての参照設定が変更される旨の通知がありますがそのままYESを選びます。

clip_image004

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

image

5. 次に厳密な名前でアセンブリに署名します。

プロジェクトを右クリックしてプロパティを開きます。
image

6. Sign the assembly にチェックを入れます

   image

New… を選択します。

clip_image008

キーの名前を SNsnk とし、パスワードで保護はしないので、チェックをはずし、OKをクリックします。

clip_image009

キーファイルが作成されます。プロパティ画面を閉じます。

clip_image010

7. 次に、AssemblyInfo.vb に必要な情報を追加します。
ソリューション・エクスプローラーのツールボタンからすべてのファイルを表示するボタン(下の図の黄色でハイライトした部分)をクリックします。

clip_image011

ファイルが表示されます。表示された中から、My Project を開き、AssemblyInfo.vbをダブルクリックし開きます。

clip_image012

以下の黄色のコードを追加します。
<Assembly: AllowPartiallyTrustedCallers()>を追加することで、Reporting Services がアセンブリにアクセスすることができるようになります。

clip_image013

8. ここでプロジェクトをビルドします。
SampleAssemblyプロジェクトがあるフォルダにSampleAssembly.dll が作成されます。

clip_image014

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)を開き、レポートサーバープロジェクトを作成します。

clip_image015

11. 新しいデータソースを選択し、任意の名前を入力して編集ボタンをクリックすると「接続のプロパティ」が開きます。
ここで接続先のデータベースを指定します。 データベースはサンプルとしてCodeplexからダウンロードしたAdventureWorksDW2008R2 を使います。

clip_image016     
    
OKをクリックし、次に進みます。

clip_image017

次にクエリのデザインで DimEmployee テーブルから名前と生年月日、雇用年月日を選択するクエリを指定します。

clip_image018

レポートの種類、テーブルのデザインを選択し、ウィザードを完了します。

clip_image019

clip_image022

clip_image021 

    
レポート名は ReportSample とし、完了します。

12. プレビューして実行できることを確認します。

clip_image023

 

========================================================
Reporting Services のレポートで、作成したカスタムアセンブリの参照設定を行う
========================================================

13. レポートにアセンブリを指定します。

レポートのプロパティをメニューから選びます。

clip_image024

14. 参照でアセンブリの追加をします。

clip_image025

先ほどコピーしたアセンブリ SampleAssembly.dll を選択します。 参照タブをクリックします。

clip_image026    

参照先例:C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer\bin\

clip_image027

15. OKをクリックします。

clip_image028

 

========================================================
Reporting Services のレポートで、カスタムアセンブリを使用した式を指定する
========================================================

16. 式を代入します。

HireDate の値の指定欄に以下の式を入力します。
=SampleAssembly.Sample.Calculate(Fields!HireDate.Value)

Birth Date に以下の式を入力します。
=SampleAssembly.Sample.Calculate(Fields!BirthDate.Value)

また、HireDateを雇用期間、BirthDateを年齢 と変更します。

clip_image029
clip_image030

ビルドし、配置します。

image

それぞれの年数が計算されたデータが表示されます。

※ 2013 年 5 月 15 日現在の情報です。

--

SQL Server / Windows Azure SQL Database Support

Kayoko Gray