使用資料格屬性 (MDX)
多維度運算式 (MDX) 的資料格屬性包含有關多維度資料來源 (如 Cube) 中資料格的內容及格式的資訊。
MDX 支援 MDX SELECT 陳述式的 CELL PROPERTIES 關鍵字,擷取內建資料格屬性。內建資料格屬性最常用來協助資料格資料的虛擬呈現方式。
CELL PROPERTIES 關鍵字語法
對 MDX SELECT 陳述式的 CELL PROPERTIES 關鍵字使用以下語法:
SELECT [<axis_specification>
[, <axis_specification>...]]
FROM [<cube_specification>]
[WHERE [<slicer_specification>]]
[<cell_props>]
以下語法顯示 <cell_props>
值的格式,以及此值如何將 CELL PROPERTIES 關鍵字與一或多個內建資料格屬性搭配使用:
<cell_props> ::= CELL PROPERTIES <property> [, <property>...]
支援的內建資料格屬性
下表會將 <property>
值中使用的支援內建資料格屬性列出。
屬性
描述
ACTION_TYPE
代表存在於資料格上動作類型的位元遮罩。此屬性可以有下列其中一個值:
- MDACTION_TYPE_URL
- MDACTION_TYPE_HTML
- MDACTION_TYPE_STATEMENT
- MDACTION_TYPE_DATASET
- MDACTION_TYPE_ROWSET
- MDACTION_TYPE_COMMANDLINE
- MDACTION_TYPE_PROPRIETARY
- MDACTION_TYPE_REPORT
- MDACTION_TYPE_DRILLTHROUGH
附註:
包含 where 子句中之集合的查詢,不包括鑽研動作。
BACK_COLOR
用以顯示 VALUE 或FORMATTED_VALUE 屬性的背景色彩。如需詳細資訊,請參閱<FORE_COLOR 及 BACK_COLOR 內容 (MDX)>。
CELL_ORDINAL
資料集中資料格的序數。
FONT_FLAGS
影響字型的位元遮罩詳細資料。該值是以下其中一或多個常數的位元 OR 運算結果。
- MDFF_BOLD = 1
- MDFF_ITALIC = 2
- MDFF_UNDERLINE = 4
- MDFF_STRIKEOUT = 8
例如,值 5 代表結合了粗體 (MDFF_BOLD) 及斜線 (MDFF_UNDERLINE) 字型效果。
FONT_NAME
用以顯示 VALUE 或FORMATTED_VALUE 屬性的字型。
FONT_SIZE
用以顯示 VALUE 或FORMATTED_VALUE 屬性的字型大小。
FORE_COLOR
用以顯示 VALUE 或FORMATTED_VALUE 屬性的前景色彩。如需詳細資訊,請參閱<FORE_COLOR 及 BACK_COLOR 內容 (MDX)>。
FORMAT
與 FORMAT_STRING 相同。
FORMAT_STRING
用以建立 FORMATTED_VALUE 屬性值的格式字串。如需詳細資訊,請參閱<FORMAT_STRING 內容 (MDX)>。
FORMATTED_VALUE
代表格式化顯示 VALUE 屬性的字元字串。
LANGUAGE
將會套用 FORMAT_STRING 的地區設定。LANGUAGE 通常用於貨幣轉換。
UPDATEABLE
此值代表是否可更新資料格。此屬性可以有下列其中一個值:
- MD_MASK_ENABLED (0x00000000) 可以更新資料格。
- MD_MASK_NOT_ENABLED (0x00000000) 不可以更新資料格。
- CELL_UPDATE_ENABLED (0x00000001) 可以更新資料格集中的資料格。
- CELL_UPDATE_ENABLED_WITH_UPDATE (0x00000002) 可以使用更新陳述式更新資料格。若要更新不可寫入的分葉資料格,則該次更新可能會失敗。
- CELL_UPDATE_NOT_ENABLED_FORMULA (0x10000001) 因為資料格的座標間有導出成員,所以無法更新資料格;是以 where 子句中的集合擷取該資料格。即使公式會影響資料格的值 (或是啟用導出資料格),還是會更新資料格。在此案例中,因為計算將會影響到結果,所以此資料格最終的值可能不是更新的值。
- CELL_UPDATE_NOT_ENABLED_NONSUM_MEASURE (0x10000002) 因為無法更新非總和量值 (計數、最小、最大、相異計數、局部加總),所以無法更新資料格。
- CELL_UPDATE_NOT_ENABLED_NACELL_VIRTUALCUBE (0x10000003) 因為資料格不存在於量值及與量值的量值群組不相關之維度成員的交集,,所以無法更新資料格。
- CELL_UPDATE_NOT_ENABLED_SECURE (0x10000005) 因為資料格受到保護,所以無法更新資料格。
- CELL_UPDATE_NOT_ENABLED_CALCLEVEL (0x10000006) 保留以供日後使用。
- CELL_UPDATE_NOT_ENABLED_CANNOTUPDATE (0x10000007) 因為內部原因,所以無法更新資料格。
- CELL_UPDATE_NOT_ENABLED_INVALIDDIMENSIONTYPE (0x10000009) 因為採礦模型、間接或資料採礦維度中不支援更新,所以無法更新資料格。
VALUE
未格式化的資料格值。
必要的只有 CELL_ORDINAL、FORMATTED_VALUE 及VALUE 資料格屬性。PROPERTIES 結構描述資料列集中定義的所有內建或提供者特有的資料格屬性,包括它們的資料類型及提供者支援在內。如需 PROPERTIES 結構描述資料列集料表的詳細資訊,請參閱<MDSCHEMA_PROPERTIES Rowset>。
根據預設,如果未使用 CELL PROPERTIES 關鍵字,傳回的資料格屬性是 VALUE、FORMATTED_VALUE 及 CELL_ORDINAL (依序傳回)。如果使用 CELL PROPERTIES 關鍵字,只會傳回明確陳述關鍵字的那些資料格屬性。
以下範例說明 MDX 查詢中 CELL PROPERTIES 關鍵字的用法:
SELECT
{[Measures].[Reseller Gross Profit]} ON COLUMNS,
{[Reseller].[Reseller Type].[Reseller Name].Members} ON ROWS
FROM [Adventure Works]
CELL PROPERTIES VALUE, FORMATTED_VALUE, FORMAT_STRING, FORE_COLOR, BACK_COLOR
傳回單層化資料列集的 MDX 查詢不會傳回資料格屬性;在此狀況下,會如同只有傳回 FORMATTED_VALUE 資料格屬性一般,呈現每個資料格 。
設定資料格屬性
透過 [Cube 設計師] 或 [維度設計師] 上的 [計算] 索引標籤,Microsoft SQL Server 2005 Analysis Services (SSAS) 中就可以有資料格屬性。資料格屬性是以字串運算式來表示,如以下為指定成員提供的範例所示 (帶有紅色前景的黃色背景):
FORE_COLOR='255',BACK_COLOR='65535'
資料格屬性通常會積存到父成員,除非父系是具有資料格屬性的自訂成員。在此狀況下,父資料格屬性會覆寫由其子系衍生的資料格屬性。