Страница 1 из 2
Проверка на NULL
Добавлено: 03 апр 2014, 10:55
Golland
Добрый день! Подскажите пож. как в генераторе отчетов можно задать условие на проверку поля с типом BLOB(в базе данных MySQL) на NULL?
Re: Проверка на NULL
Добавлено: 03 апр 2014, 13:37
Aleksey
Здравствуйте,
Пожалуйста, попробуйте использовать следующее выражение:
DataSource["ColumnName"] == DBNull.Value
Спасибо.
Re: Проверка на NULL
Добавлено: 03 апр 2014, 14:58
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)} и выражение сработало. Но насколько правомерно такое использование? Спасибо.
Re: Проверка на NULL
Добавлено: 04 апр 2014, 16:03
HighAley
Здравствуйте.
Если работает, то можно использовать
Спасибо.
Re: Проверка на NULL
Добавлено: 16 фев 2017, 12:35
Golland
Здравствуйте, сейчас использую версию 2016.3.6 и на ней условие на null не работает(на версии 2015 года работало вроде как). Следующее выражение {IIF(Master_Data.CU_Phone_Code == null,"YES","No")} всегда возвращает No. Попытки записать условие с DBNull.Value также не привели к успеху. Поле CU_Phone_Code самое обычное текстовое поле. Подскажите пож. варианты решения или это баг, который нужно соответствующе оформить? Спасибо.
Re: Проверка на NULL
Добавлено: 17 фев 2017, 10:02
Vadim
Здравствуйте.
Используйте такое выражения для проверки на null
Код: Выделить всё
{IIF(Master_Data["CU_Phone_Code"] == null,"YES","No")}
Re: Проверка на NULL
Добавлено: 17 фев 2017, 16:50
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 в генераторе отчетов.
Спасибо.
Re: Проверка на NULL
Добавлено: 20 фев 2017, 15:33
Vadim
Здравствуйте.
Пример отчета для проверки на null;
- s1.PNG (20.61 КБ) 11633 просмотра
- s2.PNG (23.46 КБ) 11633 просмотра
Re: Проверка на NULL
Добавлено: 20 фев 2017, 23:02
Golland
Здравствуйте! В общем результат с использованием null неизменный и для Вашего примера. Колонки с null обрабатываются по прежнему как пустые строки.
Но удалось найти причину, по которой такое происходит.
Дело в использовании движка для построения отчетов, который устанавливается в файле stimulsoft.properties
при Engine.Type=Flex все выше перечисленные условия не работают с null, точнее работают как с пустой строкой.
А вот при использовании Engine.Type=Java все работает корректно, как показано в примере.
P.S. Писать на это отдельный баг или достаточно упоминания на форуме?
Спасибо.
Re: Проверка на NULL
Добавлено: 23 фев 2017, 15:55
Aleksey
Здравствуйте,
Спасибо за детальное описание проблемы.
Необходимо дополнительное время для анализа.
Спасибо.