多維度運算式 (MDX) 的資料格屬性包含有關多維度資料來源 (如 Cube) 中資料格的內容及格式的資訊。
MDX 支援 MDX SELECT 陳述式的 CELL PROPERTIES 關鍵字,擷取內建資料格屬性。 內建資料格屬性最常用來協助資料格資料的虛擬呈現方式。
CELL PROPERTIES 關鍵字語法
對 MDX CELL PROPERTIES
陳述式的 SELECT
關鍵字使用以下語法:
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 屬性的背景色彩。 如需詳細資訊,請參閱 MDX) (FORE_COLOR 和 BACK_COLOR 內容 。 |
CELL_ORDINAL |
資料集中資料格的序數。 |
FONT_FLAGS | 影響字型的位元遮罩詳細資料。 例如,值 5 代表結合了粗體 (MDFF_BOLD ) 及斜線 (MDFF_UNDERLINE ) 字型效果。 該值是以下其中一或多個常數的位元 OR 運算結果。MDFF_BOLD = 1MDFF_ITALIC = 2MDFF_UNDERLINE = 4MDFF_STRIKEOUT = 8 |
FONT_NAME | 用以顯示 VALUE 或FORMATTED_VALUE 屬性的字型。 |
FONT_SIZE | 用以顯示 VALUE 或FORMATTED_VALUE 屬性的字型大小。 |
FORE_COLOR | 用以顯示 VALUE 或FORMATTED_VALUE 屬性的前景色彩。 如需詳細資訊,請參閱 MDX) (FORE_COLOR 和 BACK_COLOR 內容 。 |
FORMAT |
與 FORMAT_STRING 相同。 |
FORMAT_STRING |
用以建立 FORMATTED_VALUE 屬性值的格式字串。 如需詳細資訊,請參閱 FORMAT_STRING CONTENTs (MDX) 。 |
FORMATTED_VALUE |
代表格式化顯示 VALUE 屬性的字元字串。 |
LANGUAGE |
將會套用 FORMAT_STRING 的地區設定。 LANGUAGE 通常用於貨幣轉換。 |
UPDATEABLE |
此值代表是否可更新資料格。 此屬性可以有下列其中一個值:MD_MASK_ENABLED (0x00000000) 可以更新儲存格。MD_MASK_NOT_ENABLED (0x10000000) 無法更新儲存格。CELL_UPDATE_ENABLED (0x00000001) 儲存格可以在資料格集中更新。CELL_UPDATE_ENABLED_WITH_UPDATE (0x00000002) 可以使用 update 語句來更新資料格。 若要更新不可寫入的分葉資料格,則該次更新可能會失敗。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資料列集。
根據預設,如果未使用 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
資料格屬性一般,呈現每個資料格 。
設定資料格屬性
儲存格屬性可以在 Microsoft SQL Server Analysis Services中設定于各種位置。 例如,您可以在 [Cube 編輯器] 的 [Cube 結構] 索引標籤上為 [Cube 編輯器] 的 [格式字串] 屬性設定為一般量值,SQL Server Data Tools (SSDT) ;您也可以針對 Cube 的 [計算] 索引標籤上定義的匯出量值設定相同的屬性;在查詢的 WITH 子句中定義的匯出量值也會在該處定義其格式字串。下列查詢示範如何在匯出量值上設定儲存格屬性:
WITH MEMBER MEASURES.CELLPROPERTYDEMO AS [Measures].[Internet Sales Amount]
, FORE_COLOR=RGB(0,0,255)
, BACK_COLOR=IIF([Measures].[Internet Sales Amount]>7000000, RGB(255,0,0), RGB(0,255,0))
, FONT_SIZE=10
, FORMAT_STRING='#,#.000'
SELECT MEASURES.CELLPROPERTYDEMO ON 0,
[Date].[Calendar Year].[Calendar Year].MEMBERS ON 1
FROM [Adventure Works]
CELL PROPERTIES VALUE, FORMATTED_VALUE, FORE_COLOR, BACK_COLOR, FONT_SIZE