Реляционные СУБД в Visual FoxPro 8

         

Создание объекта Grid с помощью конструктора форм

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

  1. В окне Data Environment (Среда окружения) разместите таблицы, используемые в форме.
  2. Установите связи между таблицами.
  3. Разместите в форме поля главной таблицы.
  4. Создайте в форме объект Grid (Таблица) для отображения данных подчиненной таблицы.

Создание формы, содержащей объект Grid

Рассмотрим создание формы, с помощью которой можно просмотреть информацию о клиентах, их телефонах и сделанных ими покупках. В отчете будем использовать следующие таблицы: Customer, Phoncust. Ordsaleir..ordsaied и Goods. В таблицах содержится следующая информация:

  • customer - список клиентов;
  • phoncust — средства связи, по которым можно связаться с клиентом;
  • ordsaiem — информация о продажах: номер заказа, дата заказа, код клиента, итоговая сумма заказа;
  • Ordsaied — код, количество и стоимость проданного товара но данному заказу;
  • Goods — информация о товарах.

Отношение между таблицами customer и phoncust определяется как "один-ко-многим", так как клиент может иметь несколько номеров телефона или факс для связи.

Отношение между таблицами customer и ordsalem также "один-ко-многим", поскольку каждый клиент может сделать несколько покупок.



Приступим к созданию формы.

  1. Откройте проект sales.
  2. Откройте окно конструктора форм для создания новой формы.
  3. Откройте окно Data Environment (Среда окружения), выполнив команду Environment (Окружение) из меню View (Вид).
  4. Используя команду Add (Добавить) из меню Data Environment (Среда окружения), Добавьте В форму таблицы Customer, Phoncust, Ordsalem, ordsaied и Goods. Между ними существуют следующие отношения:
    • customer — родительская по отношению к таблицам phoncust и Ordsalem;
    • Ordsalem — родительская по отношению к таблице Ordsaied;
    • ordsaied - родительская по отношению к таблице Goods. Связь между таблицами осуществляется:
    • Customer и Phoncust — по коду клиента;
    • Customer и Ordsalem — по коду Клиента;
    • Ordsalem и Ordsaied — по коду заказа;
    • Ordsaied и Goods — по коду товара.

    Данные В таблицах Customer, Ordsalem иPhoncust должны быть упорядочены по коду клиента, в ordsaied — по коду заказа, а в Goods — по коду товара.

  5. Установив все необходимые связи между таблицами и указав упорядочение данных (рис. 15.15), закройте окно Data Environment (Среда окру жения).
  6. Используя кнопки панели инструментов Form Controls (Элементы управления формы), расположите в форме заголовок, надписи и необходимые поля таблицы Customer.
  7. Выберите кнопку Grid (Таблица) на панели инструментов Form Controls (Элементы управления формы).
  8. Установите указатель в место предполагаемого расположения объекта и, удерживая кнопку мыши нажатой, переместите курсор по диагонали, нарисовав рамку требуемого размера.
  9. Для определения параметров созданного объекта выделите его и откройте окно свойств, выполнив команду Properties (Свойства) из меню View (Вид).
  10. Рис. 15.15. Окно Data Environment создаваемой формы

  11. Скорректируйте свойство coiumncount (Количество столбцов) объекта Grid (Таблица), задав количество столбцов в создаваемом объекте равнным 3.
  12. Если вы хотите изменить цвет сетки таблицы, определите свойство GridLineCoior (Цвет сетки таблицы) объекта Grid (Таблица).
  13. Используя свойство Controisource (Источник данных) каждого из трех объектов column (Столбец), входящих в объект Grid (Таблица), свяжите столбцы с полями таблицы Phoncust.
  14. Используйте Caption (Надпись) каждого из трех объектов Header (Заголовок), входящих в объект Grid (Таблица), введите заголовки столбцов Вид связи, Номер кода и Номер. Чтобы заголовки располагались по центру столбцов, скорректируйте для каждою из них свойстве Alignment (Выравнивание), установив значение Middle center (По середине, в центре).
  15. Определение первого объекта Grid (Таблица) завершено. Разместим в форме второй объект Grid (Таблица).

  16. Нажмите кнопку Grid (Таблица) на панели инструментов Form Controls (Элементы управления формы).
  17. Установите указатель в нижней части формы и, удерживая кнопку мыши в нажатом состоянии, переместите курсор по диагонали так, чтобы получилась рамка необходимого размера.
  18. Для определения параметров созданного объекта выделите его и откройте окно свойств.
  19. Скорректируйте свойство coiumncount (Количество столбцов) объекта Grid (Таблица), задав количество столбцов (6) в создаваемом объекте.
  20. Если необходимо выбрать цвет сетки таблицы, определите свойство GridLineCoior (Цвет сетки таблицы) объекта Grid (Таблица).
  21. Используя свойство controisource (Источник данных) каждого из пяти объектов column (Столбец), входящих в объект Grid (Таблица), выполните следующие действия:
    • свяжите первые два столбца с полями cnDoc и dDoc таблицы Ordsalem;
    • свяжите третий столбец с полем cnmGoods таблицы Goods;
    • четвертый и пятый столбцы свяжите с полями nQuant и nUnitPrice таблицы Ordsaled.
  22. Шестой столбец таблицы будет содержать вычисляемое поле, определяющее стоимость проданного товара. Используя свойство Controisource (Источник данных) для шестого объекта column (Столбец), задайте выражение для вычисляемого поля:

    Ordsaled.nQuant*Ordsaled.nUnitPrice

  23. Используя свойство caption (Надпись) каждого из шести объектов Header (Заголовок), входящих в объект Grid (Таблица), введите заголовки столбцов: Номер документа, Дата, Наименование товара, Количество, Цена и Стоимость. Чтобы заголовки столбцов располагались по центру, скорректируйте для каждого из них свойство Alignment (Выравнивание), установив значение Middle center (По середине, в центре).
  24. Используя свойство Forecoior каждого из пяти объектов Text (Текст), входящих в объект Grid (Таблица), установите цвет (например, красный) для выделения информации при установке курсора на данное поле.
  25. Добавьте в создаваемую форму кнопки перемещения по записям. Полученная форма показана на рис. 15.16.
  26. Сохраните созданную форму и запустите ее на выполнение. Отметьте, что при перемещении по записям таблицы Customer в первом объекте Grid (Таблица) отображается список телефонных номеров, по которым можно связаться с клиентом, а во втором объекте Grid (Таблица) показывается полный список товаров, купленных данным клиентом (рис. 15.17).

Рис. 15.16. Многотабличная форма

Рис. 15.17. Просмотр многотабличной формы

Создание формы, содержащей три объекта Grid

В рассмотренном примере мы использовали поля формы для отображения информации главной таблицы. Модифицируем созданную форму и разместим поля таблицы customer в объекте Grid (Таблица).

  1. Откройте в окне конструктора форм созданную в предыдущем примере форму и сохраните ее под новым именем.
  2. Удалите из формы все поля и надписи, оставив только объекты Grid (Таблица) (рис. 15.18).
  3. Рис. 15.18. Удаление из формы полей ввода и надписей к ним

  4. Нажмите кнопку Grid (Таблица) на панели инструментов Form Controls (Элементы управления формы), установите указатель в левой верхней части формы и создайте новый объект Grid (Таблица).
  5. В окне свойств созданного объекта скорректируйте для объекта Grid (Таблица) свойство columncount (Количество столбцов), задав количество столбцов (4) в создаваемом объекте.
  6. Свяжите столбцы объекта с полями cCompany, cLastName, cFirstName и cAddress таблицы Customer.
  7. Скорректируйте для вновь созданных объектов свойства, определяющие цвет сетки таблицы, расположение заголовков, цвета отображения заголовков и выводимых данных.
  8. Сохраните форму и запустите ее на выполнение. Вид созданной формы показан на рис. 15.19.

Рис. 15.19. Форма с тремя объектами Grid


Содержание раздела