Форум: "Базы";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
Вниз!!!HELP!!! Обработка события OnFilterRecord в TTable Найти похожие ветки
← →
Cardinal © (2005-02-12 17:50) [0]Господа, помогите разобраться с ошибочкой, которая вылазит при фильтрации! Приделал к своей программе функцию фильтрации. На специальной форме устанавливаются условия, записываются в переменные и св-ву filtered таблицы (DBF) присваивается true. В обработчике таблицы OnFilterRecord в соответствии со значением переменных устанавливаю значение Accept.
Все работает отлично, но если хотя бы раз при фильтрации не останется ни одной записи то при последующих попытках фильтрации при установке св-ва filtered таблицы все записи не отображаются а событие OnFilterRecord и вовсе не происходит.
Объясните, пожалуйста, что это за глюки! Большое спасибо.
← →
Desdechado © (2005-02-12 18:11) [1]попробуй перед установкой очередного фильтра делать
table.disablecontrols();
table.filtered := false;
table.filtered := true;
table.enablecontrols();
просто, насколько помню, фильтр вступает в силу при изменении текущей записи. А если записей нет, то изменить текущую не может.
← →
Cardinal © (2005-02-12 18:31) [2]
> [1] Desdechado © (12.02.05 18:11)
Пробовал, та же шляпа :-((((((
← →
Cardinal © (2005-02-12 19:28) [3]Я уже разобрался со своей шляпой сам :-)
procedure TMainForm.Edit1Change(Sender: TObject);
begin
if length( Edit1.Text ) > 0 then
begin
Table1.Filtered := TRUE;
UpdateFilter( Table1 );
end
else
Table1.Filtered := FALSE;
end;
procedure TMainForm.UpdateFilter( DataSet: TDataSet );
var
FR: TFilterRecordEvent;
begin
with DataSet do
begin
FR := OnFilterRecord;
if Assigned(FR) and Active then
begin
DisableControls;
try
OnFilterRecord := nil;
OnFilterRecord := FR;
finally
EnableControls;
end;
end;
end;
end;
Pavel Krasikov
(2:5005/7)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.039 c