我的是tablix报表,带有列和值。哪些是动态生成的。
问题是,我想格式化一些日期和数字列,为此,我正在下面的给定表达式中进行尝试:
=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。
将以下自定义代码添加到您的报告中
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)