Последняя версия DataExpress 3 beta от 2 ноября 2018 года. Скачать. Энциклопедия DX. Форум на Develop-Soft

поиск/фильтр с ИЛИ по нескольким полям

Все о том как сделать что-то с помощью скриптов.
Аватара пользователя
Гocть
Эксперт
Сообщения: 1265
Зарегистрирован: Пн ноя 27, 2017 8:02 am

Re: поиск/фильтр с ИЛИ по нескольким полям

Сообщение Гocть » Пт сен 14, 2018 10:16 pm

Поле объекта заполняется динамически и не хранит значение. Адрес "родителя" у него хранится в свойстве TdxObjectField.ObjId, значение которого указывает на TdxLookupComboBox.id.
Фрилансер. Разработка на заказ. Консультирование.

kok80
Интересующийся
Сообщения: 65
Зарегистрирован: Пн июл 02, 2018 9:45 pm

Re: поиск/фильтр с ИЛИ по нескольким полям

Сообщение kok80 » Пт сен 14, 2018 10:41 pm

Так как построить фильтр?

В базе открываю фильтр, выбираю "Поле объекта15", устанавливаю значение - все ок

В коде пишу fm.openrecords('[Поле объекта15]==("x")',true) - получаю EIBDataBaseError/ SQL error code = -104

Аватара пользователя
admin
Разработчик
Сообщения: 3898
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская

Re: поиск/фильтр с ИЛИ по нескольким полям

Сообщение admin » Пн сен 17, 2018 8:14 am

Так должно работать: fm.openrecords('[объект|Поле объекта]==("x")',true). Но проблема в том, что на форме "Поле объекта" может иметь другое имя.
admin писал(а):
kok80 писал(а):Вопрос: почему при вводе 0 (ноль) поиск не работает ? запись "одесса/украина/22/31.12.1999" остается ?

Очень странно. Возможно ошибка в программе.

Операция "==" (а точнее SQL-операция "CONTAINING") делает неявное преобразование числа в текст. Например, число "25" становится "25.0000..." (точное количество нулей не помню). Поэтому и кажется, что фильтр не работает.