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

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

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

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

即 1.5 格式到 $1.50

【问题讨论】:

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

标签: reporting-services formatting


【解决方案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属性来设置负数显示和小数位设置。

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

【讨论】:

    【解决方案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() 函数,而是在设计时将代码放入“数字 - > 格式”文本框中,并且在任何地方都找不到代码列表!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多