Он-лайн самоучитель Visual FoxPro
Создание объекта Grid с помощью конструктора форм Форма для таблиц, имеющих отношение "один-ко-многим", с помощью мастера создается достаточно быстро. Но она требует определенной доработки в конструкторе форм. Поэтому вам необходимо уметь создавать многотабличные формы с помощью конструктора, чтобы при необходимости уметь их модифицировать. Для создания формы в конструкторе форм следует выполнить следующие действия:
- В окне Data Environment (Среда окружения) разместите таблицы, используемые в форме.
- Установите связи между таблицами.
- Разместите в форме поля главной таблицы.
- Создайте в форме объект Grid (Таблица) для отображения данных подчиненной таблицы.
Создание формы, содержащей объект Grid Рассмотрим создание формы, с помощью которой можно просмотреть информацию о клиентах, их телефонах и сделанных ими покупках. В отчете будем использовать следующие таблицы: Customer, Phoncust, Ordsalem, ordsaied и Goods. В таблицах содержится следующая информация:
- Сustomer — список клиентов;
- Phoncust — средства связи, по которым можно связаться с клиентом;
- Ordsalem — информация о продажах: номер заказа, дата заказа, код клиента, итоговая сумма заказа;
- O rdsaied — код, количество и стоимость проданного товара по данному заказу;
- Goods — информация о товарах.
Отношение между таблицами customer и Phoncust определяется как "одинко-многим", т. к. клиент может иметь несколько номеров телефона или факс для связи.
Отношение между таблицами Customer и Ordsalem также "один-ко-многим", поскольку каждый клиент может сделать несколько покупок.
Приступим к созданию формы.
- Откройте проект Sales.
- Откройте окно конструктора форм для создания новой формы.
- Откройте окно Data Environment (Среда окружения), выполнив команду Environment (Окружение) из меню View (Вид).
- Используя команду 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 — по коду товара.
- Установив все необходимые связи между таблицами и указав упорядочение данных (рис. 15.14), закройте окно Data Environment (Среда окружения).

Рис. 15.14. Окно Data Environment создаваемой формы
- Используя кнопки панели инструментов Form Controls (Элементы управления формы), расположите в форме заголовок, надписи и необходимые поля таблицы Customer.
- Выберите кнопку Grid (Таблица) на панели инструментов Form Controls (Элементы управления формы).
- Установите указатель в место предполагаемого расположения объекта и, удерживая кнопку мыши нажатой, переместите курсор по диагонали, нарисовав рамку требуемого размера.
- Для определения параметров созданного объекта выделите его и откройте окно свойств, выполнив команду Properties (Свойства) из меню View (Вид).
- Скорректируйте свойство coiumnCount (Количество столбцов) объекта Grid (Таблица), задав количество столбцов в создаваемом объекте равным 3.
- Если вы хотите изменить цвет сетки таблицы, определите свойство GridLineCoior (Цвет сетки таблицы) объекта Grid (Таблица).
- Используя свойство controisource (Источник данных) каждого из трех объектов column (Столбец), входящих в объект Grid (Таблица), свяжите столбцы с полями таблицы Phoncust.
-
Используя свойство caption (Надпись)
каждого из трех объектов Header (Заголовок), входящих в объект Grid (Таблица),
введите заголовки столбцов Вид связи, Номер кода и Номер. Чтобы заголовки
располагались по центру столбцов, скорректируйте для каждого из них свойство
Alignment (Выравнивание), установив значение Middle (По середине) Center (По
центру).
Определение первого объекта Grid (Таблица) завершено. Разместим в форме второй объект Grid (Таблица).
- Нажмите кнопку Grid (Таблица) на панели инструментов Form Controls (Элементы управления формы).
- Установите указатель в нижней части формы и, удерживая кнопку мыши в нажатом состоянии, переместите курсор по диагонали так, чтобы получилась рамка необходимого размера.
- Для определения параметров созданного объекта выделите его и откройте окно свойств.
- Скорректируйте свойство CoiumnCount (Количество столбцов) объекта Grid (Таблица), задав количество столбцов (6) в создаваемом объекте.
- Если необходимо выбрать цвет сетки таблицы, определите свойство GridLineCoior (Цвет сетки таблицы) объекта Grid (Таблица).
- Используя свойство controisource (Источник данных) каждого из пяти объектов column (Столбец), входящих в объект Grid (Таблица), выполните следующие действия:
- свяжите первые два столбца с полями cndoc и ddoc таблицы Ordsaiem;
- свяжите третий столбец с полем cnmgoods таблицы Goods;
- четвертый и пятый столбцы свяжите с полями nquant и nunitprice таблицы Ordsaled.
- Шестой столбец таблицы будет содержать вычисляемое поле, определяющее стоимость проданного товара. Используя свойство Controisource (источник данных) для шестого объекта Column (Столбец), задайте выражение для вычисляемого поля: Ordsaled.nQuant*Ordsaled.nUnitPrice
- Используя свойство caption (Надпись) каждого из шести объектов Header (Заголовок), входящих в объект Grid (Таблица), введите заголовки столбцов: Номер документа, Дата, Наименование товара, Количество, Цена и Стоимость. Чтобы заголовки столбцов располагались по центру, скорректируйте для каждого из них свойство Alignment (Выравнивание), установив значение Middle (По середине) center (По центру).
- Используя свойство ForeCoior каждого из пяти объектов Text (Текст), входящих в объект Grid (Таблица), установите цвет (например, красный) для выделения информации при установке курсора на данное поле.
- Добавьте в создаваемую форму кнопки перемещения по записям. Полученная форма показана на рис. 15.15.

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

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

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

Рис. 15.18. Форма с тремя объектами Grid
- Скорректируйте для вновь созданных объектов свойства, определяющие цвет сетки таблицы, расположение заголовков, цвета отображения заголовков и выводимых данных.
- Сохраните форму и запустите ее на выполнение. Вид созданной формы показан на рис. 15.18.
Назад | Оглавление | Дальше