Базы данных Visual Foxpro

         

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

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



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

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

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

  • Сustomer — список клиентов;
  • Phoncust — средства связи, по которым можно связаться с клиентом;
  • Ordsalem — информация о продажах: номер заказа, дата заказа, код клиента, итоговая сумма заказа;
  • O rdsaied — код, количество и стоимость проданного товара по данному заказу;
  • 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 — по коду товара.

  1. Установив все необходимые связи между таблицами и указав упорядочение данных (рис. 15.14), закройте окно Data Environment (Среда окружения).

Рис. 15.14. Окно Data Environment создаваемой формы

  1. Используя кнопки панели инструментов Form Controls (Элементы управления формы), расположите в форме заголовок, надписи и необходимые поля таблицы Customer.
  2. Выберите кнопку Grid (Таблица) на панели инструментов Form Controls (Элементы управления формы).
  3. Установите указатель в место предполагаемого расположения объекта и, удерживая кнопку мыши нажатой, переместите курсор по диагонали, нарисовав рамку требуемого размера.
  4. Для определения параметров созданного объекта выделите его и откройте окно свойств, выполнив команду Properties (Свойства) из меню View (Вид).
  5. Скорректируйте свойство coiumnCount (Количество столбцов) объекта Grid (Таблица), задав количество столбцов в создаваемом объекте равным 3.
  6. Если вы хотите изменить цвет сетки таблицы, определите свойство GridLineCoior (Цвет сетки таблицы) объекта Grid (Таблица).
  7. Используя свойство controisource (Источник данных) каждого из трех объектов column (Столбец), входящих в объект Grid (Таблица), свяжите столбцы с полями таблицы Phoncust.
  8. Используя свойство caption (Надпись) каждого из трех объектов Header (Заголовок), входящих в объект Grid (Таблица), введите заголовки столбцов Вид связи, Номер кода и Номер. Чтобы заголовки располагались по центру столбцов, скорректируйте для каждого из них свойство Alignment (Выравнивание), установив значение Middle (По середине) Center (По центру).

    Определение первого объекта Grid (Таблица) завершено. Разместим в форме второй объект Grid (Таблица).

  9. Нажмите кнопку Grid (Таблица) на панели инструментов Form Controls (Элементы управления формы).
  10. Установите указатель в нижней части формы и, удерживая кнопку мыши в нажатом состоянии, переместите курсор по диагонали так, чтобы получилась рамка необходимого размера.
  11. Для определения параметров созданного объекта выделите его и откройте окно свойств.
  12. Скорректируйте свойство CoiumnCount (Количество столбцов) объекта Grid (Таблица), задав количество столбцов (6) в создаваемом объекте.
  13. Если необходимо выбрать цвет сетки таблицы, определите свойство GridLineCoior (Цвет сетки таблицы) объекта Grid (Таблица).
  14. Используя свойство controisource (Источник данных) каждого из пяти объектов column (Столбец), входящих в объект Grid (Таблица), выполните следующие действия:
  • свяжите первые два столбца с полями cndoc и ddoc таблицы Ordsaiem;
  • свяжите третий столбец с полем cnmgoods таблицы Goods;
  • четвертый и пятый столбцы свяжите с полями nquant и nunitprice таблицы Ordsaled.
  1. Шестой столбец таблицы будет содержать вычисляемое поле, определяющее стоимость проданного товара. Используя свойство Controisource (источник данных) для шестого объекта Column (Столбец), задайте выражение для вычисляемого поля: Ordsaled.nQuant*Ordsaled.nUnitPrice
  2. Используя свойство caption (Надпись) каждого из шести объектов Header (Заголовок), входящих в объект Grid (Таблица), введите заголовки столбцов: Номер документа, Дата, Наименование товара, Количество, Цена и Стоимость. Чтобы заголовки столбцов располагались по центру, скорректируйте для каждого из них свойство Alignment (Выравнивание), установив значение Middle (По середине) center (По центру).
  3. Используя свойство ForeCoior каждого из пяти объектов Text (Текст), входящих в объект Grid (Таблица), установите цвет (например, красный) для выделения информации при установке курсора на данное поле.
  4. Добавьте в создаваемую форму кнопки перемещения по записям. Полученная форма показана на рис. 15.15.

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

  1. Сохраните созданную форму и запустите ее на выполнение. Отметьте, что при перемещении по записям таблицы customer в первом объекте Grid (Таблица) отображается список телефонных номеров, по которым можно связаться с клиентом, а во втором объекте Grid (Таблица) показывается полный список товаров, купленных данным клиентом (рис. 15.16).

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

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

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

  1. Откройте в окне конструктора форм созданную в предыдущем примере форму и сохраните ее под новым именем.
  2. Удалите из формы все поля и надписи, оставив только объекты Grid (Таблица) (рис. 15.17).
  3. Нажмите кнопку Grid (Таблица) на панели инструментов Form Controls (Элементы управления формы), установите указатель в левой верхней части формы и создайте новый объект Grid (Таблица).
  4. В окне свойств созданного объекта скорректируйте для объекта Grid (Таблица) свойство coiumncount (Количество столбцов), задав количество столбцов (4) в создаваемом объекте.
  5. Свяжите столбцы объекта с полями ccompany, clastname, cfirstname и caddress таблицы Customer.

Рис. 15.17. Удаление из формы полей ввода и надписей к ним

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

  1. Скорректируйте для вновь созданных объектов свойства, определяющие цвет сетки таблицы, расположение заголовков, цвета отображения заголовков и выводимых данных.
  2. Сохраните форму и запустите ее на выполнение. Вид созданной формы показан на рис. 15.18.

 

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