Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Почему OnFilterRecord не все записи обрабатывает? [D7, MySQL]


jeka_t ©   (2006-04-27 12:43:00) 

Использую TADOQuery, что бы показать таблицу...
хочу её отфильтровать с помощью события OnFilterRecord.
procedure TForm1.ADOQuery1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
var str, field: string;
begin
 str := AnsiUpperCase(UpperCase(edt_Find.Text));
 field := AnsiUpperCase(UpperCase(DataSet.Fields[CBox_Find.itemindex].Text));
 Accept := (Copy(field, 1, Length(str)) = str);
end;


Первую запись показывает, а остальные даже не обрабатывает...

Помогите, пожалуйста разобраться....


Sergey13   (2006-04-27 15:09:00) [1]

2[14] Виталий Панасенко   (27.04.06 14:58)
Хм. Действительно.


jeka_t   (2006-04-27 15:07:00) [2]

Там не реализовано переменная высота строк...  и даже не важно какая версия...


Виталий Панасенко   (2006-04-27 14:58:00) [3]


> В смысле, халява или неплохого качества?
> У меня 4.0 халява и качество, вроде бы, ничего так...:)

По лицензии нельзя использовать в коммерческих проектах.:-)


Sergey13   (2006-04-27 14:56:00) [4]

2[12] Johnmen ©   (27.04.06 14:47)
>В смысле, халява или неплохого качества?
И то и другое в одном флаконе?

>У меня 4.0 халява и качество, вроде бы, ничего так...:)
По блату или я что-то пропустил? Вроде с 4 стало за деньги.


Johnmen   (2006-04-27 14:47:00) [5]


> Sergey13 ©   (27.04.06 14:45) [11]
>До версии 3.6 - халява неплохого качества.


В смысле, халява или неплохого качества?
У меня 4.0 халява и качество, вроде бы, ничего так...:)


Sergey13   (2006-04-27 14:45:00) [6]

2[4] jeka_t   (27.04.06 14:05)
>Я показываю таблицу с помощью TStringGrid, так как там можно показать в многострочных ячейках...
>привык использовать DBGrid

Возможно EhLib-овский грид спасет отца русской демократии. До версии 3.6 - халява неплохого качества.


Johnmen   (2006-04-27 14:42:00) [7]

Да не за что.
Кстати, многострочность ячеек легко реализуется и в TDBGrid'е через OnDrawColumnCell.
А вот переменная высота строк уже сложнее.


jeka_t   (2006-04-27 14:29:00) [8]

Да, это лучше... (почему это я сразу так не сделал, наверное, привык использовать DBGrid)
ещё раз благодарю!


jeka_t   (2006-04-27 14:23:00) [9]

Ещё раз спасибо, придумал так...
дал цыкл:
while not ADOQuery1.EOF do ADOQuery1.Next;
попробывал, работает...


Johnmen   (2006-04-27 14:22:00) [10]

А просто не надо ничего фильтровать.
Просто пройдись по НД и обработай все записи.


jeka_t   (2006-04-27 14:15:00) [11]

Спасибо за разъяснение, но тогда как же можно отобрать отфильтрованные данные ADOQuery?


Johnmen   (2006-04-27 14:10:00) [12]

Теперь понятно.
Дело в том, что обработчик события OnFilterRecord вызывается тогда, и только тогда, когда происходит явное или неявное обращение к записи набора данных. У тебя этих обращений нет.


jeka_t   (2006-04-27 14:05:00) [13]

Я показываю таблицу с помощью TStringGrid, так как там можно показать в многострочных ячейках...
Вывод отфильтрованных данных я произвожу с помощью процедуры TForm1.ADOQuery1FilterRecord...
Т.е. как только Accept = true я добавляю TStringGrid.Row и заношу значение в ячейки...
Работает хорошо, но обработка записей до конца не происходит...
но ведь должно же...


Johnmen   (2006-04-27 13:47:00) [14]

Значение акцепта на " обработку остальных записей" не влияет.
Повторю вопросы.
Кто показывает? С чего решил, что не обрабатывает?


jeka_t   (2006-04-27 13:39:00) [15]

нет, так не должно быть...

когда запускаю пошагово, то:

в процедуре TForm1.ADOQuery1FilterRecord происходит обработка записей (не одной) пока условие (Copy(field, 1, Length(str)) = str) не будет равно true... Т.е. пока Accept <> true
Как только это Accept = true, обработка остальных записей не происходит...


Johnmen   (2006-04-27 13:17:00) [16]

Кто показывает? С чего решил, что не обрабатывает?
А может вообще, так и д.б.?


Наверх

Титульная страница Поиск, карта сайта Написать письмо