Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 DevExpress cxGrid фильтрация и загрузка данных  [new]
Jonnik
Member

Откуда:
Сообщений: 183
Пока я использую ehlib для отображения и фильтрации данных.

Хочу попробовать перейти на cxGrid. Первое, что заметил это, что в выпадающем списке фильтров в колонке, если выбрать пару параметров фильтра и перейти в другую колонку и посмотреть, что там за варианты параметров фильтра, то там остаются все варианты фильтров до фильтрации в первой колонке. Грубо говоря, если до фильтрации в двух колонках было по 10 уникальных параметров фильтра на 100 записях, то после фильтрации по первой колонке во второй колонке должно быть меньше уникальных параметров фильтрации. Т.е. фильтры не учитываются между собой между колонками.
В DBGgridEh это работает по умолчанию. А тут может надо, что то настроить для такого варианта фильтрации ?

Потом можно ли в этот грид загрузить данные через dataset и отключиться от сервера, но данные в гриде остануться ?

Можно ли напрямую заполнять cxGrid без использования каких-то источников данных, а просто ты программно заполняешь ячейки как ты хочешь. И будут ли при это работать сортировки, фильтры и группировки ?
27 июл 20, 15:29    [22174232]     Ответить | Цитировать Сообщить модератору
 Re: DevExpress cxGrid фильтрация и загрузка данных  [new]
DimaBr
Member

Откуда:
Сообщений: 11808
то там остаются все варианты фильтров до фильтрации в первой колонке

это настраивается
Потом можно ли в этот грид загрузить данные через dataset и отключиться от сервера, но данные в гриде остануться ?

Загрузите в dxMemData или в TableView
Можно ли напрямую заполнять cxGrid без использования каких-то источников данных, а просто ты программно заполняешь ячейки как ты хочешь

можно

Сообщение было отредактировано: 27 июл 20, 15:31
27 июл 20, 15:33    [22174234]     Ответить | Цитировать Сообщить модератору
 Re: DevExpress cxGrid фильтрация и загрузка данных  [new]
Jonnik
Member

Откуда:
Сообщений: 183
DimaBr
то там остаются все варианты фильтров до фильтрации в первой колонке

это настраивается
Потом можно ли в этот грид загрузить данные через dataset и отключиться от сервера, но данные в гриде остануться ?

Загрузите в dxMemData или в TableView
Можно ли напрямую заполнять cxGrid без использования каких-то источников данных, а просто ты программно заполняешь ячейки как ты хочешь

можно


Тогда не подскажите какой настройкой активировать именно этот режим фильтра?

Куда лучше тогда грузить данные в dxMemData или в TableView. Таблицы будут достаточно большие и в чем разница между ними ?
27 июл 20, 15:40    [22174236]     Ответить | Цитировать Сообщить модератору
 Re: DevExpress cxGrid фильтрация и загрузка данных  [new]
DimaBr
Member

Откуда:
Сообщений: 11808
Картинка с другого сайта.
Куда лучше тогда грузить данные в dxMemData или в TableView. Таблицы будут достаточно большие и в чем разница между ними ?

Я предпочитаю первое.
Разница,
1. dxMemData +TcxGridDBTableView - датасет в памяти + обычная DB вьюшка.
2. данные в самой вьюшке

Предположительно (ИМХО) на больших объёмах данных первый вариант будет занимать больше памяти
27 июл 20, 15:57    [22174250]     Ответить | Цитировать Сообщить модератору
 Re: DevExpress cxGrid фильтрация и загрузка данных  [new]
vavan
Member

Откуда: Казань
Сообщений: 3532
Jonnik
Куда лучше тогда грузить данные в dxMemData или в TableView. Таблицы будут достаточно большие и в чем разница между ними ?
датасеты (не только dxMemData) концепция в принципе самодостаточная и безотносительно возможности цеплять на них дата-аварщину. но если ни для чего иного кроме как отображения не используются то можно обойтись и без них, заполняя содержимое грида (и прочей визуальщины) самостоятельно и экономя тем самым память. впрочем есть режим эмуляции стандартного грида gridmode при к-м закачивания содержимого в датаконтроллер не происходит, при этом за счет экономии памяти урезается часть функционала

в 32-битном режиме случалось нарываться на oom при загрузке нескольких сот тысяч записей датасета с более чем сотней полей в датаконтроллер
27 июл 20, 17:56    [22174319]     Ответить | Цитировать Сообщить модератору
 Re: DevExpress cxGrid фильтрация и загрузка данных  [new]
Jonnik
Member

Откуда:
Сообщений: 183
DimaBr
Картинка с другого сайта.
Куда лучше тогда грузить данные в dxMemData или в TableView. Таблицы будут достаточно большие и в чем разница между ними ?

Я предпочитаю первое.
Разница,
1. dxMemData +TcxGridDBTableView - датасет в памяти + обычная DB вьюшка.
2. данные в самой вьюшке

Предположительно (ИМХО) на больших объёмах данных первый вариант будет занимать больше памяти


Спасибо.

На Ehlib грузил под 400к записей с почти сотней полей. Никогда проблем не было. И фильтра нормально работали.
Но тут такие объемы не предполагаются. Буду пробовать. Много непонятного пока.
27 июл 20, 18:05    [22174328]     Ответить | Цитировать Сообщить модератору
 Re: DevExpress cxGrid фильтрация и загрузка данных  [new]
vavan
Member

Откуда: Казань
Сообщений: 3532
Jonnik
На Ehlib грузил
а там есть аналог датаконтроллера и он реально грузит в себя данные или в режиме gridmode трудится? собсно даже если реально грузить то подходить к этому можно различными способами в реализации, экономя или не очень
27 июл 20, 18:26    [22174340]     Ответить | Цитировать Сообщить модератору
 Re: DevExpress cxGrid фильтрация и загрузка данных  [new]
энди
Member

Откуда: Киров, Россия
Сообщений: 1124
Не знаю как сейчас, но раньше в основе лежал свой собственный тормозной датасет в памяти. У меня был случай когда запрос с сервера выполнялся и загружался 7 секунд через АДО, после чего еще полторы минуты данные переливались из adoquery в мемтейбл. Плюс еще была пара неприятных глюков, с тех пор стараюсь держаться от Ehlib подальше, это при том что я был официальным пользователем, как-то так :)
27 июл 20, 19:15    [22174367]     Ответить | Цитировать Сообщить модератору
 Re: DevExpress cxGrid фильтрация и загрузка данных  [new]
Jonnik
Member

Откуда:
Сообщений: 183
vavan
Jonnik
На Ehlib грузил
а там есть аналог датаконтроллера и он реально грузит в себя данные или в режиме gridmode трудится? собсно даже если реально грузить то подходить к этому можно различными способами в реализации, экономя или не очень


А можно по подробнее если можно? Я просто вообще без понятия в какую сторону копать и что лучше для удобства использовать для работы как с обычным гридом.
28 июл 20, 08:52    [22174520]     Ответить | Цитировать Сообщить модератору
 Re: DevExpress cxGrid фильтрация и загрузка данных  [new]
Jonnik
Member

Откуда:
Сообщений: 183
энди
Не знаю как сейчас, но раньше в основе лежал свой собственный тормозной датасет в памяти. У меня был случай когда запрос с сервера выполнялся и загружался 7 секунд через АДО, после чего еще полторы минуты данные переливались из adoquery в мемтейбл. Плюс еще была пара неприятных глюков, с тех пор стараюсь держаться от Ehlib подальше, это при том что я был официальным пользователем, как-то так :)


В последний раз ADO использовал лет 8 назад и тогда в сочитании с ним Ehlib даже на 50к записей не позволял скролить без тормозов. Потом все тоже самое запустил на MyDac и все стало нормально. Поэтому дело не в Ehlib
28 июл 20, 08:57    [22174523]     Ответить | Цитировать Сообщить модератору
 Re: DevExpress cxGrid фильтрация и загрузка данных  [new]
DimaBr
Member

Откуда:
Сообщений: 11808
Вам не нужны сотни тысяч строк на клиенте, чтобы пользователь отфильтровал только 100 из них. Вынесите фильтры за пределы грида и формируйте запрос уже с фильтрами.
28 июл 20, 08:59    [22174525]     Ответить | Цитировать Сообщить модератору
 Re: DevExpress cxGrid фильтрация и загрузка данных  [new]
vavan
Member

Откуда: Казань
Сообщений: 3532
Jonnik
можно по подробнее если можно?
подробнее можно хелп почитать про TcxDBDataModeController.GridMode и вообще режимы работы ихнего грида, там есть и еще
28 июл 20, 09:30    [22174532]     Ответить | Цитировать Сообщить модератору
 Re: DevExpress cxGrid фильтрация и загрузка данных  [new]
vavan
Member

Откуда: Казань
Сообщений: 3532
энди
запрос с сервера выполнялся и загружался 7 секунд через АДО, после чего еще полторы минуты данные переливались из adoquery в мемтейбл
трэш, это сколько интересно записей/полей былоу меня на такой случай на каждой стадии прогресс крутится, заодно не давая возбуждаться антифризеру мадыксептовскому
28 июл 20, 09:33    [22174534]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить