FORMATTED_VALUE屬性是以儲存格之 VALUE、FORMAT_STRING 和 LANGUAGE 屬性的互動為基礎。 本主題說明這些屬性如何互動,以建置FORMATTED_VALUE屬性。
VALUE、FORMAT_STRING、LANGUAGE 屬性
下表說明這些屬性是什麼,以協助準備我們組合使用這些屬性。
價值
單元格的未格式化值。
FORMAT_STRING
將格式範本套用至儲存格的值,以生成FORMATTED_VALUE屬性
語言
要與 FORMAT_STRING 一同套用的地區設定規範,以產生 FORMATTED_VALUE 的本地語系化版本
建構格式化值
FORMATTED_VALUE屬性是使用 VALUE 屬性中的值,並將 FORMAT_STRING 屬性中指定的格式範本套用至該值來建構。 此外,每當格式值為 named formatting literal 時,LANGUAGE 屬性規範會修改 FORMAT_STRING 的輸出,以符合指定格式的語言使用方式。 具名格式常量都是以可本地化的方式定義。 例如, "General Date" 是可以本地化的規格,而不是下列範本 "YYYY-MM-DD hh:nn:ss", ,指出無論語言規格為何,範本都會以所定義的方式呈現日期。
如果FORMAT_STRING範本與 LANGUAGE 規格之間發生衝突,則FORMAT_STRING範本會覆寫 LANGUAGE 規格。 例如,如果 FORMAT_STRING=“$ #0” 和 LANGUAGE=1034 (西班牙),且 VALUE=123.456,則 FORMATTED_VALUE=“$ 123” 而不是 FORMATTED_VALUE=“€ 123”,預期的格式會以歐元為單位,因為格式範本的值會覆寫指定的語言。
範例
下列範例顯示當 LANGUAGE 與 FORMAT_STRING 搭配使用時取得的輸出。
第一個範例說明格式化數值;第二個範例說明格式化日期和時間值。
針對每個範例,會提供多維度表達式 (MDX) 程式代碼。
with
member measures.A as 5040, FORMAT_STRING="Currency"
member measures.B as measures.A, LANGUAGE=1034
member measures.C as measures.A, LANGUAGE=1034 , FORMAT_STRING="$#,##0.00"
member measures.D as measures.A, FORMAT_STRING="Scientific"
member measures.E as measures.A, LANGUAGE=1034 , FORMAT_STRING="Scientific"
member measures.F as 0.5040, FORMAT_STRING="Percent"
member measures.G as measures.F, LANGUAGE=1034
member measures.H as 0, LANGUAGE=1034 , FORMAT_STRING="Yes/No"
member measures.I as 59, LANGUAGE=1034 , FORMAT_STRING="Yes/No"
member measures.J as 0, LANGUAGE=1034 , FORMAT_STRING="ON/OFF"
member measures.K as -312, LANGUAGE=1034 , FORMAT_STRING="ON/OFF"
Select {measures.A, measures.B, measures.C, measures.D, measures.E, measures.F, measures.G, measures.H, measures.I, measures.J, measures.K} on 0
from [Adventure Works]
cell properties VALUE, FORMAT_STRING, LANGUAGE, FORMATTED_VALUE
當上述 MDX 查詢透過伺服器和具有地區設定 1033 的用戶端使用 SQL Server Management Studio 執行時,結果會轉置如下:
| 會員 | FORMATTED_VALUE | 說明 |
|---|---|---|
| 一個 | $5,040.00 | FORMAT_STRING 設定為 Currency ,且 LANGUAGE 是 1033,繼承自系統地區設定值 |
| B | €5.040,00 | FORMAT_STRING 被設定為 Currency (繼承自 A),且 LANGUAGE 明確設定為 1034 (西班牙),因此使用了歐元符號、不同的小數點分隔符和不同的千位數分隔符。 |
| C | $5.040,00 | FORMAT_STRING 會設定為 $#,##0.00 覆寫從 A 的貨幣設定,而 LANGUAGE 會明確設定為 1034(西班牙)。 由於 FORMAT_STRING 屬性明確將貨幣符號設定為 $,因此FORMATTED_VALUE會顯示 $ 符號。 不過,因為 . (點)和(逗號)是小數分隔符和 , 千位分隔符的佔位元元,語言規格會影響它們產生針對小數點和千位分隔符本地化的輸出。 |
| D | 5.04E+03 | FORMAT_STRING 設定為 Scientific ,且 LANGUAGE 設定為 1033,繼承自系統地區設定值,因此 . (dot) 是小數分隔符。 |
| E | 5,04E+03 | FORMAT_STRING設定為 Scientific ,且明確將 LANGUAGE 設定為 1034, ,因此 , (逗號) 是小數分隔符。 |
| F | 50.40% | FORMAT_STRING 設定為 Percent ,且 LANGUAGE 設定為 1033,繼承自系統地區設定值,因此 . (dot) 是小數分隔符。請注意,VALUE 已從 5040 變更為 0.5040 |
| G | 50,40% | FORMAT_STRING設定為 Percent,繼承自 F,且 LANGUAGE 明確設定為 1034 ,因此 , (逗號) 是小數分隔符。請注意,VALUE 繼承自 F 值。 |
| H | 否 | FORMAT_STRING設定為 ,VALUE 會設定為 YES/NO0,且 LANGUAGE 已明確設定為 1034;因為英文 NO 與西班牙文之間沒有差異,因此使用者在FORMATTED_VALUE中看不到任何差異。 |
| 我 | 國際單位制 | FORMAT_STRING設定為 YES/NO,VALUE 會設定為 59,且 LANGUAGE 已明確設定為 1034;如針對 YES/NO 格式定義,與零 (0) 不同的任何值都是 YES,而且因為語言設定為西班牙文,因此FORMATTED_VALUE為 SI。 |
| J | Desactivado | FORMAT_STRING設為 ON/OFF,VALUE 會設定為 0,且 LANGUAGE 已明確設定為 1034;如針對 ON/OFF 格式定義,任何等於零 (0) 的值都是 OFF,而且因為語言設定為西班牙文,因此FORMATTED_VALUE為 Desactivado。 |
| K | Activado | FORMAT_STRING設定為 ON/OFF,VALUE 會設定為 -312 且 LANGUAGE 已明確設定為 1034;如針對 ON/OFF 格式定義,與零 (0) 不同的任何值都是 ON,而且因為語言設定為西班牙文,因此FORMATTED_VALUE為 Activado。 |
with
member measures.A as 'CDate("1959-03-12 06:30")'
member measures.B as measures.A, FORMAT_STRING="Long Date"
member measures.C as measures.A, LANGUAGE=1034 , FORMAT_STRING="General Date"
member measures.D as measures.A, LANGUAGE=1034, FORMAT_STRING="Long Date"
member measures.E as measures.A, LANGUAGE=1041 , FORMAT_STRING="General Date"
member measures.F as measures.A, LANGUAGE=1041 , FORMAT_STRING="Long Date"
member measures.G as measures.A, FORMAT_STRING="Long Time"
member measures.H as measures.A, FORMAT_STRING="Short Time"
member measures.I as measures.A, LANGUAGE=1034 , FORMAT_STRING="Long Time"
member measures.J as measures.A, LANGUAGE=1034 , FORMAT_STRING="Short Time"
member measures.K as measures.A, LANGUAGE=1041 , FORMAT_STRING="Long Time"
member measures.L as measures.A, LANGUAGE=1041 , FORMAT_STRING="Short Time"
Select {measures.A, measures.B, measures.C, measures.D, measures.E, measures.F
, measures.G, measures.H, measures.I, measures.J, measures.K, measures.L} on 0
from [Adventure Works]
cell properties VALUE, FORMAT_STRING, LANGUAGE, FORMATTED_VALUE
當上述 MDX 查詢透過伺服器和具有地區設定 1033 的用戶端使用 SQL Server Management Studio 執行時,結果會轉置如下:
| 會員 | FORMATTED_VALUE | 說明 |
|---|---|---|
| 一個 | 1959/3/12 上午 6:30:00 | CDate() 表示式會將 FORMAT_STRING 隱式設定為 General Date,且 LANGUAGE 是來自系統地區設定值的 1033(英文) |
| B | 1959 年 3 月 12 日星期四 | FORMAT_STRING明確設定為 Long Date ,且 LANGUAGE 是 1033 (英文),繼承自系統地區設定值 |
| C | 12/03/1959 6:30:00 | FORMAT_STRING 已被明確設定為 General Date,而 LANGUAGE 則明確設定為 1034(西班牙文)。請注意,美國格式中的月和日會互換順序。 |
| D | jueves, 12 de marzo de 1959 | FORMAT_STRING已明確設定為 Long Date ,且 LANGUAGE 已明確設定為 1034 (西班牙文)。請注意,一周中的月和日會以西班牙文來措辭 |
| E | 1959/03/12 6:30:00 | FORMAT_STRING已明確設定為 General Date ,且 LANGUAGE 已明確設定為 1041 (日文)。請注意,日期現在格式化為 Year/Month/Day Hour:Minutes:Seconds |
| F | 1959年3月12日 | FORMAT_STRING 明確設定為 Long Date,LANGUAGE 也明確設定為 1041(日文)。 |
| G | 上午 6:30:00 | FORMAT_STRING明確設定為 Long Time ,且 LANGUAGE 是 1033 (英文),繼承自系統地區設定值。 |
| H | 06:30 | FORMAT_STRING明確設定為 Short Time ,且 LANGUAGE 是 1033 (英文),繼承自系統地區設定值。 |
| 我 | 6:30:00 | FORMAT_STRING明確設定為 Long Time ,且 LANGUAGE 明確設定為 1034 (西班牙文)。 |
| J | 06:30 | FORMAT_STRING明確設定為 Short Time ,且 LANGUAGE 明確設定為 1034 (西班牙文)。 |
| K | 6:30:00 | FORMAT_STRING已明確設定為 Long Time ,且明確將 LANGUAGE 設定為 1041 (日文)。 |
| L | 06:30 | FORMAT_STRING已明確設定為 Short Time ,且明確將 LANGUAGE 設定為 1041 (日文)。 |
另請參閱
FORMAT_STRING 內容(MDX)
使用儲存格屬性 (MDX)
建立與使用屬性值 (MDX)
MDX 查詢概念基礎 (分析服務)