Reporting Services [s-s-rS] 表达式的有效样式格式字符串是啥?

Posted

技术标签:

【中文标题】Reporting Services [s-s-rS] 表达式的有效样式格式字符串是啥?【英文标题】:What are the valid Style Format Strings for a Reporting Services [s-s-rS] Expression?Reporting Services [s-s-rS] 表达式的有效样式格式字符串是什么? 【发布时间】:2010-10-29 16:19:48 【问题描述】:

我正在尝试找出 Reporting Services 表达式中 Format(Expression as Object, Style as String) 函数的样式字符串。

我找不到这些样式格式字符串的记录位置!

具体来说,我正在尝试将价格字段格式化为始终保留 2 位小数。

即 1.5 格式到 $1.50

【问题讨论】:

答案对您的特定问题有好处,但一般来说,您应该避免使用=Format() 函数,而是在文本框或占位符上设置格式。这些将采用与Format() 相同的格式字符串,但导出将保留数字的值,而不是将其转换为字符串。见***.com/questions/13180160/… 是的,如果 s-s-rS 支持字段编号格式的条件表达式,我们可能不需要 Format() 函数。 【参考方案1】:

货币格式格式化字符串

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

它会给你 2 位小数,前缀为“$”。

你可以在 MSDN 上找到其他格式字符串:Adding Style and Formatting to a ReportViewer Report

注意:MSDN 文章已归档到“VS2005_General”文档,不再可直接在线访问。以下是引用的格式化字符串的摘录:

格式化数字

下表列出了常见的 .NET Framework 数字格式 字符串。

格式字符串,名称

C 或 c 货币

D 或 d 十进制

E 或 e 科学

F 或 f 定点

G 或 g 一般

N 或 n 个数字

P 或 p 百分比

R 或 r 往返

X 或 x 十六进制

您可以修改许多格式字符串以包含精度 定义右边的位数的说明符

小数点。例如,格式化字符串 D0 格式化 数字,使其小数点后没有数字。你

还可以使用自定义格式字符串,例如#,###。

格式化日期

下表列出了常见的 .NET Framework 日期格式 字符串。

格式字符串,名称

d 短日期

D 长日期

t 短时间

很久了

f 完整日期/时间(短时间)

F 完整日期/时间(长时间)

g 一般日期/时间(短时间)

G 一般日期/时间(长时间)

M 或 m 月日

R 或 r RFC1123 模式

Y 或 y 年月

您还可以使用自定义格式字符串;例如,日/月/年。 有关 .NET 框架的更多信息 格式化字符串,请参阅格式化类型。

【讨论】:

这是我的具体问题的正确答案...我之前尝试过,但我的代码也有错误,我在 Format 函数中放置了一个 CStr() 。我不得不将 Format(CStr(Fields!Price.Value), "C") 更改为 CStr(Format(Fields!Price.Value, "C")) @Jon: 你是否使用“Cstr()”将格式化后的价格值附加到另一个字符串中? 注意:如果您想要使用本地货币,请确保正确设置报告本身的 Language 属性,例如如果您将报告的语言设置为“en-GB”,那么货币格式字符串“C”将为您提供 £ 而不是 $。【参考方案2】:

您可以设置TextBox属性来设置负数显示和小数位设置。

    右键单击单元格,然后单击文本框属性。 选择数字,然后在类别字段中单击货币。

【讨论】:

【参考方案3】:

如前所述,您可以使用:

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

【讨论】:

谢谢彼得!我需要在小数点后最多显示 4 位,所以我可以使用你建议的掩码。 =Format(Fields!rate.Value, "$###,###,##0.00##")【参考方案4】:

为值的属性提供一个格式字符串值 C2,如下图所示。

【讨论】:

【参考方案5】:

您可以在以下位置检查架构 http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition/ReportDefinition.xsd

搜索 xsd:complexType name="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 以获得良好的链接。我没有使用 Format() 函数,而是在设计时将代码放入“数字 - > 格式”文本框中,并且在任何地方都找不到代码列表!

以上是关于Reporting Services [s-s-rS] 表达式的有效样式格式字符串是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Reporting Services报表常用的URL参数

Reporting Services 配置工具

Reporting Services 身份验证问题

Reporting Services 中的复杂图表?

双轴图 - Reporting Services 2005

Reporting Services 中的 PDF 导出问题