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



Таблица), перейдите на вкладку Layout (Расположение) (рис. 15.3). Она содержит создаваемый объект с реальными данными. При перемещении по столбцам таблицы в поле ввода Caption (Надпись) вкладки отображается наименование данного столбца. Для изменения наименования столбца скорректируйте имя, отображаемое в этом поле.

Для добавления второй формы выполните...



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

Просмотр набора форм



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



Для отображения текущей даты и...



Для отображения текущей даты и времени расположите два поля ввода 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 мин введите значение 600 000. Форма готова. Сохраните ее и запустите на выполнение.

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



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

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

Создание списка рассмотрим на примере редактирования поля, содержащего город, для таблицы Customer. Для создания формы:

Откройте форму для ввода списка клиентов в окне конструктора форм. Нажмите кнопку List Box (Список) на панели инструментов Form Controls (Элементы управления формы). Установите указатель мыши на место предполагаемого расположения поля и, удерживая кнопку мыши в нажатом состоянии, переместите курсор по диагонали так, чтобы получилась рамка требуемого размера для поля списка. Откройте окно свойств для размещенного в форме списка. Скорректируйте свойство Name (Имя) созданного объекта, присвоив ему имя IstCity. Чтобы связать созданное поле с полем таблицы customer, выберите свойство controisource (Источник данных). В поле ввода значения свойства воспользуйтесь кнопкой раскрытия списка и из списка всех полей открытой таблицы Customer выберите поле ccity. Скорректируйте свойство RowSourceType (Тип источника данных), которое указывает тип источника данных. Выберите из списка значение Value (Значение), поскольку список городов будет формироваться с помощью вводимых значений. Используя кнопку Text Box (Поле ввода) на панели инструментов Form Controls (Элементы управления формы), создайте под списком поле редактирования. Скорректируйте свойство Name (Имя) поля редактирования, присвоив ему имя txtAddText. Используя окно процедур свойства Keypress (Нажатие клавиши), введите в нем следующие команды:

LPARAMETERS nKeyCode, nShiftCtrlAlt

IF nKeyCode = 13 && 13 код клавиши <Enter>

IF 1EMPTY(THIS,Value)

* добавляем значение в список

THISFORM.lstCity.Addltem (THIS.Value}

ENDIF

* очищаем поле ввода

THIS.Value = ""

ENDIF

Эта процедура позволит пользователю ввести текст в поле ввода и нажатием клавиши <Enter> добавить значение в список, освободив окно для ввода следующей информации (рис. 15.26).



Form Controls (Элементы управления...



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

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



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



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






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


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

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

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

GridLineWidth — толщина сетки...



GridLineWidth — толщина сетки таблицы; GridLineCoior — цвет сетки таблицы; GridLines — стиль оформления таблицы; может принимать одно из следующих значений: None (Нет) — в таблице отсутствуют горизонтальные и вертикальные линии; Horizontal (Горизонтальные) — в таблице присутствуют горизонтальные линии; vertical (Вертикальные) — в таблице присутствуют только вертикальные линии; Both (Default) (Горизонтальные и вертикальные) — в таблице присутствуют горизонтальные и вертикальные линии; Recordsource — задает источник данных помещаемой в объект информации; RecordSourceType — задает тип источника данных и может принимать одно из следующих значений: Table (Таблица) — автоматически открывает таблицу, заданную свойством RecordSource; Alias (Псевдоним) — использует заданный псевдоним таблицы; Prompt (Запрашиваемое значение) — если для формы в среде окружения не определены таблицы, запрашивается исходная таблица для отображения в объекте Grid (Таблица); Query (QPR) (Запрос) — в качестве источника данных используются результаты запроса; SQL statement (SQL-предложение) — в качестве источника данных используется SQL-предложение; C hi l d O rder — задает имя индекса, используемого для установления связи между таблицами; RecordMark — определяет наличие с левой стороны объекта Grid (Таблица) столбца, содержащего указатель текущей записи.



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



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

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

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



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




Многотабличная форма Сохраните...



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

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



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





Набор форм



Набор форм

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

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

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

Однако созданный с его помощью...



Однако созданный с его помощью объект требует некоторой модификации внешнего вида. С этой целью рассмотрим основные свойства, характеризующие объект Grid (Таблица).

Щелкните правой кнопкой мыши на объекте Grid (

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



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


Используя кнопки панели инструментов Form Controls (Элементы управления формы), расположите в форме заголовок, надписи и необходимые поля таблицы Customer. Выберите кнопку Grid (

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



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


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



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



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




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



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


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



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



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


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



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


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



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



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


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




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



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

Для создания формы, в которой данные будут представлены в табличном виде, выполните следующие действия:

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

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



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


Откройте окно свойств созданного объекта. Убедитесь, что для свойства Pagecount, определяющего количество вкладок формы, по умолчанию установлено значение 2. Скорректируйте свойство caption (Надпись) для объектов Pagei и Раде2, определяющих заголовок каждой вкладки. Для объекта Pagei введите заголовок Основная информация, а для объекта Раде2 — Дополнительная информация. Для перехода в режим редактирования объекта Page Frame (Вкладка) выберите команду Edit (Правка) контекстного меню. Вокруг объекта появилась штриховая контурная рамка. Убедитесь, что вы находитесь на первой вкладке объекта Page Frame (Вкладка). Для этого щелкните мышкой на вкладке Основная информация в верхней части формы. Используя кнопку Grid (

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



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


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

Если ваша попытка перейти на



Совет

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

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



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

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

В Проекте Sales, ИСПОЛЬЗУЯ таблицы Goods, Ordsaled и Ordsalem, создайте представление данных, содержащее наименование товара, суммарное количество проданного товара и суммы продаж по данному товару. Сгруппируйте данные по коду товара. Сохраните созданное представление данных. Откройте новое окно конструктора форм. Откройте окно среды окружения формы и добавьте в него созданное представление. Создайте в форме объект Grid (

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



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

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

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

Создание объекта типа page Frame (Вкладка) рассмотрим на примере разработки многостраничной формы для таблицы customer. Форма будет содержать две вкладки. На первой вкладке будет располагаться объект 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 (Среда окружения).

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


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

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



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

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

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



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

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

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



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

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

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

Созданный объект характеризуется...



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

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



Свойства объекта 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 (Сохранить и открыть для модификации в конструкторе форм) Созданная форма сохраняется и открывается в конструкторе форм для модификации



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



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

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

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

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




Таблица customer содержит информацию...



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

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

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



Таблица на панели инструментов 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.

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



Таблица) на панели инструментов Form Controls (Элементы управления формы), создайте объект Grid (Таблица) для отображения ПОЛеЙ icdcustomer, ccompany таблицы Customer. В третьем столбце таблицы для отображения фамилии, имени и отчества представителя в свойстве Control Sour се (Источник данных) введите выражение следующего вида: a lit rim (customer .cLastname) + " " + allt rim (customer .cFirstname) + " " + alltrim(customer.cSecondname)

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

Таблица при установленном курсоре на текущую запись в столбце.



Таблица), при установленном курсоре на текущую запись в столбце.

Используя свойства данного объекта, можно задать цвет фона, тип и размер шрифта выводимой информации.




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



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

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

Таблица) состоит из столбцов...



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

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

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



Таймер



Таймер

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

Для размещения в форме таймера используется кнопка Timer (Таймер) на панели инструментов Form Controls (Элементы управления формы). Объект данного типа обладает свойствами, описанными в табл. 15.4.



Удаление из формы полей ввода и надписей к ним Форма с тремя объектами Grid


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


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



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


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



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



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

Такими объектами являются column (Столбец), Header (Заголовок) и Text (Текст). Выделите объект Grid (

В нижней части страницы расположите...



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

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



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



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


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


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



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





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



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




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



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


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



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



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


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

Обратите внимание, что после ввода



Замечание

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


Замечание При использовании объекта...



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

После завершения определения всех параметров нажмите кнопку ОК для закрытия окна построителя.