2009-05-28 48 views
35

我想弄清楚報表服務中的格式(表達式作爲對象,樣式爲字符串)函數的樣式字符串。Reporting Services [SSRS]表達式的有效樣式格式字符串是什麼?

我找不到這些樣式格式字符串在哪裏記錄!

具體而言,我試圖格式化價格字段始終2位小數。

即1.5格式爲$ 1.50

+9

的答案有利於您的具體問題,但在一般情況下,你應該避免使用`=格式()`函數,而是在文本框或佔位符上設置格式。這些將採用與格式()相同的格式字符串,但導出將保留該數字的值,而不是將其轉換爲字符串。請參閱http://stackoverflow.com/questions/13180160/ssrs-2005-number-formating-int-and-double-within-one-field – 2012-11-01 15:39:17

+0

是的,如果SSRS可能不需要`Format()`函數支持字段編號格式的條件表達式。 – Baodad 2016-05-10 17:56:41

回答

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(Format(Fields!Price.Value,「C」)) – 2009-05-28 21:59:36

+0

@Jon:你是否使用「Cstr()」來追加格式化價格的價值到另一個字符串? – Sung 2009-05-29 12:34:44

1

您可以在 http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition/ReportDefinition.xsd

搜索檢查架構的xsd:複雜類型名稱= 「StyleType」

這將列出所有可能的樣式,你可以使用。

但是,具體到您的問題,您可以使用格式樣式。

格式

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()函數,而是在設計時將代碼放入「Number - > Format」文本框中,而不是在任何地方找到代碼列表! – 2013-01-18 00:17:56

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") 
1

爲該值的屬性給出格式字符串值C2,如下圖所示。

enter image description here