Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.25;
Скачать: CL | DM;

Вниз

Почему OnFilterRecord не все записи обрабатывает?   Найти похожие ветки 

 
jeka_t   (2006-04-27 12:43) [0]

Использую 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;


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

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


 
Johnmen ©   (2006-04-27 13:17) [1]

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


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

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

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

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


 
Johnmen ©   (2006-04-27 13:47) [3]

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


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

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


 
Johnmen ©   (2006-04-27 14:10) [5]

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


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

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


 
Johnmen ©   (2006-04-27 14:22) [7]

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


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

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


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

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


 
Johnmen ©   (2006-04-27 14:42) [10]

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


 
Sergey13 ©   (2006-04-27 14:45) [11]

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

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


 
Johnmen ©   (2006-04-27 14:47) [12]


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


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


 
Sergey13 ©   (2006-04-27 14:56) [13]

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

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


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


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

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


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

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


 
Sergey13 ©   (2006-04-27 15:09) [16]

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



Страницы: 1 вся ветка

Текущий архив: 2006.06.25;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.054 c
2-1149493542
allrussia
2006-06-05 11:45
2006.06.25
Организовать в проекте скачивание файлов по принципу работы Reget


1-1148140579
yahaha
2006-05-20 19:56
2006.06.25
Список доступных шрифтов


3-1146248560
comtat
2006-04-28 22:22
2006.06.25
удаленная бд (коннект)


1-1147788452
Neo Trinitron
2006-05-16 18:07
2006.06.25
Грамотная обработка ошибки


1-1147849233
NigthSkif
2006-05-17 11:00
2006.06.25
MaskEdit