2009-05-28 2 views
35

Я пытаюсь выяснить строку стиля для функции Формат (выражение как объект, стиль как строка) в выражении служб Reporting Services.Каковы допустимые строки стиля форматирования для выражения служб Reporting Services [SSRS]?

Я не могу найти, где эти строки формата стиля документированы!

В частности, я пытаюсь отформатировать поле цены всегда в 2 десятичных знака.

т.е. 1,5 форматов до $ 1,50

+9

Ответы хороши для вашего конкретного вопроса, но в общем, вы должны избегать использования '= Format()' и вместо этого установите формат в текстовом поле или заполнителе. Они будут брать те же строки формата, что и 'Format()', но экспорт сохранит значение числа, а не преобразует его в строку. См. Http://stackoverflow.com/questions/13180160/ssrs-2005-number-formating-int-and-double-within-one-field –

+0

Да, нам, вероятно, не понадобится функция 'Format()', если SSRS поддерживаемых условных выражений для форматов номеров полей. – Baodad

ответ

34

Формат с валюты строки формата

=Format(Fields!Price.Value, "C") 

Это даст вам 2 знака после запятой с "$" приставкой.

Вы можете найти другие строки формата на MSDN: Adding Style and Formatting to a ReportViewer Report

+0

Это правильный ответ на мой конкретный вопрос ... Я уже пробовал это раньше, но у меня также была ошибка в моем коде, я положил CStr() внутри функции Format. Мне пришлось сменить формат (CStr (Fields! Price.Value), «C») на CStr (Формат (поля! Price.Value, «C»)) –

+0

@Jon: Используете ли вы «Cstr()», чтобы добавить значение отформатированной цены для другой строки? – Sung

+0

Примечание. Если вы хотите получить местную валюту, убедитесь, что вы правильно задали свойство языка для отчета, например. если у вас установлен язык «en-GB», то строка форматирования валюты «C» даст вам £, а не $. –

1

Вы можете проверить схему на http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition/ReportDefinition.xsd

Поиск XSD: ComplexType имя = «StyleType»

Это перечислит все возможные стили можно использовать ,

Конкретно для вашего вопроса, однако, вы можете использовать стиль Format.

Формат

Specify the data format to use for values that appear in the textbox. 

Допустимые значения по умолчанию, Номер, Дата, время, в процентах, и валюты.

Ссылка на MSDN: http://msdn.microsoft.com/en-us/library/ms251684(VS.80).aspx

+1

+1 для хороших ссылок. Я не использую функцию Format(), но вместо этого вставляю коды в текстовое поле «Число -> Формат» во время разработки и не могу найти список кодов в любом месте! –

33

Как уже упоминалось, вы можете использовать:

=Format(Fields!Price.Value, "C") 

Цифра после "C" будет указывать точность:

=Format(Fields!Price.Value, "C0") 
=Format(Fields!Price.Value, "C1") 

Вы также можете использовать Excel-style masks следующим образом:

=Format(Fields!Price.Value, "#,##0.00") 

Не проверял последний, но есть идея. Также работает с датами:

=Format(Fields!Date.Value, "yyyy-MM-dd") 
+0

удивительный наконечник. спасибо, Питер. –

+2

Спасибо, Питер! Мне нужно было отобразить до 4-х мест после десятичной точки, поэтому я смог использовать предложенную вами маску. = Format (Fields! Rate.Value, "$ ###, ###, ## 0.00 ##") – msmucker0527

1

Дает значение String формата C2 для свойств значения, как показано на рисунке ниже.

enter image description here

1

Эта ссылка имеет ссылку вы должны настроить свой собственный формат https://msdn.microsoft.com/en-us/library/0c899ak8.aspx

+0

Обратите внимание, что [ссылки только ответы не поощряются] (http://meta.stackoverflow.com/tags/link-only-answers/info), SO-ответы должны быть конечной точкой поиска решения (по сравнению с еще одной остановкой ссылок, которые со временем становятся устаревшими). Пожалуйста, подумайте о добавлении отдельного резюме здесь, сохранив ссылку в качестве ссылки. – kleopatra