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 15:07:25
энди, вот в том-то и дело, что я хочу так же, как и в десктопном приложении и не тянуть 100к записей:
1. Есть какие-то первоначальные параметры поиска, по которым строится кляуза where. Полей в таблице много, но по всем полям нет поиска, а только по основным.
2. В общем, выполняется выборка только нужных данных из базы. Допустим, из базы в сетку загрузилось 50-100 записей.
3. В сетке теперь можно выполнять дополнительную локальную фильтрацию этих 100 записей. И уже без обращения к серверу БД - локальная фильтрация.
Я смотрю примеры и их форум, и там всё сводится к UniEdit`ам, которые встроены в заголовки столбцов, где нужно ручками вводить текст, дату и цифры, вместо того, чтобы сделать 2-4 щелчка мышкой по выпадающему checkListCombobox`у. А в checkListCombobox будут только конкретные 2-5 значений.