Помимо простого синхронного просмотра данных может возникнуть задача редактирования данных в аналогичной ситуации. Для этого предназначены специальные компоненты синхронного просмотра данных, которые позволяют, например, выбирать покупателя из списка, а изменится при этом номер покупателя в наборе данных заказов. Использование таких компонентов делает пользовательский интерфейс значительно более удобным и наглядным. В VLC Delphi есть два таких компонента: TDBLookupListBox И TDBLookupComboBox.

(_Примечание_)

На странице Win 3.1 Палитры компонентов имеются еще два компонента: TDBLokupList и TDBLookupCombo. Они обладают тем же набором функций, используются для обеспечения совместимости с приложениями, созданными в среде разработки Delphi 1, и поэтому здесь не рассматриваются.

Механизм синхронного просмотра

Непосредственным предком компонентов синхронного просмотра данных является класс TDBLookupControi, который инкапсулирует список значений для просмотра и сам механизм синхронного просмотра.

Как и в любом другом компоненте отображения данных, в компонентах синхронного просмотра должны присутствовать средства связывания с требуемым полем некоторого набора данных (табл. 15.7). Это уже известные свойства: DataSource - применяется для задания набора данных через компонент TDataSource и DataField - для определения требуемого поля набора данных. Для синхронного просмотра следует выбирать такое поле, значения которого не дают пользователю полной информации об объекте и совпадают с ключевым полем в таблице синхронного просмотра. Название этого поля может не совпадать с названием ключевого поля, но типы данных должны быть одинаковыми.

При проектировании баз данных желательно, чтобы такие поля все же носили одинаковыеназвания.

Теперь необходимо задать таблицу синхронного просмотра, ключевое поле и поле синхронного просмотра.

Набор данных, содержащий указанные поля, определяется через соответствующий компонент ТБа1а8оигсе В свойстве Ыз18оигсе.

Ключевое поле задается свойством КеуПеЫ. Во время работы компонента в свойстве КеуУа1ие содержится текущее значение, которое связывает между собой два набора данных.

Поле синхронного просмотра определяется свойством ListField. Здесь можно задавать сразу несколько полей, которые буцут отображаться в компоненте синхронного просмотра. Названия полей разделяются точкой с запятой. Если свойство не определено, то в компоненте будут отображаться значения ключевого поля. Свойство 1л81Р1е1с1тс1ех служит для выбора основного поля из списка. Дело в том, что компоненты синхронного просмотра поддерживают механизм наращиваемого поиска, который позволяет быстро находить нужное значение в больших списках. Свойство 1л81Р1е1сНпс1ех определяет, какое поле используется при наращиваемом поиске. В компоненте тов1оокирСотЬоВох свойство 1л81Р1е1сНпс1ех также определяет, какое поле будет передано в строку редактирования.

Таблица 15.7. Основныесвойства, включающие механизм синхронногопросмотра

Объявление

Тип

1 Описание

property KeyField: string; j

Pb

} Ключевое поле таблицы синхронного 1 просмотра

property KeyValue: Variant;

Pu

Текущее значение ключевого поля

property ListFieid: string;

I Pb

\ Поле или список полей синхронного про-| смотра в таблице синхронного просмотра

property ListFieidindex: Integer;

Pb

1 Номеросновногополясинхронного

] просмотра(используется,когдасвойство

! ивіРіеісісодержитсписок полей)

property ListSource: TDataSource;

Pb

| Указывает на компонентТОаьаЭоигсе, свя-| занный стаблицей синхронного просмотра

Таблица 15.7 (окончание)


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

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



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

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