Проверка на NULL

Обсуждение Stimulsoft Reports.JAVA
Golland
Сообщения: 80
Зарегистрирован: 03 окт 2012, 17:03

Проверка на NULL

Сообщение Golland »

Добрый день! Подскажите пож. как в генераторе отчетов можно задать условие на проверку поля с типом BLOB(в базе данных MySQL) на NULL?
Aleksey
Сообщения: 2906
Зарегистрирован: 22 апр 2010, 06:57

Re: Проверка на NULL

Сообщение Aleksey »

Здравствуйте,

Пожалуйста, попробуйте использовать следующее выражение:
DataSource["ColumnName"] == DBNull.Value

Спасибо.
Golland
Сообщения: 80
Зарегистрирован: 03 окт 2012, 17:03

Re: Проверка на NULL

Сообщение Golland »

При использовании DBNull.Value при построении отчета возникает ошибка
Report Rendering Message. PicD Parser error: The name 'DBNull' does not exist in the current context

Я попробовал использовать просто Null вместо DBNull.Value {Switch(DetailData.PicD != Null, DetailData.PicD)} и выражение сработало. Но насколько правомерно такое использование? Спасибо.
HighAley
Сообщения: 1998
Зарегистрирован: 08 июн 2011, 11:36
Откуда: Stimulsoft Office

Re: Проверка на NULL

Сообщение HighAley »

Здравствуйте.

Если работает, то можно использовать ;)

Спасибо.
Golland
Сообщения: 80
Зарегистрирован: 03 окт 2012, 17:03

Re: Проверка на NULL

Сообщение Golland »

Здравствуйте, сейчас использую версию 2016.3.6 и на ней условие на null не работает(на версии 2015 года работало вроде как). Следующее выражение {IIF(Master_Data.CU_Phone_Code == null,"YES","No")} всегда возвращает No. Попытки записать условие с DBNull.Value также не привели к успеху. Поле CU_Phone_Code самое обычное текстовое поле. Подскажите пож. варианты решения или это баг, который нужно соответствующе оформить? Спасибо.
Vadim
Сообщения: 109
Зарегистрирован: 04 апр 2013, 12:26

Re: Проверка на NULL

Сообщение Vadim »

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

Код: Выделить всё

{IIF(Master_Data["CU_Phone_Code"] == null,"YES","No")} 
Golland
Сообщения: 80
Зарегистрирован: 03 окт 2012, 17:03

Re: Проверка на NULL

Сообщение Golland »

Здравствуйте. Перепробовал все варианты. С условием на null не работает ни один.Сделал вывод поля, в котором в качестве значения является null, следующим образом {"#"+Master_Data.CU_Phone_Code+"#"}. При построении отчета получил ##.

Изменил условие с NULL на
{IIF(Master_Data["CU_Phone_Code"] == "","YES","No")} и {IIF(Length(Master_Data["CU_Phone_Code"]) == 0,"YES","No")}

В результате получил желаемое в обоих случаях "YES". Но пустое значение и значение null все таки разные понятия.

Нашел в Report setup опцию Convert Nulls(флажок отмечен или снят). Но его использования в обоих положениях на условия с nullне дали никакого результата.

Хотелось бы узнать мнение разработчиков, какова все таки логика(политика) использования NULL в генераторе отчетов.
Спасибо.
Vadim
Сообщения: 109
Зарегистрирован: 04 апр 2013, 12:26

Re: Проверка на NULL

Сообщение Vadim »

Здравствуйте.
Пример отчета для проверки на null;
s1.PNG
s1.PNG (20.61 КБ) 11627 просмотров
s2.PNG
s2.PNG (23.46 КБ) 11627 просмотров
Вложения
null.mrt
(5.07 КБ) 716 скачиваний
Golland
Сообщения: 80
Зарегистрирован: 03 окт 2012, 17:03

Re: Проверка на NULL

Сообщение Golland »

Здравствуйте! В общем результат с использованием null неизменный и для Вашего примера. Колонки с null обрабатываются по прежнему как пустые строки.

Но удалось найти причину, по которой такое происходит.

Дело в использовании движка для построения отчетов, который устанавливается в файле stimulsoft.properties
при Engine.Type=Flex все выше перечисленные условия не работают с null, точнее работают как с пустой строкой.
А вот при использовании Engine.Type=Java все работает корректно, как показано в примере.

P.S. Писать на это отдельный баг или достаточно упоминания на форуме?

Спасибо.
Aleksey
Сообщения: 2906
Зарегистрирован: 22 апр 2010, 06:57

Re: Проверка на NULL

Сообщение Aleksey »

Здравствуйте,

Спасибо за детальное описание проблемы.
Необходимо дополнительное время для анализа.

Спасибо.
Ответить