FORMATTED_VALUE属性是基于单元格中VALUE、FORMAT_STRING和LANGUAGE属性之间的相互作用。 本主题说明这些属性如何交互以生成FORMATTED_VALUE属性。
VALUE、FORMAT_STRING 和 LANGUAGE 属性
下表说明了这些属性是什么,可帮助我们准备将它们结合使用。
值
单元格的未格式化值。
FORMAT_STRING
应用于单元格值的格式模板,用以生成FORMATTED_VALUE属性。
语言
要与FORMAT_STRING一起应用的区域设置说明,以生成FORMATTED_VALUE的本地化版本
已构建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
在通过具有区域设置 1033 的服务器和客户端使用 SQL Server Management Studio 运行上述 MDX 查询时,转置的结果如下所示:
| 成员 | FORMATTED_VALUE | 说明 |
|---|---|---|
| 一个 | $5,040.00 | FORMAT_STRING 被设置为 Currency,LANGUAGE 是 1033,并从系统区域设置值继承。 |
| B | €5.040,00 | FORMAT_STRING设置为Currency(继承自A),语言显式设置为1034(西班牙),因此出现欧元符号、不同的小数分隔符和不同的千位分隔符。 |
| C | $5.040,00 | FORMAT_STRING 被设置为 $#,##0.00,覆盖货币格式,源自A,语言被显式设置为 1034(西班牙)。 由于FORMAT_STRING属性将货币符号显式设置为 $,因此FORMATTED_VALUE会显示 $ 符号。 但是,由于 .(点)和 ,(逗号)是小数分隔符和千位分隔符的占位符,因此语言规范会影响它们的生成,使输出在小数和千位分隔符上实现本地化。 |
| D | 5.04E+03 | FORMAT_STRING 设置为 Scientific,LANGUAGE 设置为 1033,继承自系统区域设置值,因此 . 小数点是小数分隔符。 |
| E | 5,04E+03 | FORMAT_STRING设置为 Scientific ,并且将 LANGUAGE 显式设置为 1034, ,因此 , 逗号是小数分隔符。 |
| F | 50.40% | FORMAT_STRING 设置为 Percent,LANGUAGE 设置为 1033,它们继承自系统区域设置值,因此 . (点)是小数分隔符。请注意,VALUE 已从 5040 更改为 0.5040 |
| G | 50,40% | FORMAT_STRING设置为Percent,从 F 继承,并且LANGUAGE显式地设置为1034,因此,(逗号)是小数分隔符。请注意,VALUE 是从 F 值继承的。 |
| H | 否 | FORMAT_STRING 设置为 YES/NO,VALUE 设置为 0,并且 LANGUAGE 被显式设置为 1034;因为英语的“NO”和西班牙语的“NO”之间没有区别,所以用户在 FORMATTED_VALUE 中看不到任何区别。 |
| 我 | 国际单位制 | FORMAT_STRING设置为 YES/NO59,VALUE 设置为 59,并且语言已显式设置为 1034;根据 YES/NO 格式定义,与零(0)不同的任何值都是 YES,因为语言设置为西班牙语,因此FORMATTED_VALUE为 SI。 |
| J | 已禁用 | FORMAT_STRING设置为 ON/OFF0,VALUE 设置为 0,并且语言被显式设置为 1034;根据 ON/OFF 格式定义,任何等于零(0)的值都是 OFF,因为语言设置为西班牙语,因此FORMATTED_VALUE为 Desactivado。 |
| K | 已激活 | 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
在通过具有区域设置 1033 的服务器和客户端使用 SQL Server Management Studio 运行上述 MDX 查询时,转置的结果如下所示:
| 成员 | FORMATTED_VALUE | 说明 |
|---|---|---|
| 字母 A | 1959/3/12 上午 6:30:00 | FORMAT_STRING由 CDate() 表达式隐式设置为 General Date ,语言是从 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,语言显式设置为 1034(西班牙语)。请注意,一周中的月和日用西班牙语进行措辞 |
| E | 1959/03/12 6:30:00 | FORMAT_STRING 已被显式设置为 General Date,而 LANGUAGE 则是显式 1041(日语)。请注意,日期现在的格式为 年/月/日 时:分:秒 |
| 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 查询基础 (分析服务)