次の方法で共有


Analysis Services データベースに対する拡張フィールド プロパティ (SSRS)

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")

次の表に、使用できる定義済みフィールド プロパティの一覧を示します。

Property Type 説明/有効値
Value Object フィールドのデータ値を指定します。
IsMissing Boolean フィールドが結果データセットに存在するかどうかを示します。
UniqueName String レベルの完全修飾名を返します。 たとえば、従業員の UniqueName 値は [Employee].[Employee Department].[Department].&[Sales].&[North American Sales Manager].&[272] のようになります。
BackgroundColor String データベースで定義されたフィールドの背景色を返します。
Color String データベースで定義されたアイテムの前景色を返します。
FontFamily String データベースで定義されたアイテムのフォント名を返します。
FontSize String データベースで定義されたアイテムのフォントのポイント サイズを返します。
フォント太さ String データベースで定義されたアイテムのフォントの太さを返します。
FontStyle String データベースで定義されたアイテムのフォントのスタイルを返します。
TextDecoration String データベースで定義されたアイテムの特殊なテキストの書式設定を返します。
FormattedValue String メジャーまたは主要データに対して書式設定した値を返します。 たとえば、 Sales Amount QuotaFormattedValue プロパティは、$1,124,400.00 などの通貨形式を返します。
キー Object レベルのキーを返します。
LevelNumber 整数 親子階層の場合は、レベル番号またはディメンション番号を返します。
ParentUniqueName String 親子階層の場合は、親レベルの完全修飾名を返します。

Note

レポートが実行されてそのデータセットのデータを取得する際にデータ ソース ( Analysis Services キューブなど) によってこれらの値が提供される場合にのみ、これらの拡張フィールド プロパティに対応する値が存在します。 その場合、次のセクションに示す構文を使用して、すべての式からこれらのフィールド プロパティ値を参照できます。 ただし、これらのフィールドはこのデータ プロバイダーに固有であるため、これらの値に加えた変更はレポート定義には保存されません。

拡張プロパティの例

拡張プロパティの例として、次の MDX クエリおよび結果セットには、キューブに対して定義されているディメンション属性で使用できるいくつかのメンバー プロパティが含まれています。 含まれているメンバー プロパティは、MEMBER_CAPTION、UNIQUENAME、Properties("Day Name")、MEMBER_VALUE、PARENT_UNIQUE_NAME、および MEMBER_KEY です。

この MDX クエリは、AdventureWorks2022 サンプル データベースに含まれる AdventureWorks2022 DW データベースの AdventureWorks2022 キューブに対して実行されます。

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 DateUniqueName DateDayName DateValueinOriginalDatatype DateParentUniqueName DateMemberKeyinOriginalDatatype
All Periods [Date].[Date].[All Periods] (null) (null) (null) 0
1-Jul-01 [Date].[Date].&[1] 土曜日 7/1/2001 [Date].[Date].[All Periods] 1
2-Jul-01 [Date].[Date].&[2] 月曜日 7/2/2001 [Date].[Date].[All Periods] 2
3-Jul-01 [Date].[Date].&[3] Tuesday 7/3/2001 [Date].[Date].[All Periods] 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 行を次の表に示します。

Month of Year Order Count
January 2,481
February 2,684
March 2,749
April 2,739

プロパティは MDX の SELECT ステートメントに含まれていますが、結果セット列には表示されません。 そこで、拡張プロパティ機能を使用すると、データをレポートに使用することができます。 SQL Server Management Studioの MDX クエリ結果ペインで、セルをダブルクリックすると、セルのプロパティ値が表示されます (キューブ内で設定されている場合)。 1,379 という値が格納されている最初の Order Count セルをダブルクリックすると、ポップアップ ウィンドウに次のセル プロパティが表示されます。

プロパティ
CellOrdinal 0
2481
BACK_COLOR (null)
FORE_COLOR (null)
FORMATTED_VALUE 2,481
FORMAT_STRING #,#
FONT_NAME (null)
FONT_SIZE (null)
FONT_FLAGS (null)

このクエリを使用してレポート データセットを作成し、データセットをテーブルにバインドすると、フィールドの既定の VALUE プロパティが表示されます (たとえば =Fields!Month_of_Year!Value)。 Value フィールドでは String データ型が使用されるので、この式をテーブルの並べ替え式として設定した場合、テーブルは月のアルファベット順に並べ替えられます。 月がカレンダー順に並ぶ (つまり、January が先頭に来て December が最後に来る) ようにテーブルを並べ替えるには、次の式を使用します。

=Fields!Month_of_Year("MEMBER_VALUE")  

これにより、データ ソースの元の整数データ型に基づいてフィールドの値が並べ替えられます。