2013-08-16 2 views
3

Я делаю отчет RDLC в VS 2012 (ASP.net, C#) и пытаюсь показать поле yes/no. Наши тестовые данные имеют нулевое значение в этом поле, которое я хочу показать как нет. По всем исследованиям я нашел (включая SO), код для этого:IsNothing() в VS2012 Отчет SSRS вызывает ошибку

=iif(IsNothing(Fields!prior_supplier.Value), "No", iif(Fields!prior_supplier.Value = "Y", "Yes", "No")) 

(Это будет отражено в отчете, как: «Возможно, мы используем этот поставщик, прежде чем нет» .)

Однако содержимое вызова IsNothing() продолжает выходить из строя. У меня есть индикатор «не удалось скомпилировать» в построителе выражений, а результат в отчете: #Error.

Как исправить выражение IsNothing()? Что я неправильно понял?

ETA: Возможно, это связано с тем, что выражение работает в VB и не замыкается?

ETA2: Я бросил поле before_supplier в текстовое поле, чтобы убедиться. Полученное выражение =Fields!prior_dod_supplier.Value также не удалось скомпилировать. : Путать:

+0

Вы пытаетесь смешивать VB.NET и C# в одном файле? – Tim

+0

Не то, чтобы я знал. Это выражение находится внутри файла RDLC. –

+0

Раньше не работали с SSRS, но какой язык используется для остальной части файла RDLC? Эквивалент вышеприведенного в C# был бы чем-то вроде '= Fields! Prior_supplier.Value == null? «Нет»: Поля! Before_supplier.Value == «Y»? «Да»: «Нет»; « – Tim

ответ

2

Я изменил поле зрения выражению

ISNULL(prior_supplier, 'N') AS prior_supplier 

Затем используется в докладе выражение

=iif(Fields!prior_supplier.Value = "Y", "Yes", "No") 

Это решается вопрос #ERROR.

Смежные вопросы