![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Фильтрация таблицы DBF [D7, dBase, FoxPro]
810 © (2005-09-17 19:02:00)Есть таблица DBF (tblScan), в ней поле TIME_PP (типа Date). Есть глобальная переменная DATE_RAB в которой содержится дата. Задача - фильтровать в ран-тайме таблицу в зависимости от значения переменной.
procedure TfmMain.tblScanFilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept := DataSet['TIME_PP'] = DATE_RAB;
end;
Фильтрую таблицу по TfmMain.OnShow
fmMain.tblScan.Filtered:=True;
И фильтр применяется нормально.
Но при изменении значения DATE_RAB никак не могу добиться, чтобы фильтр таблицы переназначился. Пробовал: Filtered:=False потом Filtered:=True (не помогает)
tblScan.Refresh (не помогает)
Помогает только закрытие и открытие таблицы с последующим Filtered:=True, а без закрытия/открытия как-нить возможно применить новый фильтр?
ЗЫ: в книжках ничего подобного нет, приходится методом научного самотыка......... Звиняйте.
Anatoly Podgoretsky (2005-09-18 13:17:00) [1]Дельфи не интерпритатор
810 (2005-09-18 04:54:00) [2]Accept := DataSet['TIME_PP'] = DATE_RAB;
-------------------------------------------------------
А как в ран-тайме можно поменять это условие?
Точнее: Как синтаксически правильно вызвать процедуру TfmMain.tblScanFilterRecord(DataSet: TDataSet; var Accept: Boolean);
Допустим, если я хочу добавить к существуюшему условию условие DataSet['Summa']>0
Anatoly Podgoretsky (2005-09-17 19:13:00) [3]fmMain.tblScan.Filtered:=False;
fmMain.tblScan.Filtered:=True;
можно еще добавить First, а можно и вместо.