Выполнение работы:
Метод Locate
public
{ Public declarations }
procedure MyLocate(s: String);
fDM.MyLocate(Edit1.Text);
Метод Lookup
Как вы видите, первые два параметра такие же, как у Locate. А вот
третий параметр и возвращаемое значение отличаются. В строке
ResultFields через точку с запятой перечисляются поля таблицы, значения
которых метод должен вернуть. Возвращаются эти значения в виде
вариантного массива. Проблема в том, что вернуться может значение Null, то
есть, ничего, или Empty (пустой) и это нужно проверять. Рассмотрим работу
метода Lookup на примере нашей программы.
Фильтрация данных
Свойство Filter
Фамилия = 'Иванов'
//fDM.MyLocate(Edit1.Text); - закомментировали
Событие onFilterRecord
var
fDM: TfDM;
ed: String; //текст из Edit1
Использование индексов
fDM.TLichData.IndexFieldNames := 'Фамилия';
fDM.TLichData.IndexFieldNames := '';
Сортировать по фамилии
Сортировать по имени
Не сортировать
-
Обратная сортировка
{Не сортировать}
procedure TfMain.NNetClick(Sender: TObject);
begin
fDM.TLichData.IndexFieldNames := '';
end;
{Сортировать по фамилии}
procedure TfMain.NFamClick(Sender: TObject);
var
stype : String;
begin
//выбираем направление сортировки:
if NObrat.Checked then stype := ' DESC' //обратная сортировка
else stype := ' ASC'; //прямая сортировка
//сортируем
fDM.TLichData.IndexFieldNames := 'Фамилия' + stype;
end;
{Сортировать по имени}
procedure TfMain.NImyaClick(Sender: TObject);
var
stype : String;
begin
//выбираем направление сортировки:
if NObrat.Checked then stype := ' DESC'
else stype := ' ASC';
//сортируем
fDM.TLichData.IndexFieldNames := 'Имя' + stype;
end;
fMain.NFamClick(Sender);