FoxPro8
938aad90

Создание формы с вкладками


Visual FoxPro позволяет создавать формы, содержащие несколько вкладок. Объекты данного типа удобно использовать в том случае, когда необходимо разместить большой объем информации или для удобства работы требуется основную, наиболее часто используемую информацию, сгруппировать в одном месте, отделив от менее важной информации.

Чтобы создать вкладки в форме, необходимо воспользоваться кнопкой Page Frame (Вкладка)

панели инструментов Form Controls (Элементы управления формы). Созданный объект содержит в контекстном меню команду Edit (Правка), указывающую, что он является сложным объектом, в котором вкладки наделены своими собственными свойствами. Количество вкладок задается свойством PageCount (Количество вкладок). В процессе создания формы переход с одной вкладки на другую осуществляется в режиме редактирования.

Создание объекта типа Page Frame (Вкладка) рассмотрим на примере разработки многостраничной формы для таблицы customer. Форма будет содержать две вкладки. На первой вкладке будет располагаться объект Grid (Таблица), содержащий список всех клиентов, а на второй — дополнительные данные о выбранном на первой вкладке клиенте.

  • Откройте Проект Sales.
  • Откройте окно конструктора форм для создания новой формы. Скорректируйте свойство caption (Надпись) формы, введя заголовок формы Список клиентов.
  • Откроите диалоговое окно Data Environment (Среда окружения), выполнив команду Environment (Окружение) из меню View (Вид).
  • Используя команду Add (Добавить) всплывающего меню, добавьте в форму таблицу customer. Закройте диалоговое окно.
  • Нажмите кнопку Page Frame (Вкладка) на панели инструментов Form Controls (Элементы управления формы).
  • Установите указатель в форму и, удерживая кнопку мыши в нажатом состоянии, переместите курсор по диагонали так, чтобы получилась рамка размером с форму (рис. 15.20).
  • Откройте окно свойств созданного объекта. Убедитесь, что для свойства PageCount. определяющего количество вкладок формы, по умолчанию установлено значение 2.
  • Скорректируйте свойство caption (Надпись) для объектов Pagei и Раде2. определяющих заголовок каждой вкладки. Для объекта Pagei введите заголовок Основная информация, а для объекта Раде2 — Дополнительная информация

  • Для перехода в режим редактирования объекта Page Frame (Вкладка) выберите команду Edit (Правка) контекстного меню. Вокруг объекта появилась штриховая контурная рамка.




  • Убедитесь, что вы находитесь на первой вкладке объекта Page Frame (Вкладка). Для этого щелкните на вкладке Основная информация в верхней части формы.




  • Рис. 15.20. Размещение в форме объекта Page Frame

  • Используя кнопку Grid (Таблица) на панели инструментов Form Controls (Элементы управления формы), создайте объект Grid (Таблица) для отображения полей icdCustomer, cCompany таблицы Customer.


  • В третьем столбце таблицы для отображения фамилии, имени и отчества представителя в свойстве controisource (Источник данных) введите выражение следующего вида:

    all trim(customer.cLastname) + " " + alltrim(customer.cFirstname) + " " + alltrim(customer.cSecondname)

  • Определите заголовки столбцов и другие параметры созданного объекта Grid (Таблица).


  • В нижней части страницы расположите кнопки перемещения по записям таблицы и выхода из формы.


  • На рис. 15.21 представлена первая вкладка созданной формы.



    Рис. 15.21. Первая страница многостраничной формы

  • Перейдите на вторую вкладку объекта Page Frame (Вкладка). Для этого щелкните на названии вкладки Дополнительная информация в верхней части формы.


  • Совет

    Если ваша попытка перейти на вторую вкладку оказалось безуспешной, убедитесь, что объект Page Frame (Вкладка) находится в режиме редактирования.

  • На второй странице объекта расположите все поля таблицы customer и надписи к ним.


  • При переходе на другую вкладку формы необходимо обновлять значения данных, отображаемых в ней. Для этого вы можете использовать событие Activate (Активизация) каждой вкладки Объекта Page Frame (Вкладка). Откройте окно редактирования процедуры обработки данною события и введите следующую команду, использующую метод Refresh (Обновить):


  • _screen.ActiveForm.Refresh()

    Окно процедур для метода Refresh представлено на рис. 15.22.

    Замечание

    Обратите внимание, что после ввода информации в окно процедуры в свойстве данного метода появляется значение [user Procedure].



    Рис. 15.22. Окно процедур для метода Refresh

  • Сохраните созданную форму и запустите ее на выполнение.


  • Используя первую вкладку формы, вы можете, перемещаясь по записям таблицы, просмотреть весь список клиентов. Для просмотра дополнительной информации по любому из клиентов установите на него курсор и нажмите ярлык Дополнительная информация. В результате откроется вторая вкладка формы (рис. 15.23), на которой располагается дополнительная информация о выбранном клиенте.



    Рис. 15.23. Вторая вкладка формы


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