SQL Server Analysis Services データ処理拡張機能では、拡張フィールド プロパティがサポートされています。 拡張フィールド プロパティは、データ ソースで使用でき、データ処理拡張機能でサポートされるフィールド プロパティ Value および IsMissing に加えてプロパティです。 拡張プロパティは、レポート データセットのフィールド コレクションの一部としてレポート データ ペインには表示されません。 組み込みの Fields コレクションを使用して名前で指定する式を記述することで、レポートに拡張フィールド プロパティの値を含めることができます。
拡張プロパティには、定義済みプロパティとカスタム プロパティがあります。 定義済みのプロパティは、特定のフィールド プロパティ名にマップされ、名前によって組み込みの Fields コレクションからアクセスできる複数のデータ ソースに共通のプロパティです。 カスタム プロパティは各データ プロバイダーに固有であり、組み込みの Fields コレクションからアクセスできるのは、拡張プロパティ名を文字列として使用する構文を使用する場合のみです。
Analysis Services MDX クエリ デザイナーをグラフィカル モードで使用してクエリを定義する場合、定義済みの一連のセル プロパティおよびディメンション プロパティが自動的に MDX クエリに追加されます。 レポート内では、MDX クエリに明記されている拡張プロパティのみを使用できます。 レポートによっては、既定の MDX コマンド テキストを変更して、キューブに定義されている他のディメンションまたはカスタム プロパティを含めることができます。 Analysis Services データ ソースで使用できる拡張フィールドの詳細については、「プロパティ値の作成および使用 (MDX)」を参照してください。
レポートのフィールド プロパティの操作
拡張フィールド プロパティには、定義済みプロパティとデータ プロバイダー固有のプロパティがあります。 フィールド プロパティは、データセット用に作成されたクエリに存在しますが、 レポート データ ペインのフィールド一覧に表示されません。したがって、フィールド プロパティをレポートのデザイン画面にドラッグすることはできません。 代わりに、フィールドをレポートにドラッグしてから、フィールドの Value プロパティを、使用したいプロパティに変更する必要があります。 たとえば、キューブからのセル データが既に書式設定されている場合は、 =Fields!FieldName.FormattedValueの式を使用することで、FormattedValue フィールド プロパティを使用できます。
事前に定義されていない拡張プロパティを参照するには、式で次の構文を使用します。
- Fields!FieldName("PropertyName")
定義済みフィールド プロパティ
ほとんどの場合、定義済みフィールド プロパティはメジャー、レベル、またはディメンションに適用されます。 定義済みフィールド プロパティは、対応する値が Analysis Services データ ソースに格納されている必要があります。 値が存在しない場合、または、レベルにメジャーのみのフィールド プロパティを指定する場合、プロパティは NULL 値を返します。
次の構文のいずれかを使用して、式から定義済みプロパティを参照できます。
Fields!FieldName.PropertyName
Fields!FieldName("PropertyName")
次の表に、使用できる定義済みフィールド プロパティの一覧を示します。
| 財産 | タイプ | 説明/有効値 |
|---|---|---|
Value |
Object |
フィールドのデータ値を指定します。 |
IsMissing |
Boolean |
フィールドが結果データセットに存在するかどうかを示します。 |
UniqueName |
String |
レベルの完全修飾名を返します。 たとえば、従業員の UniqueName 値は [Employee].[従業員部].[Department].&[Sales].&[北米営業部長].&[272] になることがあります。 |
BackgroundColor |
String |
データベースで定義されたフィールドの背景色を返します。 |
Color |
String |
データベースで定義されたアイテムの前景色を返します。 |
FontFamily |
String |
データベースで定義されたアイテムのフォント名を返します。 |
FontSize |
String |
データベースで定義されたアイテムのフォントのポイント サイズを返します。 |
FontWeight |
String |
データベースで定義されたアイテムのフォントの太さを返します。 |
FontStyle |
String |
データベースで定義されたアイテムのフォントのスタイルを返します。 |
TextDecoration |
String |
データベースで定義されたアイテムの特殊なテキストの書式設定を返します。 |
FormattedValue |
String |
メジャーまたは主要データに対して書式設定した値を返します。 たとえば、Sales Amount Quota の FormattedValue プロパティは、$1,124,400.00 などの通貨形式を返します。 |
Key |
Object |
レベルのキーを返します。 |
LevelNumber |
Integer |
親子階層の場合は、レベル番号またはディメンション番号を返します。 |
ParentUniqueName |
String |
親子階層の場合は、親レベルの完全修飾名を返します。 |
注
レポートが実行されてそのデータセットのデータを取得する際にデータ ソース ( Analysis Services キューブなど) によってこれらの値が提供される場合にのみ、これらの拡張フィールド プロパティに対応する値が存在します。 その場合、次のセクションに示す構文を使用して、すべての式からこれらのフィールド プロパティ値を参照できます。 ただし、これらのフィールドはこのデータ プロバイダーに固有であるため、これらの値に加えた変更はレポート定義には保存されません。
拡張プロパティの例
拡張プロパティの例として、次の MDX クエリおよび結果セットには、キューブに対して定義されているディメンション属性で使用できるいくつかのメンバー プロパティが含まれています。 含まれているメンバー プロパティは、MEMBER_CAPTION、UNIQUENAME、Properties("Day Name")、MEMBER_VALUE、PARENT_UNIQUE_NAME、および MEMBER_KEY です。
この MDX クエリは、AdventureWorks2012 サンプル データベースに含まれる AdventureWorks2012 DW データベースの AdventureWorks2012 キューブに対して実行されます。
WITH MEMBER [Measures].[DateCaption]
AS '[Date].[Date].CURRENTMEMBER.MEMBER_CAPTION'
MEMBER [Measures].[DateUniqueName]
AS '[Date].[Date].CURRENTMEMBER.UNIQUENAME'
MEMBER [Measures].[DateDayName]
AS '[Date].[Date].Properties("Day Name")'
MEMBER [Measures].[DateValueinOriginalDatatype]
AS '[Date].[Date].CURRENTMEMBER.MEMBER_VALUE'
MEMBER [Measures].[DateParentUniqueName]
AS '[Date].[Date].CURRENTMEMBER.PARENT_UNIQUE_NAME'
MEMBER [Measures].[DateMemberKeyinOriginalDatatype]
AS '[Date].[Date].CURRENTMEMBER.MEMBER_KEY'
SELECT {
[Measures].[DateCaption],
[Measures].[DateUniqueName],
[Measures].[DateDayName],
[Measures].[DateValueinOriginalDatatype],
[Measures].[DateParentUniqueName],
[Measures].[DateMemberKeyinOriginalDatatype]
} ON COLUMNS , [Date].[Date].ALLMEMBERS ON ROWS
FROM [Adventure Works]
このクエリを MDX クエリ ペインで実行すると、1,158 行の結果セットが返されます。 最初の 4 行を次の表に示します。
| DateCaption | 日付ユニーク名 | 日付曜日名 | DateValueinOriginalDatatype | DateParentUniqueName | 元のデータ型における日付メンバーキー |
|---|---|---|---|---|---|
| すべての期間 | [日付]。[日付]。[すべての期間] | (null) | (null) | (null) | 0 |
| 2001年7月1日 | [日付]。[日付].>[1] | 日曜日 | 7/1/2001 | [日付]。[日付]。[すべての期間] | 1 |
| 2001年7月2日 | [日付]。[日付].&[2] | 月曜日 | 7/2/2001 | [日付]。[日付]。[すべての期間] | 2 |
| 3-Jul-01 | [日付].[日付].&[3] | 火曜日 | 7/3/2001 | [日付]。[日付]。[すべての期間] | 3 |
MDX クエリ デザイナーのグラフィカル モードを使用して作成される既定の MDX クエリに、ディメンション プロパティとして含まれるのは MEMBER_CAPTION と UNIQUENAME のみです。 既定では、これらの値は常にデータ型 Stringです。
メンバー プロパティの元のデータ型を保持する必要がある場合は、テキスト ベースのクエリ デザイナーで既定の MDX ステートメントを変更することによって、追加のプロパティ MEMBER_VALUE を含めることができます。 次の単純な MDX ステートメントでは、取得するディメンション プロパティのリストに MEMBER_VALUE が追加されています。
SELECT NON EMPTY {[Measures].[Order Count]} ON COLUMNS,
NON EMPTY { ([Date].[Month of Year].[Month of Year] ) }
DIMENSION PROPERTIES
MEMBER_CAPTION, MEMBER_UNIQUE_NAME, MEMBER_VALUE ON ROWS
FROM [Adventure Works]
CELL PROPERTIES
VALUE, BACK_COLOR, FORE_COLOR,
FORMATTED_VALUE, FORMAT_STRING,
FONT_NAME, FONT_SIZE, FONT_FLAGS
MDX 結果ペインに表示された結果の最初の 4 行を次の表に示します。
| 年間の月 | 注文数 |
|---|---|
| 1月 | 2,481 |
| 2 月 | 2,684 |
| 3 月 | 2,749 |
| 4 月 | 2,739 |
プロパティは MDX の SELECT ステートメントに含まれていますが、結果セット列には表示されません。 そこで、拡張プロパティ機能を使用すると、データをレポートに使用することができます。 SQL Server Management Studioの MDX クエリ結果ペインで、セルをダブルクリックすると、セルのプロパティ値が表示されます (キューブ内で設定されている場合)。 1,379 という値が格納されている最初の Order Count セルをダブルクリックすると、ポップアップ ウィンドウに次のセル プロパティが表示されます。
| プロパティ | 価値 |
|---|---|
| CellOrdinal | 0 |
| 価値 | 2481 |
| 背景色 | (null) |
| FORE_COLOR | (null) |
| フォーマットされた値 | 2,481 |
| FORMAT_STRING | #,# |
| FONT_NAME | (null) |
| フォントサイズ | (null) |
| FONT_FLAGS | (null) |
このクエリを使用してレポート データセットを作成し、データセットをテーブルにバインドすると、フィールドの既定の VALUE プロパティが表示されます (たとえば =Fields!Month_of_Year!Value)。 この式をテーブルの並べ替え式として設定した場合、[値] フィールドには String データ型が使用されるため、結果は月単位でアルファベット順にテーブルを並べ替えます。 月がカレンダー順に並ぶ (つまり、January が先頭に来て December が最後に来る) ようにテーブルを並べ替えるには、次の式を使用します。
=Fields!Month_of_Year("MEMBER_VALUE")
これにより、データ ソースの元の整数データ型に基づいてフィールドの値が並べ替えられます。
こちらもご覧ください
式 (レポート ビルダーおよび SSRS)
式で使用される組み込みコレクション (レポート ビルダーおよび SSRS)
データセット フィールド コレクション (レポート ビルダーおよび SSRS)