共用方式為


使用儲存格屬性 (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_命令列

MDACTION_TYPE_PROPRIETARY

MDACTION_TYPE_REPORT

MDACTION_TYPE_DRILLTHROUGH



注意:鑽透動作不包含在包含集合的 where 子句查詢中。
BACK_COLOR 用於顯示 VALUEFORMATTED_VALUE 屬性的背景色彩。 如需詳細資訊,請參閱 FORE_COLOR和BACK_COLOR內容 (MDX)
CELL_ORDINAL 數據集中單元格的序號。
FONT_FLAGS 字型上的位掩碼詳細數據效果。 例如,值 5 代表粗體 (MDFF_BOLD) 和底線 (MDFF_UNDERLINE) 字型效果的組合。 值是下列一或多個常數的位元或運算結果:

MDFF_BOLD = 1

MDFF_ITALIC = 2

MDFF_UNDERLINE = 4

MDFF_STRIKEOUT = 8
FONT_NAME 要用來顯示VALUEFORMATTED_VALUE屬性所需的字型。
FONT_SIZE 用於顯示VALUEFORMATTED_VALUE屬性的字型大小。
FORE_COLOR 顯示 VALUEFORMATTED_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 (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_ORDINALFORMATTED_VALUEVALUE 儲存格的屬性。 所有儲存格屬性內建或提供者特定,都會定義在 PROPERTIES 架構數據列集中,包括其數據類型和提供者支援。 如需架構數據 PROPERTIES 列集的詳細資訊,請參閱 MDSCHEMA_PROPERTIES數據列集

根據預設,如果未 CELL PROPERTIES 使用 關鍵詞,傳回的單元格屬性會是 VALUEFORMATTED_VALUECELL_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 中設定。 例如,您可以在 SQL Server Data Tools 中的 Cube 編輯器的 [Cube 結構] 索引標籤上,為一般量值設定 [格式字串] 屬性;同樣的屬性也可以在 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  

另請參閱

MDX 查詢概念基礎 (分析服務)