Последняя версия DataExpress 3 beta от 15 июня 2019 года.
Изображение Скачать | Изображение Что нового?
См. также: Энциклопедия DX | Форум на develop-soft | Песочница
ИзображениеИзображениеИзображение

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

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

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

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

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

kok80
Опытный
Сообщения: 256
Зарегистрирован: Пн июл 02, 2018 9:45 pm
Благодарил (а): 1 раз
Поблагодарили: 6 раз

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

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

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

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

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

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

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

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

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

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

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