![]() |
|
|
![]()
|
|
| Knuckles |
|
|||
![]() Новичок Профиль Группа: Awaiting Authorisation Сообщений: 33 Регистрация: 8.3.2006 Репутация: 1 Всего: 2 |
Есть TClientDataSet, в нем несколько полей. Определен индекс GroupByIP (Filelds=DstIP;SrcIP , GroupingLevel=2) - группирует внутри ДатаСета записи по двум полям. Все работает, как нельзя лучше. Точнее работало. Пока я не начал применять фильтр к данным.
Фильтр по дате такой:
И, надо сказать, что и он работает, как нельзя лучше. Но только один раз. Если повторно применить фильтр (тот же или с другими датами), то ДатаСет просто сходит с ума! А именно что-то происходит с группировками по вышеуказанному индексу. Почему-то одна и та же запись появляется много раз и ДатаСет не распознает, что она в группе. Т.е. у них у всех ds.GetGroupState начинает возвращать [gbFirst,gbLast], потом несколько записей все же оказываются в группе. Короче, полнейший бардак. Хелп дельфийский облазил, никаких пометок там не нашел. Другие свойства компонента после применения фильтра кажется не меняются. Подскажите, что не так? Каким образом наличие фильтра (а точнее его повторное изменение) так влияет на результаты сортировки/группировки? Что делать? |
|||
|
||||
| Romkin |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 189 Регистрация: 14.11.2006 Где: Москва Репутация: нет Всего: 5 |
А версия Delphi какая?
|
|||
|
||||
| Knuckles |
|
|||
![]() Новичок Профиль Группа: Awaiting Authorisation Сообщений: 33 Регистрация: 8.3.2006 Репутация: 1 Всего: 2 |
Delphi 7
|
|||
|
||||
| Knuckles |
|
|||
![]() Новичок Профиль Группа: Awaiting Authorisation Сообщений: 33 Регистрация: 8.3.2006 Репутация: 1 Всего: 2 |
Кажется понял в чем дело.
Перед изменением фильтра данные должны быть перечитаны. Тогда все работает. Осталось небольшое сомнение: насколько это быстро делается (ClientDataSet.LoadFromFile)? Теперь возникла другая проблема. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
а может использовать MemoryData, т.е. временную таблицу в памяти?
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |