Reporting Services での式を使用した作業
新規 : 2005 年 12 月 5 日
Reporting Services では、レポートの内容と外観の制御に対して動的な柔軟性を提供するために式が使用されます。一部の式は自動的に作成されます。たとえば、新しいレポートを作成してデータセットのフィールドをレポート アイテムにドラッグしたときに、データセット フィールドを名前で参照する式にテキスト ボックスの値が自動的に設定されます。レポート処理では、それぞれの式はレポートが表示されるときに式を置き換える単一の値に評価されます。レポート アイテムのプロパティ、テキスト ボックスのプロパティ、パラメータ、クエリ、ブックマーク、見出しマップ、フィルタ、およびグループ化と並べ替え定義の値を指定または計算するために、レポート定義でも式が使用されます。
レポート アイテムの式は、テキスト ボックス、プロパティ、またはダイアログ ボックスにテキストを入力して作成します。式は Microsoft Visual Basic で記述します。式は等号 (=) で始まり、定数、演算子、関数、およびフィールドやパラメータを含む組み込みレポートのグローバル コレクションへの参照で構成されます。.NET Framework クラス、カスタム コード、およびレポート処理の外部のアセンブリへの参照を作成することもできます。式の作成の詳細については、「Reporting Services での式の作成」を参照してください。
ここでは、レポート定義で式を使用できる場所の概要について説明します。このトピックの例は、チュートリアルの「基本レポートの作成」で作成する AdventureWorks データセットに基づいています。例を使用して開始するには、「Reporting Services の式の例」を参照してください。
フィールド式の使用
式を使用して、データセットからフィールドを参照し、その値をテキスト ボックスに表示できます。取得したデータをレポート アイテムにリンクするには、フィールド式に Fields グローバル コレクション、フィールドの名前、および Value プロパティを使用する必要があります。
- [データセット] ウィンドウのフィールドをレポート アイテムにドラッグすると、フィールド式が自動的にテキスト ボックスに追加されます。
例 :
=Fields!LastName.Value
結果 :
Reiter
Reiter
Saraiva
- 複数のフィールドや定数のデータを組み合わせることができます。
例 :
=Fields!FirstName.Value & " " & Fields!LastName.Value
結果 :
Tsvi Reiter
Tsvi Reiter
Jose Saraiva
式で使用できるすべての種類の参照の一覧については、「Reporting Services での式の作成」を参照してください。
Reporting Services の組み込み関数の使用
式を使用して、式から組み込みレポート関数のホストを参照できます。これらの関数には、行のグループの値を計算するために使用する Sum、Min、Max、および Count のような標準の集計関数から、すべての行に値を指定するために詳細行で使用できる RowNumber および RunningValue のような関数まで含まれます。
- 集計関数 Count を使用して、SalesOrder という名前のデータセットの LastName フィールドにある姓の数をカウントします。テーブルの詳細行に式を配置することもできますが、3,906 行のすべてに同じ値が入力されることになります。集計関数は詳細行を集計するように設計されており、通常はデータ領域やデータ領域グループのヘッダー行またはフッター行のテキスト ボックスで使用されます。
例 :
="Number of Names: " & Count(Fields!LastName.Value)
結果 :
Number of Names: 3906
- 集計関数 Sum を使用して、TotalDue フィールドを合計します。これをテーブルのフッター行に設定します。値が書式設定されていないことに注意してください。
例 :
="Total Sold: " & Sum(Fields!TotalDue.Value)
結果 :
Total Sold: 108266245.7018
- Format 関数と Microsoft .NET Framework の書式指定文字列 C を使用して、数値を書式設定します。
例 :
="Total Sold: " & Format(Sum(Fields!TotalDue.Value),"C")
結果 :
Total Sold: $108,266,245.70
- RowNumber 関数を使用して、行に番号を付けます。
例 :
=RowNumber(Nothing)
結果 :
1
2
3
- RunningValue を使用して、指定されたスコープの累計を集計します。
例 :
=Format(RunningValue(Fields!TotalDue.Value,Sum,Nothing),"C")
結果 :
$27,231.55
$28,947.73
式から参照できるすべての組み込みレポート関数の一覧については、「式でのレポート関数の使用 (Reporting Services)」を参照してください。
スコープ
場合によっては定義された複数のグループがあるため、集計関数でスコープが使用されるように指定できます。スコープとは、集計の計算方法を指示するために集計関数に渡すことができる名前のことです。たとえば、複数のグループが定義されたテーブルでは、内部のグループ ヘッダー行から外部のグループを参照する場合があります。Nothing スコープは、最も外側のスコープを使用するよう関数に指示します。グループのない単純なテーブル データ領域には、スコープが 1 つしかありません。
レポート アイテム グループに対して有効なスコープを識別するには、アイテムを選択し、[プロパティ] ダイアログ ボックスを開いて [グループ] タブをクリックし、スコープの識別に使用できるグループ ラベルの一覧を表示します。
.NET Framework 名前空間とシステム名前空間の使用
式を使用して、Microsoft.VisualBasic ランタイム ライブラリの組み込みの名前空間と、.NET Framework 名前空間の System.Convert および System.Math を参照できます。その他の .NET Framework CLR (共通言語ランタイム) の名前空間を参照するには、System.Text.StringBuilder などの完全修飾名前空間を使用する必要があります。外部アセンブリへの参照の場合は、レポートのプロパティによってアセンブリを識別し、それがレポート サーバーで使用できることを確認する必要があります。詳細については、「レポートにアセンブリへの参照を追加する方法 (レポート デザイナ)」および「RDL ファイルのアセンブリの参照」を参照してください。
カスタム コードとクラスの参照の使用
式を使用して、独自のカスタム インスタンスとクラス インスタンスを参照できます。これを行うには、レポート プロパティによってレポートに直接コードを追加するか、またはカスタム アセンブリを作成して式の内部からそのアセンブリを参照します。詳細については、「式でのカスタム コード参照の使用 (Reporting Services)」を参照してください。
条件付き書式の使用
式を使用して、レポート アイテムの外観を制御できます。たとえば、テキスト ボックスの Color プロパティに式を記述し、データによって異なる色でデータが表示されるようにすることができます。次の例では、TotalDue フィールドの値が 10,000 より小さい場合に、値が赤で表示されます。指定した条件に合わない場合は、テキストは黒で表示されます。
=Iif(Fields!TotalDue.Value < 10000,"Red","Black")
レポート アイテムに書式設定の式を入力するには、[プロパティ] ウィンドウを開いて、書式を設定するプロパティの値フィールドに式を入力します。条件付き書式の詳細については、「条件付き書式の追加」を参照してください。
クエリ式の使用
式を使用して、データセット内のクエリを定義できます。この機能を使用して、ユーザーからの入力や他のデータセットのデータ、その他の変数によりクエリが変化するようにレポートをデザインできます。クエリの詳細については、「レポートのデータセットの定義」を参照してください。
フィルタ式、グループ式、および並べ替え式の使用
式を使用して、レポートに表示されるデータ量とデータの種類を制限するフィルタを定義できます。フィルタは、データがデータ ソースから取得された後に適用されます。データセット、データ領域、およびデータ領域グループにフィルタを定義できます。フィルタの詳細については、「フィルタを追加する方法 (レポート デザイナ)」および「レポートでのデータのフィルタ処理」を参照してください。
式を使用して、データ領域のグループを定義できます。多くの場合、グループ化されたデータで集計を計算するために式が使用されます。データ領域のグループ ヘッダーを作成して、グループを定義します。データのグループ化の詳細については、「データのグループ化」および「テーブルにグループを追加する方法 (レポート デザイナ)」を参照してください。
式を使用して、データ領域の並べ替えを定義できます。データセット、データ領域の詳細行、およびデータ領域のグループを並べ替えることができます。データの並べ替えの詳細については、「データの並べ替え」および「テーブルのデータを並べ替える方法 (レポート デザイナ)」を参照してください。
組み込みレポート コレクションの使用
式を使用して、組み込みレポート コレクション クラスを参照できます。既に説明した Fields コレクションの他に、Globals、User、Parameters、ReportItems、DataSets、および DataSources コレクション内のアイテムを参照する式を作成できます。これらのコレクションを式で使用すると、レポートの処理中に動的に決定されるレポートのプロパティとデータにアクセスできます。詳細については、「式でのグローバル コレクションの使用 (Reporting Services)」を参照してください。
ロケール設定の使用
式を使用して、User.Language 値でクライアント コンピュータのロケール設定を参照し、ユーザーに対してどのようにレポートを表示するかを指定できます。たとえば、ロケール値に基づいて異なるクエリ式を使用するレポートを作成できます。クエリは、返された言語に応じて異なる列からローカライズされた情報を取得するように変更できます。また、この変数を基にしてレポートまたはレポート アイテムの言語設定に式を使用することもできます。
メモ : |
---|
レポートの言語設定は変更できますが、言語設定の変更により、表示に関する問題が発生する可能性があることに注意してください。たとえば、レポートのロケール設定を変更すると、レポートの日付の書式が変更されますが、通貨の書式も変更される可能性があります。通貨用の変換処理が実装されていない場合は、これによりレポートに不適切な通貨記号が表示される可能性があります。これを回避するには、変更するアイテムごとに個別に言語情報を設定するか、通貨データを含むアイテムに特定の言語を設定します。 |