Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Фильтр DevExpress - как в качестве второго параметра использовать объект данных? / 12 сообщений из 12, страница 1 из 1
28.10.2017, 12:52:25
    #39543659
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр DevExpress - как в качестве второго параметра использовать объект данных?
Всем привет.

Исходные данные.

DevExpress, построитель фильтра. В данном случае в фильтр попадают записи, название которых (поле Product) начинается Express и с датой заказа (поле Order Date) меньшей, чем 28 октября 2017 года:
...
Рейтинг: 0 / 0
28.10.2017, 12:53:15
    #39543660
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр DevExpress - как в качестве второго параметра использовать объект данных?
Вопрос:

Как заставить DevExpress-овский фильтр в качестве второго параметра условия использовать не константы, а объекты данных?

Например, чтобы выбрать записи, у которых дата заказа (поле Order Date) меньше даты поставки (поле Delivery Date).

PS: возможно, в современных DevExpress такая возможность уже есть? (у меня Delphi 2007 + DevExpress от 2011 года).
...
Рейтинг: 0 / 0
28.10.2017, 12:56:01
    #39543661
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр DevExpress - как в качестве второго параметра использовать объект данных?
У фильтра никак. Но можно AutoCalc поле добавить в датасет, где и писать эти условия, после чего в фильтре они будут в виде типа "да/нет".
...
Рейтинг: 0 / 0
28.10.2017, 13:11:11
    #39543664
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр DevExpress - как в качестве второго параметра использовать объект данных?
JaDiУ фильтра никак. Но можно AutoCalc поле добавить в датасет, где и писать эти условия, после чего в фильтре они будут в виде типа "да/нет".
Больно страшные костыли: или "в коде" заранее список условий определять, или отдельный редактор для них... :(

PS: понятно, что моя хотелка добавит гемора разработчикам. Например, легко построить фильтр, который тупо не компилируется из-за недопустимых типов данных операндов, или при вычислении условия фильтрации вылетает исключение... Однако, имхо, сие легко обрабатывается известными методами и было бы полезно во многих практических случаях.
...
Рейтинг: 0 / 0
28.10.2017, 13:15:20
    #39543665
Жытель Гондураса
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр DevExpress - как в качестве второго параметра использовать объект данных?
Разработчекам давно пора интегрировать в их библиотеку компонент типа FastScript
...
Рейтинг: 0 / 0
28.10.2017, 13:24:52
    #39543667
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр DevExpress - как в качестве второго параметра использовать объект данных?
Хотя, может что-то и можно костыльного сделать:
- вот тут есть вариант добавления своего типа фильтра (можно добавить фильтра типа "колонка с датой" больше-меньше и варианты значений типа "даты заказа, даты доставки, даты выполнения".
- техподдержка говорит, что нельзя колонку с колонкой сравнивать , но можно сделать OnFilterRecord и вручную условия обрабатывать (как раз под тот кастомный фильтр из первой ссылки).

Будет или нет работать -- не знаю. Любители поэкспериментировать -- вперед, вдруг что и получится.
...
Рейтинг: 0 / 0
28.10.2017, 13:35:50
    #39543671
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр DevExpress - как в качестве второго параметра использовать объект данных?
Было бы очень хорошо для интерактивного фильтра ввести возможность указывать, что требуются параметризованные данные. Сие, возможно, не так полезно при работе с гридами, но часто было бы полезно при формировании отчетов (например).

Например, вот мой визуальный фильтр "внутри" FastReport-а, здесь одно из условий фильтрации (для поля Док_REQ_LOCKED) помечено галкой "параметр":
...
Рейтинг: 0 / 0
28.10.2017, 13:36:39
    #39543672
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр DevExpress - как в качестве второго параметра использовать объект данных?
В дальнейшем значение параметра можно задать при формировании отчета либо вручную (в скрипте), либо автоматически (формируется форма ввода параметров):
...
Рейтинг: 0 / 0
28.10.2017, 13:41:30
    #39543673
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр DevExpress - как в качестве второго параметра использовать объект данных?
С отчетом, наверное, я неудачный пример привел: все же, "обычный" юзер неспособен создавать отчеты, тут куда гуманее было бы просто предоставить возможность работать с SQL запросами. Если модель данных системы сие позволяет, конечно. В примере выше - точно не позволяет, ибо EAV и некоторым проще застрелиться, чем построить запрос без виджетов.
...
Рейтинг: 0 / 0
28.10.2017, 13:55:13
    #39543675
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр DevExpress - как в качестве второго параметра использовать объект данных?
Жытель ГондурасаРазработчекам давно пора интегрировать в их библиотеку компонент типа FastScript
Если пробежаться по статьям https://habrahabr.ru/company/devexpress/ - то можно заметить, что сие уже давно есть, только к Delphi оно не имеет никакого отношения... и очень похоже, что у DevExpress интерес к Delphi довольно слаб, "по сравнению".
...
Рейтинг: 0 / 0
28.10.2017, 13:57:01
    #39543676
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр DevExpress - как в качестве второго параметра использовать объект данных?
JaDiХотя, может что-то и можно костыльного сделать:
- вот тут есть вариант добавления своего типа фильтра (можно добавить фильтра типа "колонка с датой" больше-меньше и варианты значений типа "даты заказа, даты доставки, даты выполнения".
- техподдержка говорит, что нельзя колонку с колонкой сравнивать , но можно сделать OnFilterRecord и вручную условия обрабатывать (как раз под тот кастомный фильтр из первой ссылки).

Будет или нет работать -- не знаю. Любители поэкспериментировать -- вперед, вдруг что и получится.
Обе ссылки довольно старые, возможно, за 11 лет что-то изменилось.
...
Рейтинг: 0 / 0
28.10.2017, 16:11:07
    #39543696
чччД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр DevExpress - как в качестве второго параметра использовать объект данных?
чччД...возможно, за 11 лет что-то изменилось.
Загрузил актуальную демку , посмотрел документацию - вроде как движения в рассматриваемом направлении не было. :(
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Фильтр DevExpress - как в качестве второго параметра использовать объект данных? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]