Использование Delphi для создания приложений баз данных. Устюгова В.Н. - 41 стр.

UptoLike

Составители: 

41
NumGr NN Tovar
1 10 Макароны
12 1 Вода минеральная
12 4 Кефир
12 26 Груши
100 1 Конфеты «Ласточка»
100 10 Крупа гречневая
Существует более громоздкая альтернатива методу FindNearest - выполнение группы
методов SetKey, EditKey, GoToNearest и заполнение полей поисковыми значениями
Выполнение метода
Table2.FindNearest([GrTmp,NNTmp]);
может быть заменено эквивалентным по последствиям кодом
Table2.SetKey;
Table2NumGr.Value := GrTmp;
Table2NN.Value := NNTmp;
Table2.GotoNearest;
Если нужно осуществить поиск по индексу, отличному от текущего индекса,
необходимо:
сохранить список текущих индексных полей в строковой переменной;
заменить список текущих индексных полей набора данных на необходимый;
осуществить поиск;
восстановить список текущих индексных полей набора данных из строковой
переменной.
Пусть текущая сортировка в наборе данных осуществляется по имени товара (т.е. индекс
построен по полю Tovar, Table2.IndexFieldNames = 'Tovar') и текущей является вторая
логическая запись:
NumGr NN Tovar
12 1 Вода минеральная
12 26 Груши
12 4 Кефир
100 1 Конфеты «Ласточка»
100 10 Крупа гречневая
1 10 Макароны
Напишем обработчик события нажатия кнопки FindButton:
procedure TFormA.FindButtonClick(Sender: TObject);
var
GrTmp, NNTmp: LongInt;
OldIndexFieldNames: String;
begin
OldIndexFieldNames := Table2.IndexFieldNames;
Table2.IndexFieldNames := 'NumGr;NN';
//…
Table2.FindNearest([GrTmp, NNTmp] ) ;
Table2.IndexFieldNames := OldIndexFieldNames;
              NumGr        NN    Tovar
             1            10    Макароны
             12           1     Вода минеральная
             12           4     Кефир
             12           26    Груши
             100          1     Конфеты «Ласточка»
             100          10    Крупа гречневая

     Существует более громоздкая альтернатива методу FindNearest - выполнение группы
методов SetKey, EditKey, GoToNearest и заполнение полей поисковыми значениями
Выполнение метода
     Table2.FindNearest([GrTmp,NNTmp]);
     может быть заменено эквивалентным по последствиям кодом
     Table2.SetKey;
     Table2NumGr.Value := GrTmp;
     Table2NN.Value := NNTmp;
     Table2.GotoNearest;

     Если нужно осуществить поиск по индексу, отличному от текущего индекса,
необходимо:
   • сохранить список текущих индексных полей в строковой переменной;
   • заменить список текущих индексных полей набора данных на необходимый;
   • осуществить поиск;
   • восстановить список текущих индексных полей набора данных из строковой
      переменной.

     Пусть текущая сортировка в наборе данных осуществляется по имени товара (т.е. индекс
построен по полю Tovar, Table2.IndexFieldNames = 'Tovar') и текущей является вторая
логическая запись:

              NumGr        NN    Tovar
             12           1     Вода минеральная
             12           26    Груши
             12           4     Кефир
             100          1     Конфеты «Ласточка»
             100          10    Крупа гречневая
             1            10    Макароны

  Напишем обработчик события нажатия кнопки FindButton:
procedure TFormA.FindButtonClick(Sender: TObject);
var
  GrTmp, NNTmp: LongInt;
  OldIndexFieldNames: String;
  begin
  OldIndexFieldNames := Table2.IndexFieldNames;
  Table2.IndexFieldNames := 'NumGr;NN';
  //…
  Table2.FindNearest([GrTmp, NNTmp] ) ;

   Table2.IndexFieldNames := OldIndexFieldNames;
                                           41