使用 Analysis Services 資料庫的擴充欄位屬性
更新: 2006 年 4 月 14 日
SQL Server Analysis Services 資料處理延伸模組支援擴充欄位屬性。擴充欄位屬性是除了欄位屬性 Value 和 IsMissing 之外,資料來源可用而且資料處理延伸模組支援的屬性。在 [資料集] 窗格中,報表資料集的欄位集合之中不會顯示擴充屬性。若要在報表中包含擴充欄位屬性,您必須撰寫運算式,使用全域 Fields 集合指定擴充欄位屬性的名稱。
擴充屬性包括預先定義的屬性和自訂屬性。預先定義的屬性是多個資料來源共通的屬性,這類屬性會對應到特定欄位屬性名稱,而且可透過全域 Fields 集合按照名稱存取。自訂屬性則是專為各個資料提供者定義的屬性,這類屬性可透過全域 Fields 集合存取,但只能透過使用擴充屬性名稱做為字串的語法。
當您使用圖形模式的 Analysis Services MDX 查詢設計師定義查詢時,預先定義的資料格屬性和維度屬性集合就會自動加入至 MDX 查詢中。您只可以使用明確列在您報表的 MDX 查詢中的擴充屬性。依報表的不同,您或許想修改預設的 MDX 命令文字,來包括 Cube 中定義的其他維度或自訂屬性。如需 Analysis Services 資料來源中可用擴充欄位的詳細資訊,請參閱<建立和使用屬性值 (MDX)>。
使用報表中的欄位屬性
擴充欄位屬性包含預先定義的屬性和資料提供者特有的屬性。即使欄位屬性屬於資料集建立的查詢,[資料集] 視窗的欄位清單仍然不會顯示這些屬性;因此,您無法將欄位屬性拖曳到報表配置。不過,您可以將欄位拖曳到報表,然後將該欄位的 Value 屬性變更為您要使用的屬性。
若要參考未預先定義的擴充屬性,請在運算式中使用下列語法:
- Fields!FieldName("PropertyName")
預先定義的欄位屬性
在大多數情況下,預先定義的欄位屬性會套用至量值、層級或維度。預先定義的欄位屬性必須有儲存在 Analysis Services 資料來源裡的對應值。如果值不存在,或者 (例如) 您在層級上指定了僅限量值的欄位屬性,則屬性會傳回 Null 值。
您可以使用下列任一語法,從運算式參考預先定義的屬性:
- Fields!FieldName.PropertyName
- Fields!FieldName("PropertyName")
下表提供您可以使用之預先定義的欄位屬性清單。
屬性 | 類型 | 描述或預期的值 |
---|---|---|
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 |
傳回資料庫中為項目定義之字型的點數大小。 |
FontWeight |
String |
傳回資料庫中為項目定義之字型的粗細。 |
FontStyle |
String |
傳回資料庫中為項目定義之字型的樣式。 |
TextDecoration |
String |
傳回資料庫中為項目定義的特殊文字格式。 |
FormattedValue |
String |
傳回量值或關鍵數值的格式化值。例如,[銷售量配額] 的 FormattedValue 屬性會傳回貨幣格式,如 $1,124,400.00。 |
Key |
Object |
傳回層級的索引鍵。 |
LevelNumber |
Integer |
如果是父子式階層,則會傳回層級或維度編號。 |
ParentUniqueName |
String |
如果是父子式階層,會傳回父層級的完整名稱。 |
當您輸入欄位的語法,預先定義的欄位屬性就會出現在運算式編輯器的 IntelliSense。如需詳細資訊,請參閱<在運算式中使用全域集合 (Reporting Services)>。
附註: |
---|
當報表為其資料集執行及擷取資料時,只有在資料來源 (例如:Analysis Services Cube) 提供這些值的情況下,這些擴充欄位屬性的值才會存在。這樣,您就可以利用以下描述的語法,從任何運算式參考那些欄位屬性值。不過,由於這些欄位是此資料提供者的特定欄位,因此,您對這些值所作的變更不會隨同報表定義一併儲存。 |
擴充屬性範例
為了示範說明擴充屬性,下列 MDX 查詢和結果集之中包含從為 Cube 定義的維度屬性中取得的數個成員屬性。這些成員屬性包括 MEMBER_CAPTION、UNIQUENAME、Properties("Day Name")、MEMBER_VALUE、PARENT_UNIQUE_NAME 和 MEMBER_KEY。
這個 MDX 查詢會針對 AdventureWorks 範例資料庫隨附之 AdventureWorks DW 資料庫中的 AdventureWorks Cube 執行。
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 查詢窗格中執行這個查詢時,結果集會包含 1158 個資料列,其中前四個資料列如下表所示。
DateCaption | DateUniqueName | DateDayName | DateValueinOriginalDatatype | DateParentUniqueName | DateMemberKeyinOriginalDatatype |
---|---|---|---|---|---|
所有週期 |
[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] |
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 結果窗格中前四個結果資料列顯示於下表中。
Month of Year | Order Count |
---|---|
一月 |
2,481 |
二月 |
2,684 |
三月 |
2,749 |
四月 |
2,739 |
這些屬性雖然是 MDX 選取陳述式的一部分,但是卻不會出現在結果集資料行中,然而,在使用擴充屬性功能的報表中還是可以使用這些資料。在 SQL Server Management Studio 的 MDX 查詢結果窗格中,按兩下資料格即可查看資料格屬性值 (如果 Cube 中已設定的話)。如果按兩下包含 1,379 的第一個 [Order Count] 資料格,就會出現快顯視窗,內含下列資料格屬性:
屬性 | 值 |
---|---|
CellOrdinal |
0 |
VALUE |
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 資料類型。若要將資料表的排序順序設為依月份在當年出現的順序,一月最前,十二月最後,則請使用下列運算式:
=Fields!Month_of_Year("MEMBER_VALUE")
這會將欄位值依其在資料來源中的原始整數資料類型排序。
請參閱
參考
在運算式中使用全域集合 (Reporting Services)
概念
定義 Analysis Services 多維度與資料採礦預測資料的報表資料集
從 SAP NetWeaver BI 系統定義多維度資料的報表資料集
其他資源
說明及資訊
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2006 年 12 月 12 日 |
|
2006 年 4 月 14 日 |
|