Взаимодействие свойств LANGUAGE и FORMAT_STRING для построения свойства FORMATED_VALUE
Свойство FORMATTED_VALUE основано на взаимодействии свойств ячейки VALUE, FORMAT_STRING и LANGUAGE. В этом разделе объясняется, как эти свойства взаимодействуют для построения свойства FORMATTED_VALUE.
Свойства VALUE, FORMAT_STRING, LANGUAGE
В следующей таблице описано, что представляют собой эти свойства. Эти сведения помогут сочетать указанные свойства.
VALUE
Неформатированное значение ячейки.FORMAT_STRING
Шаблон форматирования, применяемый к значению ячейки для создания свойства FORMATTED_VALUELANGUAGE
Спецификация языкового стандарта, применяемая вместе со свойством FORMAT_STRING для создания локализованной версии свойства FORMATTED_VALUE
Построение свойства FORMATTED_VALUE
Свойство FORMATTED_VALUE строится с помощью значения свойства VALUE и применения шаблона формата, указанного в свойстве FORMAT_STRING для этого значения. Кроме того, если значением форматирования является named formatting literal, то спецификация свойства LANGUAGE изменяет вывод свойства FORMAT_STRING так, чтобы следовать языку значения «named formatting». Все значения «named formatting literal» определяются так, что их можно локализовать. Например, "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.
В первом примере показано форматирование численных значений. Во втором примере показано форматирование значений даты и времени.
Для каждого примера дан код многомерного выражения.
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
Результаты в транспонированном виде выглядят следующим образом, если приведенный выше запрос многомерных выражений запускался с помощью среды Среда SQL Server Management Studio через сервер, а языковый стандарт клиента равен 1033.
Элемент |
FORMATTED_VALUE |
Объяснение |
---|---|---|
А |
$5,040.00 |
Свойство FORMAT_STRING имеет значение Currency, свойство LANGUAGE имеет значение 1033, унаследованное от значения языка системы. |
Б |
€5.040,00 |
Свойство FORMAT_STRING имеет значение Currency (унаследованное из примера А), а свойству LANGUAGE явно задано значение 1034 (испанский), следовательно, используется знак евро, другой десятичный разделитель и другой разделитель групп разрядов. |
В |
$5.040,00 |
Свойство FORMAT_STRING имеет значение $#,##0.00, переопределяющее значение Currency из примера А, а свойству LANGUAGE явно задано значение 1034 (испанский). Так как свойство FORMAT_STRING явно задает символ валюты $, свойство FORMATTED_VALUE представлено символом «$». Но так как . (точка) и , (запятая) являются местозаполнителями для десятичного разделителя и разделителя групп разрядов соответственно, то спецификация языкового стандарта влияет на них, создавая вывод, локализованный для десятичного разделителя и разделителей групп разрядов. |
Г |
5.04E+03 |
Свойство FORMAT_STRING имеет значение Scientific, свойство LANGUAGE имеет значение 1033, унаследованное от значения языка системы, следовательно, десятичным разделителем является . (точка). |
Д |
5,04E+03 |
Свойство FORMAT_STRING имеет значение Scientific, а свойству LANGUAGE явно присвоено значение 1034,, следовательно, десятичным разделителем является , (запятая). |
Е |
50.40% |
Свойство FORMAT_STRING имеет значение Percent, свойство LANGUAGE имеет значение 1033, унаследованное от значения языка системы, следовательно, десятичным разделителем является . (точка). Обратите внимание, что VALUE было изменено с 5040 на 0.5040. |
Ж |
50,40% |
Свойство FORMAT_STRING имеет значение Percent, унаследованное из примера Е, а свойству LANGUAGE явно присвоено значение 1034, следовательно, десятичным разделителем является , (запятая). Обратите внимание, что VALUE было унаследовано из значения в примере Е. |
З |
Нет |
Свойство FORMAT_STRING имеет значение YES/NO, свойству VALUE присвоено значение 0, а свойству LANGUAGE явно задано значение 1034. Так как нет отличия между английским «NO» и испанским «NO», пользователь не увидит отличий в значениях свойства FORMATTED_VALUE. |
И |
SI |
Свойство FORMAT_STRING имеет значение YES/NO, свойству VALUE присвоено значение 59, а свойству LANGUAGE явно присвоено значение 1034. Как определено форматированием YES/NO, любое значение, отличное от нуля (0), является значением «YES», и, так как указан испанский язык, свойство FORMATTED_VALUE имеет значение «SI». |
К |
Desactivado |
Свойство FORMAT_STRING имеет значение ON/OFF, свойству VALUE присвоено значение 0, а свойству LANGUAGE явно присвоено значение 1034. Как определено форматированием ON/OFF, любое значение, отличное от нуля (0), является значением «OFF», и, так как указан испанский язык, свойство FORMATTED_VALUE имеет значение «Desactivado». |
Л |
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
Результаты в транспонированном виде выглядят следующим образом, если приведенный выше запрос многомерных выражений запускался с помощью среды Среда SQL Server Management Studio через сервер, а у клиента языковый стандарт равен 1033.
Элемент |
FORMATTED_VALUE |
Объяснение |
---|---|---|
А |
3/12/1959 6:30:00 AM |
Свойству FORMAT_STRING явно присвоено значение General Date выражением CDate(). Свойство LANGUAGE имеет значение 1033 (английский), унаследованное от значения языка системы. |
Б |
Thursday, March 12, 1959 |
Свойству FORMAT_STRING явно присвоено значение Long Date. Свойство LANGUAGE имеет значение 1033 (английский), унаследованное от значения языка системы. |
В |
12/03/1959 6:30:00 |
Свойству FORMAT_STRING явно присвоено значение General Date. Свойству LANGUAGE явно присвоено значение 1034 (испанский). Обратите внимание, что месяц и день меняются местами, если сравнивать с американским стилем форматирования |
Г |
jueves, 12 de marzo de 1959 |
Свойству FORMAT_STRING явно присвоено значение Long Date. Свойству LANGUAGE явно присвоено значение 1034 (испанский). Обратите внимание, что месяц и день недели написаны на испанском |
Д |
1959/03/12 6:30:00 |
Свойству FORMAT_STRING явно присвоено значение General Date. Свойству LANGUAGE явно присвоено значение 1041 (Японский). Обратите внимание, что формат даты теперь выглядит как Год/Месяц/День Часы:Минуты:Секунды |
Е |
1959年3月12日 |
Свойству FORMAT_STRING явно присвоено значение Long Date. Свойству LANGUAGE явно присвоено значение 1041 (Японский). |
Ж |
6:30:00 AM |
Свойству FORMAT_STRING явно присвоено значение Long Time. Свойство LANGUAGE имеет значение 1033 (английский), унаследованное от значения языка системы. |
З |
06:30 |
Свойству FORMAT_STRING явно присвоено значение Short Time. Свойство LANGUAGE имеет значение 1033 (английский), унаследованное от значения языка системы. |
И |
6:30:00 |
Свойству FORMAT_STRING явно присвоено значение Long Time. Свойству LANGUAGE явно присвоено значение 1034 (испанский). |
К |
06:30 |
Свойству FORMAT_STRING явно присвоено значение Short Time. Свойству LANGUAGE явно присвоено значение 1034 (испанский). |
Л |
6:30:00 |
Свойству FORMAT_STRING явно присвоено значение Long Time. Свойству LANGUAGE явно присвоено значение 1041 (Японский). |
М |
06:30 |
Свойству FORMAT_STRING явно присвоено значение Short Time. Свойству LANGUAGE явно присвоено значение 1041 (Японский). |