Проблема с форматированием даты / числовых столбцов в отчете матрицы SSRS - PullRequest
0 голосов
/ 05 октября 2019

Мой - отчет таблицы, со столбцами и значениями. Которые генерируются динамически.

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

ИЛИ

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

ИЛИ

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

ни одно из них не работает, корректно изменяет числовые столбцы, а затем выдает #Error inкаждый столбец.

1 Ответ

0 голосов
/ 07 октября 2019

Добавьте следующий пользовательский код в свой отчет

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)
...