Хранимая процедура включена в файл построителя отчетов типа rdl. хранимая процедура имеет много полей. Одно из полей возвращает дату (а не дату и время). Желаемый результат в отчете - показывать только дату и пустое поле, если дата не возвращается.Ошибка выражения SSRS для даты IIF с #error
С только значением поля в результате отображается пустое поле, когда дата равна нулю, иначе указана дата со значением даты и времени.
Использование IIF для проверки значения для «ничего», как показано ниже.
=IIF(Fields!myDate.Value Is Nothing,"",Fields!myDate.Value)
Выход такой же. Значение даты и времени отображается, когда доступна дата.
Попытка использования функции shortDateString() дает правильный результат при наличии даты, но #Error, когда дата НЕ присутствует. Это заявление:
=IIF(Fields!rlsPromoDate.Value Is Nothing, "",
Fields!rlsPromoDate.Value.ToShortDateString())
Приведенная ниже версия была предпринята. Однако ошибок не было, однако дата не была возвращена, но это было «Microsoft.ReportingServices.ReportProcessing.OnDemandReportObjectModel.FieldImpl».
=IIF(Fields!myDate.Value Is Nothing,"", String.Format("{0:MM/dd/yyyy}",
Fields!myDate))
Просьба сообщить, есть ли решение.
Спасибо Джеффри. Ваше решение отлично работало. –
Что касается того, почему ... 'IIF()' является функцией и, как вызов любой другой функции, все переданные ей аргументы оцениваются _allways_before_. Это включает в себя вашу попытку вызова метода 'toShortDateString()', который терпит неудачу, потому что значение, которое он вызывает, - Nothing. –