Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проектирование БД в Delphi ВТиП.doc
Скачиваний:
53
Добавлен:
17.03.2016
Размер:
3.62 Mб
Скачать
      1. Компонент tdbRadioGroup

Компонент TDBRadioGroup служит для представления фиксированного набора возможных значений поля при помощи группы переключателей. Этот компонент обладает функциональностью стандартного переключателя TDBRadioGroup, но источником данных и их приемником для него служит поле НД. На рисунке 12.9 этот компонент позволяет определить тип накладной.

Количество и названия вариантов возможных значений поля определяются в свойстве

property Items: TStrings;

Компонент будет связывать установку того или иного переключателя с соответствующим значением поля. Для этого список возможных значений определяется свойством

property Values: TStrings;

Например, для формы на рисунке 12.9 свойства Items и Values компонента dbrgType типа TDBRadioGroup определены так, как показано на рисунке 11.10.

а б

Рисунок 8.73 –Значения свойств компонента TDBRadioGroup: a ‑  Items, б ‑ Values

      1. Списочные компоненты

Визуализирующие компоненты типа TDBListBox,TDBComboBox,TDBLookupComboBox,TDBLookupListBoxимеют связанные с ними спискиTStringsи поэтому дальше объединяются общим названиемсписочные компонентыБД.

Списочные компоненты предназначены для отображения состояния конкретного поля текущей записи НД, а также для ввода в это поле нового значения (но никак не для навигации поНД!). Первые два компонента имеют первоначально пустые списки, которые программист должен наполнить перед тем, как они станут доступными пользователю. КомпонентыTDBLookupXXXXформируют свои списки значениями, взятыми из поля другогоНД, и не нуждаются в их наполнении - вот, собственно, и вся разница между ними и первыми двумя компонентами.

Компоненты TDBListBoxиTDBLookupListBoxмогут отображать текущее значение связанного с ними поля только в том случае, если это значение совпадает с одним из списочных значений компонента, два других отображают любое значение поля, даже если этого значения нет в связанных с компонентами списках. Точно так же вводить новое значение компонентыXXXXListBoxмогут только из своих списков, в то время как компонентыXXXXComboBoxв модификацияхcsSimpleиcsComboBoxсодержат текстовую строку для ввода значения, которого нет в списке.

Компоненты TDBLookupXXXXмогут использоваться двумя способами: если в редактируемомНДесть нужное подстановочное поле, для них, как и для других рассматриваемых в этом разделе компонентов, достаточно определить лишь свойстваDataSourceиDataField, причем в последнем указать имя подстановочного поля; если вНДнет подстановочного поля, в свойствоDataSourceпомещается имя компонента-источника, связанного с редактируемымНД, в свойствоDataField- имя поля с шифром (ссылочного поля) этогоНД, в свойствоListSource- имя компонента-источника, связанного с подстановочнымНД, вListField- имя отображаемого (результирующего) поля и, наконец, вKeyField- имя индексного поля, на которое ссылается полеDataFieldредактируемогоНД. Например, в форме на рисунке12.9компонентTLookupComboBoxиспользуется для отображения имени партнера. В первом варианте использования в его свойствоDataSourceнужно поместить значениеDM.DataSource1, а в свойствоDataField- имя подстановочного поляFirm. Во втором варианте предварительно в модуле данных нужно разместить компонентDataSource3, связав его сНДFirms, в свойствоDataSourceпо-прежнему помещается значениеDM.DataSource1, а вот в свойствоDataField- имя подстановочного поляNFirm, при этом вListSource- значениеDM.DataSource3, вListField-Fnameи вKeyField-FirmID. Способ использования компонента не имеет значения: в любом случае в полеNFirmНДtbNaklsбудет помещен шифр выбранного партнера.