При изменениях в наборе данных синхронного просмотра можно использовать метод

procedure RefreshLookupList;

который обновляет текущее значение поля и список значений в буфере. Специально для разработчиков в базовый класс TField включено свойство

property Offset: Integer;

которое возвращает размер буфера в байтах.

Для создания поля синхронного просмотра удобнее всего воспользоваться Редактором полей компонента доступа к данным. После выбора команды New field из всплывающего меню в одноименном диалоге (см. рис. 13.3), помимо обычных действий, соответствующих созданию поля данных, необходимо задать значения свойств в группе Lookup definition. Элементы управления группы становятся доступны после выбора типа поля (радиокнопка Lookup в группе Field type). Группа Lookup definition включает следующие элементы:

□ в списке Dataset представлены все доступные в модуле наборы данных, из которых нужно выбрать набор данных синхронного просмотра (свойство Lookup DataSet);

О список Result Field позволяет выбрать поле синхронного просмотра

(СВОЙСТВО LookupResultField);
□ список Lookup Keys задает ключевое поле в наборе данных синхронного просмотра (СВОЙСТВО LookupKeyFields);

• список Key Fields определяет ключевое поле исходного набора данных (СВОЙСТВО KeyFields).

Вычисляемые ПОЛЯ

Вычисляемые поля существенно облегчают разработку приложений баз данных, т. к. позволяют получать новые данные на основе существующих, не изменяя при этом структуру таблиц БД. Выражения для получения значений вычисляемых полей разработчик должен разместить в методе-обработчике OnCalcFieids набора данных. Здесь можно использовать любые арифметические, логические операции и функции, любые операторы языка, свойства и методы любых компонентов, в том числе запросы SQL:

procedure TForml.TablelCalcFields (DataSet: TDataSet) ; begin with Tablel do

TablelCalcFieldl.Value := Fields[0].Value + Fields[1].Value;

with Queryl do

begin
Params[0].Aslnteger := Tablel.Fields[0].Aslnteger;
Open;
TablelCalcFieldl.Value := Fields[0].AsString;
Close;
end ;
end;

Метод OnCalcFieids выполняется при открытии набора данных, при переходе в режим редактирования, при передаче фокуса между компонентами отображения данных или колонок сетки, при удалении записи. Но для этого нужно, чтобы свойство AutoCalcFieids набора данных было равно значению True.

( Примечание }

Необходимо учитывать, что сложные вычисляемые поля могут существенно замедлить работу набора данных (особенно при использовании при этом запросов SQL). Кроме того, в процессе редактирования набора данных (при изменении значения поля, сохранении изменений и переходе на следующую запись) вычисляемые поля рассчитываются несколько раз подряд. Для уменьшения числа автоматических обращений к методу OnCalcFieids нужно использовать свойство AutoCaicFieids := False.

Для создания вычисляемого поля достаточно в диалоге создания нового поля Редактора полей в качестве типа поля задать "вычисляемое", в остальном процесс совпадает с созданием поля данных.


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Август
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс