Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Proektirovanie_BD_v_Delphi_VTiP.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.82 Mб
Скачать

4.6.2Редактирование объекта-столбца

Для редактируемого конкретного объекта-столбца, например NaklID, выделите его в окне редактора столбцов. Затем в окне Object Inspector раскройте список свойства FieldName редактируемого компонента и выберите поле NaklID.

Теперь раскройте список вложенных свойств сложного свойства Title и в его вложенное свойство Caption введите заголовок столбца - № накл. Поместите в свойство Width (Size) ширину колонки 40 (в пикселах экрана).

Руководствуясь таблицей 3.1, создайте остальные объекты-столбцы для сеток.

Для удобства расположения данных в сетке DBGrid, в редакторе столбцов объекты-столбцы можно перемещать вверх и вниз.

Рисунок 3.41 – Заполненное окно редактора столбцов

Внимание! Действует следующее правило: если для сетки DBGrid не создан ни один объект-столбец, в ней отображаются все не "спрятанные" объекты-столбцы, но если в сетке создан хотя бы один объект-столбец, сетка будет отображать данные только из явно созданных объектов-столбцов.

4.7Объекты-поля наборов данных

Поля НД TTable или TQuery выступают как целостная конструкция и не могут рассматриваться и использоваться в программе отдельно.

4.7.1Назначение объектов-полей

Объекты-поля НД становятся "заменителем" соответствующих полей НД и выступают как самостоятельные объекты, которые удобно использовать в программе как отдельные обрабатываемые сущности. Они очень активно используются при формировании сложных запросов к БД.

В частности, механизм создания объектов-полей позволяет расширить исходные НД за счет введения в них полей, которые реально находятся в других таблицах БД или формируются как результат обработки исходных полей. Так, например, чтобы показать в сетках названия партнеров и книг, к исходному НД tbNakls необходимо добавить подстановочные (Lookup) поля из других таблиц.

4.7.2Создание объектов-полей

Ниже показано как создаются объекты-поля для компонент типа TTable. Cовершенно аналогично объекты-поля создаются для компонент типа TQuery.

Перейдите к модулю данных DM и нажмите клавишу F12 для визуализации окна модуля данных.

Двойным щелчком на компоненте tbNakls откройте окно редактора полей (Рисунок 3 .42.а).

Щелкните в окне редактора правой кнопкой мыши и в контекстном меню выберите команду Add all fields - окно редактора заполнится списком всех полей таблицы NAKLS (Рисунок 3 .42.б).

а) незаполненное

б) заполненное

Рисунок 3.42 – Окно редактора полей

Этот список означает, что теперь для каждого поля НД tbNakls создан специальный объект-поле со своими свойствами, методами и событиями.

Если вы щелкнете на любом поле в окне редактора полей, то в окне инспектора объектов станут доступными свойства и события объекта-поля. По умолчанию Delphi присваивает объекту-полю имя, полученное сцеплением имени НД и имени поля, так что теперь в программе окажутся компоненты с именами NaklsNakllD, NaklsNFirm, NaklsNDate и т. д.

Рисунок 3.43 – Окно Object Inspector для поля NaklId, выделенного в редакторе полей

Перечень этих компонентов можно увидеть в окне Object TreeView, а их объявление в классе TDM кода модуля данных.

Рисунок 3.44 – Окно Object TreeView для полей в редакторе полей

Внимание! Следует помнить, что если для НД, например tbNakls:

  1. Не созданы объекты-поля, он содержит данные из всех полей соответствующей таблицы NAKLS;

  2. Создан хотя бы один объект-поле, соответствующий НД tbNakls будет содержать значения только тех полей, для которых явно созданы объекты-поля.

Поэтому лучше принудительно создавать объекты-поля для всех полей НД. Более того, если необходимо расширить НД за счет добавления к нему подстановочных полей из других таблиц, то без объектов-полей в этом случае просто не обойтись.

Описанным выше образом создайте объекты-поля и для НД tbMove.

Примечание 1. Создание объектов-полей для каждого используемого в программе НД можно считать признаком хорошего стиля программирования, так как они упрощают доступ к данным и дают программисту дополнительные возможности. Так с помощью свойства DisplayLabel можно изменить заголовки соответствующих колонок в сетках отображения данных. С помощью обработчика события OnGetText можно изменить формат отображения данных и т.п.

Примечание 2. Использовать свойство Visible = False объектов-полей для их сокрытия в сетке DBGrid нецелесообразно, так как скрытые объекты-поля не будут видны не только в этой сетке, но и в любом другом визуализирующем компоненте Delphi (эти компоненты сосредоточены на вкладке Data Controls палитры компонентов), что затруднит редактирование и ввод данных для соответствующих НД.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]