Визуальные компоненты Delphi для работы с БД.



Визуальные компоненты, предназначенные собственно для работы с базами данных, расположены на странице Data Controls. Рассмотрим основные из них, их назначение и наиболее часто используемые свойства.

TDBGrid – предназначен для показа набора данных в табличном виде. Его свойство DataSource должно указывать на компонент TDataSource визуализируемого набора данных.

Набор показываемых на форме столбцов может задаваться двояко.

Если с помощью редактора столбцов (Columns Editor) определен хотя бы один столбец, то в таблице показываются только те столбцы, которые были явно определены в редакторе, и в том виде, в каком они были определены.

Если ни один столбец не определялся с помощью редактора столбцов, то показываются все столбцы набора данных в том виде и в том порядке, в каком они были определены в редакторе полей при создании компонентов TField соответствующего набора данных. Если компоненты TField не создавались, то используется определение полей из самой базы данных.

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

Для определения столбцов с помощью редактора столбцов в контекстном меню TDBGrid выбирается пункт Columns Editor…, а в контекстном меню появившегося окна пункт Add All Fields. В результате в таблицу будут добавлены все поля. В дальнейшем, поля, не подлежащие показу, удаляются из списка (Delete), а порядок полей в таблице может изменяться перетаскиванием полей в списке редактора столбцов.

Для каждого из столбцов можно указать ряд свойств, в частности:

· Alignment – способ выравнивания значений в столбце (влево, вправо, по центру);

· ReadOnly – допустимость редактирования значений в столбце;

· PickList – список для выбора возможных значений при редактировании (например, это может быть список единиц измерения);

· Title – свойства заголовка столбца (текст, шрифт и т.п.).

Сам компонент TDBGrid также имеет ряд свойств, определяющих его поведение. Эти свойства сгруппированы под общим наименованием Options. В частности, наибольший интерес представляют следующие из них:

· dgEditing – разрешение на изменение, добавление и удаление записей;

· dgAlwaysShowEditor – выбор поля автоматически переводит его в режим редактирования;

· dgConfirmDelete – перед удалением записи выдается запрос на подтверждение операции;

· dgRowSelect – инверсная полоса показывает всю выбранную запись, а не только выбранное поле (при этом редактирование записи непосредственно в TDBGrid запрещается);

· dgAlwaysShowSelection – инверсная полоса показывается всегда (и тогда, когда фокус управления не принадлежит TDBGrid), чтобы пользователю легко было видеть – какая запись является текущей;

· dgTabs – клавиша Tab используется для перемещения между столбцами (в обратном направлении – Shift+Tab). Иначе Tab используется для перемещения между компонентами.

Перемещение по таблице возможно с помощью клавиш управления курсором, клавиши Tab и мыши.

Редактирование, добавление и удаление записей непосредственно в DBGrid допускается, если:

  • свойство ReadOnly соответствующего НД установлено в False;
  • свойство ReadOnly самой DBGrid – False;
  • опция dgEditing – True;
  • свойство ReadOnly соответствующего столбца – False.

Для редактирования значения некоторого поля необходимо, находясь в нем, нажать Enter (или двойной щелчок мыши) или сразу начать набирать новое значение. При этом индикатор текущей записи в самой левой колонке DBGrid изменит вид с   на  I .

Для подтверждения изменений, внесенных в поле, следует нажать Enter или перейти к другому полю (Tab). Для отмены изменений следует нажать Esc. Для подтверждения изменений, внесенных во все поля записи, необходимо перейти к другой записи. Для отмены - второй раз нажать Esc.

Замечание: все изменения, вносимые в НД, должны соответствовать правилам БД (ссылочная целостность, бизнес-правила и т.п.), зафиксированным при создании базы. В противном случае изменения будут отвергнуты, и последует сообщение об ошибке (например, Key Violation, если нарушена уникальность первичного ключа или уникального индекса).

Для вставки новой записи необходимо нажать Insert или, находясь на последней записи, клавишу ↓. Для удаления записи – Ctrl+Delete.

Визуальные компоненты для работы с отдельными полями текущей записииспользуются в тех случаях, когда применение DBGrid вообще нецелесообразно (например, когда в записи много полей или они имеют большой размер) или когда нецелесообразно редактирование записей непосредственно в таблице DBGrid. Иногда DBGrid и компоненты для отдельных полей используются одновременно (например, в DBGrid показываются основные поля, а все остальные поля показываются отдельно только для текущей записи). Возможны и другие применения этих компонентов.

В свойствах визуальных компонентов, предназначенных для работы с отдельными полями, помимо указания набора данных в DataSource указывается также имя конкретного поля в свойстве DataField. Перечислим наиболее часто используемые компоненты (их вид приведен на рис. 19).

TDBText - предназначен для показа значения поля без возможности его редактирования (подобно Label).

TDBEdit - позволяет редактировать значение поля, которое находится в свойстве Text. При вводе автоматически отслеживается соответствие вводимых символов типу поля. Например, в числовое поле нельзя вводить буквы.

TDBCheckBox - обычно используется для отображения логических значений. Основное свойство - Checked. Когда оно установлено в True в компоненте проставляется «галка» выбора. Собственно значения поля, которым соответствует состояние свойства Checked, указываются в свойствах ValueChecked и ValueUnchecked.

TDBRadioGroup - набор переключателей с зависимой фиксацией. Варианты выбора перечисляются в свойстве Items. Номер выбранного варианта содержится в свойстве ItemIndex (нумерация начинается с нуля).

TDBComboBox - выпадающий список выбора. Items - список вариантов; ItemIndex - выбранный вариант.

TDBLookupComboBox (рис. 20) - по виду аналогичен TDBComboBox, но вместо фиксированного набора вариантов используется для подстановки значений в поля дочернего НД путем выбора соответствующих значений из родительского НД. Например, в записях таблицы наличия содержится условный номер предмета, но при вводе и показе значений этого поля пользователь должен иметь дело не с условным номером предмета, а с его наименованием. В таких случаях и используется TDBLookupComboBox. Его работа определяется следующими свойствами:

· DataSource - указывает на TDataSource дочернего НД (в данном примере NalichieDS), с которым ведется работа;

· DataField - поле дочернего НД (Predmet);

· ListSource - указывает на TDataSource родительского НД (PredmetyDS);

· ListField - поле родительского НД, значения которого будут показываться в списке выбора (Name);

· KeyField - поле родительского НД (NPredm), значение которого будет присвоено полю дочернего НД, указанному в свойстве DataField (Predmet), в результате выбора, сделанного пользователем.

 


Дата добавления: 2018-05-31; просмотров: 590; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!