Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DBGridEh и STFilter, локальная фильтрация (ADO) 
:(
    Опции темы
Albinos_x
Дата 14.7.2012, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 1
Всего: 108



Доброе время суток.

видимо начал сильно тормозить, но сижу уже почти день и не получается заставить работать локальную фильтрацию DBGridEh. smile 
Думаю вопрос избитый, судя по количеству подобных сообщений в интернете, но ни один из них мне не помог.

добился того, что позволяет выбирать и ошибок никаких не выскакивает, но фильтрация не происходит

RAD Studio XE2 Prof upd 4, 
ehlib 5.6

компоненты взаимосвязаны по схеме:
 
ADOConnection1 -> ADOQuery2 -> DataSetDriverEh1-> MemTableEh1-> DataSource1-> DBGridEh

DBGridEh создается динамически:
Код
...
MConfStat[i].csGrid:=TDBGridEh.Create(MConfStat[i].csTabSheet);
   MConfStat[i].csGrid.DataSource:=DataSource1;
   MConfStat[i].csGrid.Options:=[dgTitles,dgIndicator,dgColumnResize,dgColLines,dgRowLines,dgTabs,dgConfirmDelete,dgCancelOnExit];
   MConfStat[i].csGrid.OptionsEh:=[dghFixed3D,dghHighlightFocus,dghClearSelection,dghAutoSortMarking,dghMultiSortMarking,dghIncSearch,dghDialogFind,dghShowRecNo,dghColumnResize,dghColumnMove,dghHotTrack,dghExtendVertLines];

   MConfStat[i].csGrid.IndicatorOptions:=[gioShowRowIndicatorEh,gioShowRecNoEh];
   MConfStat[i].csGrid.IndicatorTitle.TitleButton:=True;
   MConfStat[i].csGrid.IndicatorTitle.ShowDropDownSign:=True;
   MConfStat[i].csGrid.SortLocal:=True;
   MConfStat[i].csGrid.DrawMemoText:=True;

  MConfStat[i].csGrid.STFilter.Location:=stflInTitleFilterEh;
   MConfStat[i].csGrid.STFilter.InstantApply:=True;
   MConfStat[i].csGrid.STFilter.Local:=True;
   MConfStat[i].csGrid.STFilter.Visible:=True;

   Colum:=MConfStat[i].csGrid.Columns.Add;
   Colum.Title.Caption:='Поле';
   Colum.FieldName:='DispleyName';
   Colum.Alignment:=taCenter;
   Colum.STFilter.DataField:='DispleyName';
   Colum.STFilter.ListField:='DispleyName';
   Colum.STFilter.KeyField:='DispleyName';
   Colum.STFilter.ListSource:=DataSource1;

...

   grouplevel:=MConfStat[i].csGrid.DataGrouping.GroupLevels.Add;
   grouplevel.Column:=Colum;
   grouplevel.Color:=$DAFFFF;   // $F0CAA6
   grouplevel.Font.Style:=[fsBold];
   MConfStat[i].csGrid.DataGrouping.Active:=True;
   end;
...


SQL активирую позже...

я уже много чего перепробовал, но пока удалось хоть сделать так, чтоб ошибка не выскакивала, если пытаешься выбирать более чем в одном поле.

пробовал еще выставлять:
Код

MemTableEh1.Filtered:=True;
ADOQuery2.Filtered:=True;


не помогло...

Код

initialization

DBGridEhCenter.FilterEditCloseUpApplyFilter:=true; 


тоже не помогает

Код

uses ... EhLibADO;


и это не помогло

кто сталкивался с проблемой, подскажите, либо чего не хватает, либо где я ошибся...

заранее мега спасибо) smile

Добавлено @ 21:17
ах да... пробовал комбинировать еще свойства:
Код

Colum.STFilter.DataField:=...
   Colum.STFilter.ListField:=...

т.е. задавать одно из них, другое не задавать - тоже не помогло

Это сообщение отредактировал(а) Albinos_x - 14.7.2012, 21:40


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Albinos_x
Дата 14.7.2012, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 1
Всего: 108



пример идущий в комплекте с компонентами мне тоже не помог...(


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
DYUMON
Дата 20.7.2012, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 17.6.2006
Где: Новосибирск

Репутация: 2
Всего: 3



ehlibmte подключил ?


--------------------
Всех программистов надо посадить на целероны, что бы впредь головой думали что пишут.
user posted image
PM MAIL ICQ Skype   Вверх
Albinos_x
Дата 21.7.2012, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 1
Всего: 108



попробовал, теперь выскакивает сообщение:
"Type mismatch in expression"



--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Albinos_x
Дата 30.7.2012, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 1
Всего: 108



неужели никто не сталкивался?


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Akella
Дата 1.8.2012, 06:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



в свойствах столбца нужно включить тулбаттон

Добавлено через 43 секунды
Для локальной сортировки, ЕМНИП, хватает двух включенных свойств.
1. SortLocal := true в свойствах грида
2. <Columns>.Title.TitleButton := в свойствах колонки.
3. Можно вместо пункта 2 включить это свойство у грида. Там есть что-то вроде настроек по умолчанию для всех колонок.

Добавлено через 1 минуту и 24 секунды
http://nmdsoft.blogspot.com/2010/09/fibplus-ehlib.html

Добавлено через 1 минуту и 36 секунд
http://www.sql.ru/forum/actualthread.aspx?tid=958696
PM MAIL   Вверх
Albinos_x
Дата 6.8.2012, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 1
Всего: 108



Спасибо, 
Akella, 
Цитата(Akella @  1.8.2012,  06:59 Найти цитируемый пост)
1. SortLocal := true в свойствах грида

это стояло

Цитата(Akella @  1.8.2012,  06:59 Найти цитируемый пост)
2. <Columns>.Title.TitleButton := в свойствах колонки.

добавил

но не помогло(((
при чем сортировка локальная сортировка, как и фильтрация, тоже не работает...

Добавлено через 4 минуты и 2 секунды
по второй ссылке:

Цитата(Albinos_x @  14.7.2012,  21:15 Найти цитируемый пост)
MConfStat[i].csGrid.OptionsEh:=[dghFixed3D,dghHighlightFocus,dghClearSelection,dghAutoSortMarking,dghMultiSortMarking,dghIncSearch,dghDialogFind,dghShowRecNo,dghColumnResize,dghColumnMove,dghHotTrack,dghExtendVertLines];


dghAutoSortMarking,dghMultiSortMarking - тоже есть, но упирается рогами... не хочет работать...

может нужно какие то опции отключить?

Добавлено через 13 минут и 9 секунд
если отключить 
Цитата(DYUMON @  20.7.2012,  11:29 Найти цитируемый пост)
ehlibmte 


то нет ошибок и нет сортировки

если подключить, то ошибка 

Цитата(Albinos_x @  21.7.2012,  13:58 Найти цитируемый пост)
"Type mismatch in expression"


после которой mem закрывается и перестает вообще работать..., даже если проводится переинициализация подключния...


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Albinos_x
Дата 6.8.2012, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 1
Всего: 108



поигрался еще немного с порядком подключения модулей и закоментил строки:

Цитата(Albinos_x @  14.7.2012,  21:15 Найти цитируемый пост)
   Colum.STFilter.DataField:='DispleyName';   
Colum.STFilter.ListField:='DispleyName';   
Colum.STFilter.KeyField:='DispleyName';


локальная сотртировка заработала, а вот с фильтрацией та же фигня...

Добавлено через 4 минуты и 45 секунд
Цитата(Albinos_x @  14.7.2012,  21:15 Найти цитируемый пост)
Colum.STFilter.ListSource:=DataSource1;


это тоже закоментил... тот же результат..


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Akella
Дата 6.8.2012, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Может в справке или в демка есть что интересного?

Albinos_x, а ты не хочешь перейти на cxGrid?
PM MAIL   Вверх
Albinos_x
Дата 7.8.2012, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 1
Всего: 108



справка и демка мне не помогла... 

полагаю, что проблема возникает на стыке DataSetDriverEh1 - MemTableEh1...

т.е. MemTableEh1 получает в ADOQuery2 и самостоятельно обрабатывает... но в справке говорится, что данный фильтр применяется на фильтр датасета.. в данном случае их получается 2 это  MemTableEh1 и ADOQuery2... и вот тут становится не совсем понятно... куда он передает этот фильтр... если в MemTableEh1, то по идее все должно работать.... если в ADOQuery2, то делает он это крайне странно... 
вроде сделал все согласно справки... но работать не хочет... еще периодически возникают какие то глюки, которые лечатся только пересозданием MemTableEh1.

Цитата(Akella @  6.8.2012,  23:45 Найти цитируемый пост)
а ты не хочешь перейти на cxGrid?

он бесплатный?
группировать строки может?

вообще хотелось бы уйти от сторонних компонентов, но изобретать велосипед было лень...
если перейду на cxGrid то либо переделать только в в 2-х местах и тогда к программе будет 2 сторонних компонента... либо переделывать все гриды... но этот... займет больше времени... не хотелось бы начинать все сначала...

есть справка на русском языке или описание данного компонента, чтобы понять подойдет ли мне....?

Добавлено через 8 минут и 46 секунд
самое интересное, что если в фильтре выбираешь "все поля", "пустые", "не пустые" - то фильтр работает, как только выбираешь какое то определенной значение, то сразу вылетает данная ошибка...


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Akella
Дата 7.8.2012, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



нет, cxGrid очень даже не бесплатный, но можно взять его без исходников
cxGrid может всё и ещё немножко  smile

Добавлено через 2 минуты и 48 секунд
Цитата(Albinos_x @  7.8.2012,  19:33 Найти цитируемый пост)
есть справка на русском языке или описание данного компонента, чтобы понять подойдет ли мне....?

всё на www.devexpress.com, но не на русском
на русском можно получить поддержку неплохую на sql.ru и ru-board.com, там много чего спрашивали и отвечали
    но если подсядешь на devexpress, то уже не слезешь, затягивают своей мощью и универсальностью

Добавлено через 4 минуты и 7 секунд
Цитата(Albinos_x @  14.7.2012,  21:15 Найти цитируемый пост)
DataSetDriverEh1-> MemTableEh1

а это из цепочки нельзя выкинуть?
PM MAIL   Вверх
Akella
Дата 7.8.2012, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



я боюсь, что cxGrid без исходников по дешёвке сейчас уже не купить :(

Добавлено через 59 секунд
Может тебе VirtualTreeView замутить?
Он тоже мощный и бесплатный. Вроде есть дока на русском. Недавно вышла новая 5я версия.
PM MAIL   Вверх
Albinos_x
Дата 7.8.2012, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 1
Всего: 108



Цитата(Akella @  7.8.2012,  20:36 Найти цитируемый пост)
Может тебе VirtualTreeView замутить?

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

попробую все таки этот побороть... наконец, отключу фильтр и реализую его по другому... но все таки хотелось этот заставить работать...

Цитата(Akella @  7.8.2012,  20:17 Найти цитируемый пост)
а это из цепочки нельзя выкинуть?

к сожалению нельзя... без MemTableEh1 группировка не работает... без DataSetDriverEh1 связь с ADO не работает....

Добавлено через 5 минут и 9 секунд
еще закралась идея, что может от ADOQuery2 отказаться... по идее Query должен работать через ADOConnection... может через простой Query все заработает....


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Akella
Дата 10.8.2012, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Посмотри ещё в строну TMS. Тоже не бесплатно, но значительно дешевле. И гриды там тоже довольно неплохие.
PM MAIL   Вверх
SergeyKNP
Дата 20.3.2013, 08:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 9.2.2008

Репутация: нет
Всего: нет



Добавь...

Form2.DBGridEh1.Center.FilterEditCloseUpApplyFilter:=True;
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1022 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.