Для перехода к следующему шагу...


Для перехода к следующему шагу нажмите кнопку Next (Далее). На третьем шаге мастера необходимо установить связь между таблицами. используемыми в форме (рис. 15.10). В диалоговом окне размещены два раскрывающихся списка, содержащие индексы и поля исходных таблиц. В нашем примере для установления связи воспользуемся ключевым полем icdCustomer таблицы Customer и индексом icdCustomer таблицы phoncust. Установив связь между таблицами, нажмите кнопку Next (Далее).

Для перемещения по записям таблицы...



Для перемещения по записям таблицы customer можно использовать размещенную справа от таблицы полосу прокрутки.

Рис. 15.5. Использование в форме объекта Grid для отображения информации в табличном виде



Для задания стиля отображения...


Для задания стиля отображения данных в таблице перейдите па вкладку Style (Стиль). Используя одноименный список, выберите один из вариантов оформления таблицы (рис. 15.2). По умолчанию заголовки столбцов совпадают с именами полей таблицы, заданными в свойстве caption (Надпись) конструктора таблиц. Чтобы переопределить заголовки столбцов объекта Grid (Таблица), перейдите на вкладку Layout (Расположение) (рис. 15.3). Она содержит создаваемый объект с реальными данными. При перемещении по столбцам таблицы в поле ввода Caption (Надпись) вкладки отображается наименование данного столбца. Для изменения наименования столбца скорректируйте имя, отображаемое в этом поле.



Добавление данных в список



Добавление данных в список

В главе 6 мы рассматривали использование объектов типа ListBox (Список), которые значительно облегчают ввод данных в поля, одновременно избавляя от дополнительных ошибок, которые могут возникнуть при вводе. Список может формироваться из значений, содержащихся в поле таблицы, массива, запроса и т. п. В этой главе рассмотрим создание списка, значения которого вводятся пользователем в интерактивном режиме с использованием дополнительного поля ввода.

Создание списка рассмотрим на примере редактирования поля, содержащего город, для таблицы customer. Выполните следующие действия:

Откройте форму для ввода списка клиентов в окне конструктора форм. Нажмите кнопку List Box (Список)

Расширенные средства ввода данных



Глава 15. Расширенные средства ввода данных

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



Использование построителя



Использование построителя

Использование построителя ускоряет размещение объекта в форме и определение его свойств. Особенно заметным это преимущество становится при создании сложных объектов, к числу которых относится объект Grid (

Набор форм



Набор форм

В Visual FoxPro вы можете объединить несколько форм в набор форм. Для этого служит команда Create Form Set (Создать набор форм) из меню Form (Форма), создающая объект Formset.

Создадим объект Forrmset из двух форм. Первая форма содержит данные о клиентах таблицы customer, а вторая — итоговую сумму покупок клиентов. Для создания набора форм выполните следующие действия:

Откройте Проект Sales. Откройте окно конструктора для создания новой формы. Выберите в меню Form (Форма) команду Create Form Set (Создать набор форм). Откройте окно Data Environment (Среда окружения) и добавьте в окружение таблицу customer и представление данных sumcust, содержащее сведения об итоговой стоимости покупок клиентов. Скорректируйте свойство caption (Надпись) для первой формы, введя заголовок Клиенты. В форме создайте объект Grid (

Отображение данных в форме в табличном виде



Отображение данных в форме в табличном виде

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

В Visual FoxPro для отображения в форме данных в табличном режиме используется объект Grid (

Рассмотрим пример размещения объекта...



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

Для создания формы, в которой данные будут представлены в табличном виде, выполните следующие действия: Откройте проект Sales. Выберите вкладку Documents (Документы), перейдите в группу Forms (Формы), а затем нажмите кнопку New (Новый). В открывшемся диалоговом окне New Form (Новая форма) выберите опцию New Form (Новая форма). На экране открывается окно конструктора форм. Откройте окно среды окружения формы Data Environment (Среда окружения), выполнив команду Environment (Окружение) из меню View (Вид). Для добавления таблицы в окружение выполните команду контекстного меню Add (Добавить). В открывшемся диалоговом окне Add Table or View (Добавить таблицу или представление данных) выберите таблицу customer и нажмите кнопку ОК. В окне Data Environment (Среда окружения) появилась выбранная таблица. Закройте окно окружения. Нажмите кнопку Builder Lock (Закрепитель построителя)

Диалоговое окно Grid Builder



Рис. 15.1. Диалоговое окно Grid Builder




Используя кнопки со стрелками, перенесите из списка Available fields (Имеющиеся поля) в список Selected fields (Выбранные поля) поля, ко торые вы хотите разместить, используя объект Grid (

Определение стиля объекта...



Таблица) для создания многотабличных форм вы можете выбрать вкладку Relationship (Отношение) (рис. 15.4) и на ней задать ключевое поле главной таблицы и индекс подчиненной таблицы. Если вторая таблица не добавлена в окружение формы, нажмите кнопку, расположенную рядом со списком Key field in parent table (Ключевое поле в родительской таблице), и в открывшемся диалоговом окне Open (Открыть) выберите необходимую таблицу. Она будет добавлена построителем в окружение формы.



Вкладка Relationship для установки связи между таблицами



Рис. 15.4. Вкладка Relationship для установки связи между таблицами


После завершения определения всех параметров нажмите кнопку ОК для закрытия окна построителя. Используя кнопку Label (Текстовый объект) на панели инструментов Form Controls (Элементы управления формы), разместите заголовок в форме.

На рис. 15.5 представлена форма, содержащая созданный объект Grid (

Окно свойств объекта Grid



Рис. 15.6. Окно свойств объекта Grid




Диалоговое окно для выбора мастера многотабличной формы



Рис. 15.7. Диалоговое окно для выбора мастера многотабличной формы


На экране открывается диалоговое окно, предназначенное для выбора мастера создания формы (рис. 15.7). Поскольку мы создаем форму для связанных таблиц, выберите опцию One-to-Many Form Wizard (Мастер формы с отношением один-ко-многим) и нажмите кнопку ОК для вызова мастера многотабличной формы. В области Databases and tables (Базы данных и таблицы) выберите главную таблицу формы Customer. После выбора таблицы в списке Available fields (Имеющиеся поля) появится перечень всех полей данной таблицы. Перенесите из этого списка в список Selected fields (Выбранные поля) поля, которые вы хотите поместить в создаваемую форму из данной таблицы (рис. 15.8). Затем нажмите кнопку Next (Далее) для перехода к следующему шагу.

Выбор полей главной таблицы



Рис. 15.8. Выбор полей главной таблицы




На втором шаге работы мастера выберите подчиненную таблицу и ее поля, которые будут размещены в форме в виде объекта Grid (

Выбор полей подчиненной...



Рис. 15.10. Установка связи между таблицами


На четвертом шаге (рис. 15.11) необходимо установить стиль отображения объектов формы, воспользовавшись значениями из списка Style (Стиль), и тип кнопок управления, выбрав одну из опций в группе Button type (Тип кнопки). Выберите стиль, просмотрите результат выбора в верхней части диалогового окна. Затем выберите тип отображения кнопок управления (с текстовыми надписями или с изображениями). Если вы не хотите размещать кнопки в форме, установите опцию No buttons (Без кнопок). После того как вы установили требуемые параметры, нажмите кнопку Next (Далее).

Выбор стиля отображения полей и управляющих кнопок



Рис. 15.11. Выбор стиля отображения полей и управляющих кнопок




Установка критерия сортировки данных



Рис. 15.12. Установка критерия сортировки данных


На следующем шаге формируется список полей, по которым будет осуществляться сортировка отображаемых в форме данных. Для переноса поля из списка Available fields or index tag (Имеющиеся поля и индексы) в список Selected fields (Выбранные поля) установите курсор на поле или индекс, по значению которого требуется упорядочивать данные, и нажмите кнопку Add (Добавить). Если вы ошибочно перенесли не то поле или индекс, удалить его из списка Selected fields (Выбранные поля) можно с помощью кнопки Remove (Удалить). Установите опцию Ascending (По возрастанию) или Descending (По убыванию), определяющую, по возрастанию или по убыванию значения выбранного поля будут упорядочиваться данные (рис. 15.12). Для перехода к следующему шагу создания формы нажмите кнопку Next (Далее). На последнем, шестом шаге, в поле ввода Type a title for your form (Введите заголовок формы) задайте заголовок, размещаемый в форме, и выберите один из трех вариантов продолжения работы с формой (рис. 15.13) (табл. 15.3).

Заключительное диалоговое окно мастера



Рис. 15.13. Заключительное диалоговое окно мастера




Многотабличная форма, созданная с помощью мастера форм



Рис. 15.14. Многотабличная форма, созданная с помощью мастера форм


Посмотрите на форму, созданную с помощью мастера (рис. 15.14). Надписи к полям основной таблицы созданы с использованием информации, введенной в поле Caption (Надпись) свойства таблицы. Однако при формировании названий столбцов объекта Grid (

Окно Data Environment...



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

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

Нажмите кнопку Grid (

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



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

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

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



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




Используя кнопку Grid (

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



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


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

Совет
Совет

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

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

_screen.ActiveForm.Refresh()

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

Замечание
Замечание

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

Окно процедур для метода Refresh



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


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

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



Вторая вкладка формы



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




Использование таймера в форме



Рис. 15.25. Использование таймера в форме




Просмотр итоговых продаж через заданный промежуток времени



Рис. 15.26. Просмотр итоговых продаж через заданный промежуток времени


При работе в сети каждые десять минут на экране будет обновляться информация об итоговом количестве продаж товаров и их стоимости. На рис. 15.25 показан вид созданной формы, а на рис. 15.26 — просмотр данных с помощью этой формы.





Определение свойства KeyPress



Рис. 15.27. Определение свойства KeyPress


Теперь при запуске формы на выполнение значения, введенные в поле ввода Поле формирования списка, при нажатии клавиши <Enter> переносятся в список городов (рис. 15.28).



Формирование списка с помощью поля ввода в диалоговом режиме



Рис. 15.28. Формирование списка с помощью поля ввода в диалоговом режиме




Создание формы с использованием таймера



Создание формы с использованием таймера

Рассмотрим пример использования таймера в форме, в которой через заданный интервал времени на экран будут выводиться данные о количестве продаж каждого товара на текущий момент времени. Форма будет отображать информацию из представления данных, содержащего наименование товара, суммарное количество проданного товара и сумму продаж по товару: В проекте Sales, используя таблицы Goods, Ordsaled и Ordsalem, создайте представление данных, содержащее наименование товара, суммарное количество проданного товара и суммы продаж по данному товару. Сгруппируйте данные по коду товара. Сохраните созданное представление данных. Откройте новое окно конструктора форм. Откройте окно среды окружения формы и добавьте в него созданное представление. Создайте в форме объект Grid (

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



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

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

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

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


customer - список клиентов; phoncust — средства связи, по которым можно связаться с клиентом; ordsaiem — информация о продажах: номер заказа, дата заказа, код клиента, итоговая сумма заказа; Ordsaied — код, количество и стоимость проданного товара но данному заказу; 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.15), закройте окно Data Environment (Среда окру жения). Используя кнопки панели инструментов Form Controls (Элементы управления формы), расположите в форме заголовок, надписи и необходимые поля таблицы Customer. Выберите кнопку Grid (

Создание многотабличной формы с помощью мастера



Создание многотабличной формы с помощью мастера

Рассмотрим создание формы для связанных таблиц customer и Phoncust, имеющих отношение "один-ко-многим", с помощью мастера.

Создание многотабличных форм для таблиц, имеющих отношение "один-ко-многим"



Создание многотабличных форм для таблиц, имеющих отношение "один-ко-многим"

Во всех рассмотренных нами ранее примерах по созданию форм использовались связанные таблицы с отношением между ними "один-к-одному" или "многие-к-одному". При создании приложений очень часто возникает необходимость просмотра и редактирования данных, имеющих отношение "один-ко-многим". В этом случае при создании формы для отображения записей основной таблицы можно использовать поля формы или объект Grid (

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



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

Форма для таблиц, имеющих отношение "один-ко-многим", с помощью мастера создается достаточно быстро. Но она требует определенной доработки в конструкторе форм. Поэтому вам необходимо уметь создавать многотабличные формы с помощью конструктора, чтобы при необходимости их модифицировать. Для создания формы в конструкторе форм необходима следующая последовательность шагов: В окне Data Environment (Среда окружения) разместите таблицы, используемые в форме. Установите связи между таблицами. Разместите в форме поля главной таблицы. Создайте в форме объект Grid (

Свойства объекта Column Объект...


Используя свойства объекта column (Столбец), можно задать цвет фона столбца, а также цвет выводимой информации, тип шрифта, размер, выделив тем самым наиболее важную информацию в размещенном в форме табличном объекте.

Объект column (Столбец) характеризуется следующими основными свойствами: columnOrder — задает порядок следования столбцов; Alignment — выравнивает информацию в столбце; controisource — связывает столбец с источником данных.

Свойства объекта Grid



Свойства объекта Grid

Построитель — удобное средство для быстрого создания объекта Grid (

Свойства, определяющие объект Grid



Свойства, определяющие объект Grid

Сначала обратимся к основным свойствам, определяющим объект Grid (

Назначение вкладок окна Grid Builder



Таблица 15.1. Назначение вкладок окна Grid Builder

Вкладка

Назначение

Grid Items (Элементы объекта Grid)

Позволяет сформировать список полей, размещаемых в создаваемом объекте

Style (Стиль)

Позволяет задать стиль отображения таблицы, выбрав один из предложенных вариантов: Professional (Профессиональный), Standard (Стандартный), Embossed (Изысканный), Ledger (Бизнес)

Layout (Расположение)

Позволяет переопределить заголовки столбцов объекта Grid (

Назначение объектов, характеризующих столбцы таблицы



Таблица 15.2. Назначение объектов, характеризующих столбцы таблицы

Объект Назначение
Column (Столбец) Определяет свойства, относящиеся к помещаемой в столбец информации
Header (Заголовок) Определяет свойства, характеризующие заголовок столбца
Text (Текст) Определяет свойства поля таблицы, когда на нем установлен фокус


Варианты продолжения работы с формой



Таблица 15.3. Варианты продолжения работы с формой

Опция Действие
Save form for later use (Сохранить форму) Созданная форма сохраняется на диске
Save and run form (Сохранить и запустить форму на выполнение) Созданная форма сохраняется и запускается на выполнение
Save form and modify it in the Form Designer (Сохранить и открыть для модификации в конструкторе форм) Созданная форма сохраняется и открывается в конструкторе форм для модификации

В форме находятся флажки следующего назначения:

Use field mappings (Использовать соответствия полей). При установке флажка мастер использует соответствия типов объектов, создаваемых в форме при размещении в ней полей таблицы, заданные на вкладке Field Mapping (Связь типов элементов управления с типами полей таблиц) диалогового окна Options (Параметры); Override with DBC field display classes (Заменять классами объектов, заданных для полей таблицы). При установке флажка мастер использует соответствия типов объектов, создаваемых в форме при размещении в ней полей таблицы, заданные в конструкторе таблицы на вкладке Fields (Поля) с помощью списка Display class (Показывать класс) области Map field type to classes (Используемые типы полей для классов). Если эти соответствия не заданы, используется опция Use field mappings.

После установки требуемых параметров нажмите кнопку Finish (Готово) для завершения создания объекта с помощью мастера. В открывшемся диалоговом окне Save as (Сохранить как) выберите папку, в которой хотите разместить форму, и введите имя созданной формы.



Назначение свойств объекта Timer



Таблица 15.4. Назначение свойств объекта Timer


Свойство Назначение
Interval (Интервал) Интервал активизации объекта в миллисекундах
Enabled (Доступно) Устанавливает режим работы таймера. Если значение свойства равно True (Истина), то таймер начинает отсчитывать время сразу же после запуска формы. В противном случае вы должны запустить таймер по какому-либо внешнему событию (например, при нажатии на кнопку)

Помимо вышеперечисленных свойств, для объекта Timer (Таймер) определяется событие Timer (Таймер), наступающее через каждый установленный в свойстве interval (Промежуток времени) промежуток времени. В процедуре обработки данного события необходимо определить действия, выполняемые с заданным интервалом.

Для запуска таймера используется метод Reset (Установить), не связанный с каким-либо событием. Поэтому вы должны выполнить его при наступлении каких-либо других событий, например при нажатии кнопки запуска Tail мера.





номера телефонов, по которым можно



Таблица customer содержит информацию о клиентах, таблица Phoncust - номера телефонов, по которым можно с ними связываться.

Откройте проект sales. Перейдите на вкладку Documents (Документы), выберите группу Forms (Формы) и нажмите кнопку New (Новый). В открывшемся диалоговом окне New Form (Новая форма) выберите опцию Form Wizard (Мастер формы).

Таблица на панели инструментов...



Таблица) Установите указатель в место предполагаемого расположения таблицы, нажмите кнопку мыши и, удерживая ее нажатой, переместите курсор по диагонали, чтобы получилась рамка требуемого размера. Запускается построитель, и на экране открывается диалоговое окно Grid Builder (Построитель таблицы) (рис. 15.1), позволяющее задать основные параметры объекта Grid (Таблица).

Диалоговое окно построителя объекта Grid (Таблица) содержит четыре вкладки, используя которые вы можете настроить его параметры (табл. 15.1).




на панели инструментов Form Controls



Таблица) на панели инструментов Form Controls (Элементы управления формы). Установите указатель в место предполагаемого расположения объекта и, удерживая кнопку мыши нажатой, переместите курсор по диагонали, нарисовав рамку требуемого размера. Для определения параметров созданного объекта выделите его и откройте окно свойств, выполнив команду Properties (Свойства) из меню View (Вид).

на панели инструментов Form Controls



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

Ordsaled.nQuant*Ordsaled.nUnitPrice

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

на панели инструментов Form Controls



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

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

Определите заголовки столбцов и другие параметры созданного объекта Grid (Таблица). В нижней части страницы расположите кнопки перемещения по записям таблицы и выхода из формы. На рис. 15.21 представлена первая вкладка созданной формы.



Таблица, разместив в нем необходимые...



Таблица), разместив в нем необходимые поля таблицы Customer. Для добавления второй формы выполните команду Add New Form (Добавить новую форму) из меню Form (Форма). В окне конструктора форм откроется вторая форма. Скорректируйте свойство caption (Надпись) для второй формы, введя заголовок Итоговые суммы покупок. Во второй форме создайте объект Grid (Таблица), разместив в нем поля представления данных sumcust. Расположите формы на экране таким образом, чтобы они были удобны для их поочередного просмотра.



Рис. 15.24. Просмотр набора форм

Сохраните созданную форму, нажав кнопку Save (Сохранить) на стандартной панели инструментов. Запустите форму на выполнение. На экране открывается две формы (рис. 15.24). Просмотрев данные в первой форме, перейдите во вторую форму. Для этого активизируйте ее. щелкнув мышью в любом ее месте. Во второй форме вы можете просмотреть итоговые суммы покупок интересующего вас клиента.



Таблица, разместив в нем все поля...



Таблица), разместив в нем все поля представления данных. Для отображения текущей даты и времени расположите два поля ввода curDate и curTime. Скорректируйте для данных объектов свойство Readonly (Только чтение), установив значение True (Истина). Для создания объекта-таймера нажмите кнопку Timer (Таймер) на панели инструментов Form Controls (Элементы управления формы) и расположите его в форме. Откройте окно процедур для метода Timer (Таймер). Для присвоения значений созданным полям curDate и curTime, а также для обновления данных о продаже товаров через заданный интервал времени введите в окне процедур следующие значения:

This.Parent.CurDate.Value = DATE()

This.Parent.CurTime.Value = TIME()

This.Parent.CurDate.Refresh()

This.Parent.CurTime.Refresh()

ThisForm.Gridl.Refresh()

Определите интервал времени, через который необходимо производить обновление данных в таблице. Для этого воспользуйтесь свойством interval (Промежуток времени), значение которого задается в миллисекундах. Для обновления данных каждые 10 мин введите значение 600000. Форма готова. Сохраните ее и запустите на выполнение.

Таблица содержащий список всех...



Таблица), содержащий список всех клиентов, а на второй — дополнительные данные о выбранном на первой вкладке клиенте.


Откройте Проект 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 (Вкладка). Для этого щелкните на вкладке Основная информация в верхней части формы.

Таблица состоит из столбцов, каждый...



Таблица) состоит из столбцов, каждый из которых имеет собственный заголовок, являющийся объектом Header (Заголовок). В Visual FoxPro заголовок каждого столбца является самостоятельным объектом. Его можно корректировать, изменяя свойства.

Свойство caption (Надпись) объекта определяет наименование заголовка столбца, а свойство Alignment (Выравнивание) задает его расположение в столбце.

Помимо этого, объект Header (Заголовок), как и объект column (Столбец). характеризуется свойствами, определяющими цвет фона, тип и размер шрифта заголовка.

Таблица в целом. К числу таких свойств относятся:



Таблица) в целом. К числу таких свойств относятся:

columnCount — количество столбцов в создаваемом объекте Grid (

Таймер



Таймер

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

Для размещения в форме таймера используется кнопка Timer (Таймер)

В контекстном меню содержится...



Таблица). В контекстном меню содержится команда Edit (Правка), указывающая, что объект является сложным, т. е. состоящим из нескольких входящих в нею объектов. Такими объектами являются column (Столбец), Header (Заголовок) и Text (Текст). Выделите объект Grid (Таблица) и откройте окно свойств (рис. 15.6). Созданный объект характеризуется свойствами, относящимися ко всему объекту в целом. Помимо этого, объекты column (Столбец), Header (Заголовок) и Text (Текст) обладают своими собственными свойствами.

Объекты, характеризующие столбцы таблицы, представлены в табл. 15.2.