SSRS矩阵报告中格式日期/数字列中的问题

问题描述 投票:0回答:1

我的是tablix报表,带有列和值。哪些是动态生成的。

SSRS report in Report Builder

问题是,我想格式化一些日期和数字列,为此,我正在下面的给定表达式中进行尝试:

=IIf(Fields!ColumnName.Value = "Charge",
    FormatCurrency(Fields!Value.Value, 2),
    IIf(Fields!ColumnName.Value = "StartDate",
        FORMAT(CDate(Fields!Value.Value),"MM-dd-yyyy"),
    IIf(Fields!ColumnName.Value = "EndDate",
        FORMAT(CDate(Fields!Value.Value),"MM-dd-yyyy"),
        Fields!Value.Value
    )
  )
 )

OR

=Switch
(
  Fields!ColumnName.Value = "Charge", FormatCurrency(Fields!Value.Value, 2),
  Fields!ColumnName.Value = "StartDate", FORMAT(CDate(Fields!Value.Value),"MM-dd-yyyy"),
  Fields!ColumnName.Value = "EndDate", FORMAT(CDate(Fields!Value.Value),"MM-dd-yyyy"),
  true, Fields!Value.Value
)

OR

=IIF(IsNumeric(Fields!Value.Value), FormatNumber(Fields!Value.Value, 2), Fields!Value.Value)

它们都不起作用,它会正确更改数字列,然后在每列中显示#Error。

matrix reporting-services ssrs-tablix reportbuilder3.0
1个回答
0
投票

将以下自定义代码添加到您的报告中

Public Function FormatColumn(columnName As String, value AS String) As String

Select columnName
    Case "Charge" 
        Return  Format(CLng(value), "c2")
    Case "StartDate"
         Return Format(CDate(value),"MM-dd-yyyy")
    Case "EndDate"
         Return Format(CDate(value),"MM-dd-yyyy")
    Case Else  
        Return value
End Select 


End Function

将单元格表达式设置为

= Code.FormatColumn(Fields!ColumnName.Value,Fields!value.Value)
© www.soinside.com 2019 - 2024. All rights reserved.