Загрузка данных в фильтры колонок, как у cxGrid

X11
Дата: 20.12.2019 12:49:13
У UniDBGrid есть возможность в заголовки колонок вставить Combobox, т.е. получить похожий функционал, как и у фильтров cxGrid в заголовках.

Например, есть колонки: дата/время, цена, ID, автор и нужно составить несколько списков (т.е. для каждой колонки сетки) из имеющихся значений того или иного столбца датасета. Можно, конечно, отдельным запросом из базы тащить все значения, но зачем, если нужны только возможные, т.е. те, которые можно выбрать из списка на клиенте?

Хорошо если только три столбца, а если их 10-20-30?

Да, можно пройтись один раз, но на каждой итерации датасета придётся всё равно обрабатывать каждую колонки сетки.

Получается, что если нужно получить возможные значения трёх колонок, то нужно три раза пробегаться по датасету?
Мало того, нужно пропускать дубликаты.
На сколько я знаю, нету ведь способа получить легко и быстро, и, главное, без особых затрат на паять и процессор все значения нужно нам столбца в один список типа TStrings?

Буду благодарен за идеи и/или примеры, как лучше и правильней организовать наполнение фильтров.
энди
Дата: 20.12.2019 14:53:55
Есть комбобокс с режимом remotequery, т.е начинаешь набирать, он проваливается в обработчик в котором вы сами можете поменять содержимое контрола.
Но вообще начинайте отучаться мыслить категориями "как было в десктопе", что значит 10-20-30 колонок, может вам еще и 100к записей в режиме fetchall в грид запихать? :)
X11
Дата: 20.12.2019 14:58:45
Оказывается в библиотеке нет чего-то похожего на checkListCombobox Картинка с другого сайта.
X11
Дата: 20.12.2019 15:07:25
энди, вот в том-то и дело, что я хочу так же, как и в десктопном приложении и не тянуть 100к записей:
1. Есть какие-то первоначальные параметры поиска, по которым строится кляуза where. Полей в таблице много, но по всем полям нет поиска, а только по основным.
2. В общем, выполняется выборка только нужных данных из базы. Допустим, из базы в сетку загрузилось 50-100 записей.
3. В сетке теперь можно выполнять дополнительную локальную фильтрацию этих 100 записей. И уже без обращения к серверу БД - локальная фильтрация.

Я смотрю примеры и их форум, и там всё сводится к UniEdit`ам, которые встроены в заголовки столбцов, где нужно ручками вводить текст, дату и цифры, вместо того, чтобы сделать 2-4 щелчка мышкой по выпадающему checkListCombobox`у. А в checkListCombobox будут только конкретные 2-5 значений.
DimaBr
Дата: 20.12.2019 15:44:40
Три раза прочитал стартпост и так и не понял что нужно

автор
Оказывается в библиотеке нет чего-то похожего на checkListCombobox

А это что ?
Картинка с другого сайта.
X11
Дата: 20.12.2019 15:56:05
Выпадающий список с чекбоксами.
Как фильтры в cxGrid
X11
Дата: 20.12.2019 15:56:35
DimaBr
А это что ?


это cxGrid, а я про UniGui
X11
Дата: 20.12.2019 16:00:33
DimaBr
Три раза прочитал стартпост и так и не понял что нужно


Нужно в UniGUI в TUniDBGrid реализовать такие же фильтры, как и в cxGrid.
энди
Дата: 20.12.2019 16:03:24
ну припоминаю что народ лепил что-то сторонее, типа вот такого
X11
Дата: 20.12.2019 16:03:46
X11
Оказывается в библиотеке нет чего-то похожего на checkListCombobox Картинка с другого сайта.


оказалось, что есть похожее - TUniTreeView в режиме UseCheckBox