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

         

Class Browser



Class Browser

Еще одним способом размещения в форме объектов внешней библиотеки классов является применение окна Class Browser (Обзор классов) (рис. 16.7). Для его открытия выполните команду Class Browser (Обзор классов) из меню Tools (Сервис).



Диалоговое окно Open для присоединения внешней библиотеки



Диалоговое окно Open для присоединения внешней библиотеки




Документ Microsoft Word



Документ Microsoft Word

На вторую вкладку формы поместим объект для работы с документом Microsoft Word (рис. 16.15), используя кнопку Документ Microsoft Word на панели инструментов Form Controls (Элементы управления формы).

Для редактирования объекта типа Документ Microsoft Word вы также можете использовать команды Изменить и Открыть контекстного меню. На рис. 16.16 приведен режим редактирования по месту.



Электронная таблица



Электронная таблица

На первую вкладку формы поместим электронную таблицу Excel (рис. 16.12), используя кнопку Лист Microsoft Excel на панели инструментов Form Controls (Элементы управления формы).



Электронная таблица, размещенная на первой вкладке формы



Электронная таблица, размещенная на первой вкладке формы


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

Выделите в форме электронную таблицу. Нажмите правую кнопку мыши. В контекстном меню выберите команду Лист Object, а затем опцию Изменить или Открыть.

После выбора пункта меню Изменить интерфейс Visual FoxPro изменяется. Вы переходите в режим редактирования по месту электронной таблицы (рис. 16.13), при котором в окно Visual FoxPro добавляются панели инструментов Microsoft Excel. Можете приступить к редактированию таблицы с помощью средств электронной таблицы.



Форма с размещенным объектом vcr для перемещения по записям



Форма с размещенным объектом vcr для перемещения по записям





Форма с размещенным в ней объектом Page Frame



Форма с размещенным в ней объектом Page Frame


Разместите в форме объект Page Frame (Вкладка), используя кнопку Page Frame (Вкладка) на панели инструментов Form Controls (Элементы управления формы). Введите название формы, воспользовавшись свойством caption (Надпись). Задайте для объекта Page Frame (Вкладка) две вкладки, используя свойство Pagecount (Количество вкладок). Используя свойство caption (Надпись) каждой вкладки, присвойте им названия (рис. 16.11). Форма готова. Теперь можно разместить в ней ActiveX-компоненты. Для этого необходимо отобразить на панели инструментов элементов управления формы ActiveX-компоненты: нажмите кнопку View Classes (Просмотр классов) на панели инструментов Form Controls (Элементы управления формы). Выберите из появившегося меню пункт ActiveX Controls (Элементы управления ActiveX).



Галерея компонентов



Галерея компонентов

Галерея компонентов Visual FoxPro содержит библиотеки классов Foundation Classes (рис. 16.5), которые размещены в одноименном каталоге. Для размещения объекта выбранного класса в форме вы можете выполнить любое из следующих действий.

Выделить класс в окне Галереи компонентов и перенести в требуемое место формы, используя механизм "перенести-и-оставить". Щелкнуть правой кнопкой мыши на классе и из контекстного меню выбрать команду Add to Form (Добавить в форму) (рис. 16.6). Выделить класс в окне Галереи компонентов, щелкнуть на значке Move (Перенести), расположенном в левом верхнем углу окна, и перенести выбранный класс в требуемое место формы.

Библиотеки классов и ActiveX-компоненты


В предыдущих главах мы рассмотрели использование стандартных элементов управления, которые представляют лишь небольшую часть доступных элементов управления. Множество разнообразных элементов управления находится в библиотеках классов, объединенных общим названием Visual FoxPro Foundation Classes, которые входят в комплект поставки Visual FoxPro. Кроме библиотеки Foundation Classes, вы можете также использовать библиотеки классов, которые разрабатывают сторонние фирмы.

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

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

  Использование библиотек классов

Применение внешних библиотек классов не только облегчает разработку приложения, но и ускоряет процесс. Для размещения в форме объектов библиотек вы можете использовать панель инструментов Form Controls (Элементы управления формы), Галерею компонентов и Class Browser (Обзор классов).




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



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

Компоненты ActiveX представляют собой 32-разрядные объекты, содержащие код и данные. В отличие от библиотек классов Visual FoxPro, ActiveX-компоненты могут создаваться с помощью различных средств разработки, например, Visual C++ или Visual Basic. Вы можете использовать ActiveX-компоненты аналогично базовым компонентам Visual FoxPro. Основным

Преимуществом данных компонентов является их огромное количество, т. к. их разработкой занимаются многие фирмы, а также отдельные программисты. Часть этих компонентов является коммерческой продукцией, часть распространяется бесплатно. Множество компонентов включено в поставку Visual Studio и в приложение Microsoft Office. Для поиска необходимых вам компонентов вы можете использовать Интернет.

Для формирования списка используемых при разработке ActiveX-компонентов необходимо воспользоваться диалоговым окном Options (Параметры), выполнив следующие действия:

Выберите в меню Tools (Сервис) команду Options (Параметры). В диалоговом окне Options (Параметры) выберите вкладку Controls (Элементы управления) (рис. 16.9). Установите опцию ActiveX controls (Элементы управления ActiveX). При этом в списке Selected (Выбранные) будет отображен список всех доступных на вашем компьютере ActiveX-компонентов. Установите флажки рядом с теми объектами списка Selected (Выбранные), которые хотите разместить на панели инструментов Form Controls (Элементы управления формы) и использовать для размещения в форме. Нажмите кнопку ОК для закрытия диалогового окна Options (Параметры).

Использование библиотек классов



Использование библиотек классов Панель инструментов Form Controls Галерея компонентов Class Browser Использование ActiveX-компонентов в форме Отображение ActiveX-компонентов на панели инструментов Form Controls Размещение ActiveX-компонентов в форме Связь ActiveX-компонентов с базой данных Использование календаря в форме Использование браузера объектов


Использование браузера объектов



Использование браузера объектов

В Visual FoxPro 7 появилось новое средство для просмотра списка классов, свойств, методов, событий и констант библиотек СОМ-объектов или ActiveX-компонентов — Object Browser (Браузер объектов). В окне браузера можно выполнять поиск заданного значения в пределах всей библиотеки.

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

Выполнить команду Object Browser (Браузер объектов) из меню Tools (Сервис). Нажать кнопку Object Browser на стандартной панели инструментов.

Для открытия библиотеки и просмотра ее структуры в окне браузера объектов предназначена кнопка Open Type Library (Открыть библиотеку) При нажатии этой кнопки открывается диалоговое окно Open (Открыть), которое содержит три вкладки следующего назначения:

Recent History (Хронология) — содержит список открытых ранее библиотек; COM Libraries (СОМ-библиотеки) — содержит список СОМ-библиотек, имеющихся на компьютере; Current Selection (Выбранные) — содержит список открытых в окне Object Browser (Браузер объектов) библиотек.

При нажатии кнопки Find (Найти) в верхней части окна Object Browser (Браузер объектов) появляется поле Look for (Значение для поиска) и кнопка Go (Начать поиск), предназначенные для текстового поиска.




Использование календаря для ввода информации в поля дат



Использование календаря для ввода информации в поля дат

Мы описали свойства календаря. Теперь посмотрим, как можно использовать данный ActiveX-компонент для ввода информации в поля таблицы, содержащие даты. В качестве примера создадим форму для ввода информации о сотрудниках фирмы. Исходная таблица Manager содержит поле ddatebirth с информацией о дате рождения сотрудника. Информацию в это поле будем вводить с помощью программно формируемого ActiveX-компонента календарь.

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

В проекте sales откройте окно конструктора. В окружение формы добавьте таблицу, содержащую список сотрудников. Разместите в форме необходимые для ввода информации поля таблицы. Откройте окно свойств Properties (Свойства) поля, предназначенного для ввода даты рождения сотрудника. Используя свойство Name (Имя), присвойте объекту наименование txtbirthday. Используя свойство control sour се (Источник данных), задайте в качестве источника данных поля для ввода даты рождения поле ddatebirth таблицы. Рядом с полем, предназначенным для ввода даты рождения, расположите кнопку. Используя свойство caption (Надпись), присвойте кнопке название Календарь Откройте окно свойств Properties (Свойства) кнопки Календарь. В окне процедур свойства click (Нажатие) введите команды, которые программно формируют и задают свойства ActiveX-компонента календарь:

#DEFINE C_CALCAPTION_LOC "Календарь"

oCalForm = Create('form' )

oCalForm.NewObject("oleCalendar","_olecalendar", "_datetime")

WITH oCalForm.oleCalendar

.date_cclumn = "manager.ddatebirth"

.RefreshDisplay{)

.BackColor = THISFORM.BackColor

.Visible = .T.

ENDWITH

WITH OCalForm

.BorderStyle = 2

.MaxButton = .F.

.MinButton = .F.

.Height = oCalForm.oleCalendar.Height

.Width = oCalForm. oleCalendar.Width

.Caption = C_CALCAPTION_LOC

ENDWITH

oCalForm.Show(l)

THISFORM.Refresh

Закройте окно процедур.

Создание формы завершено. Запустите ее на выполнение. Для ввода информации в поле дата рождения нажмите кнопку Календарь. На экране откроется календарь. Выберите необходимое число, месяц и год и закройте календарь. Указанная вами дата будет перенесена в поле день рождения.




Использование календаря в форме



Использование календаря в форме

Календарь также является одним из ActiveX-компонентов. Вы можете использовать его для ввода информации в поля дат.

Сначала разместим календарь в форме, чтобы посмотреть свойства, которыми обладает данный объект, и возможности их настройки. Затем рассмотрим пример программного использования календаря для ввода даты.



Использование контекстного меню для размещения объекта выбранного класса в форме



Использование контекстного меню для размещения объекта выбранного класса в форме




Каталог Foundation Classes



Каталог Foundation Classes




Меню кнопки View Classes и панель инструментов, содержащая элементы управления внешней библиотеки



Меню кнопки View Classes и панель инструментов, содержащая элементы управления внешней библиотеки


Библиотека Buttons (Кнопки) содержит набор кнопок, назначение которых описано в табл. 16.1.



Настройка свойств календаря



Настройка свойств календаря

Чтобы разместить в форме календарь, который на панели инструментов Form Controls (Элементы управления формы), содержащей ActiveX - компоненты, отображается в виде кнопки Calendar Control (Элемент управления календарь), нажмите данную кнопку, установите указатель мыши в форму и нарисуйте курсором рамку требуемого размера. Календарь размещен в форме.

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

Диалоговое окно Свойства: Календарь содержит три вкладки: Общие (General), Шрифт (Font), Цвет (Color).

Вкладка Общие содержит поля, позволяющие настроить параметры, описанные в табл. 16.2.



Объект для работы с документом Microsoft Word



Объект для работы с документом Microsoft Word




Окно Class Browser



Окно Class Browser


Для размещения в окне Class Browser (Обзор классов) библиотеки предназначены кнопки Open (Открыть) и View Additional File (Показать дополнительный файл) панели инструментов окна. При их нажатии открывается диалоговое окно Open (Открыть) (см. рис. 16.1), позволяющее открыть и разместить в Class Browser (Обзор классов) существующую библиотеку классов.

Чтобы добавить в форму элемент управления из окна Class Browser (Обзор классов), выполните следующие действия:

Откройте в конструкторе форму, в которую хотите добавить объекты из библиотеки классов. В окне Class Browser (Обзор классов) откройте библиотеку, содержащую классы объектов, которые вы собираетесь разместить в форме. Выберите из списка требуемый класс. Значок Move (Переместить), расположенный в верхнем левом углу окна Class Browser (Обзор классов), изменит свой рисунок в соответствии со значком выбранного вами класса. Установите курсор на значок Move (Переместить). Нажмите кнопку мыши и, удерживая ее нажатой, перенесите объект в форму. Завершив перемещение, отпустите кнопку мыши. Результат перемещения класса кнопки в форму показан на рис. 16.8.

Отображение ActiveX-компонентов на панели инструментов Form Controls



Отображение ActiveX-компонентов на панели инструментов Form Controls

Для отображения ActiveX-компонентов на панели инструментов Form Controls (Элементы управления формы) при создании форм выполните следующие действия:

Нажмите кнопку View Classes (Просмотр классов) на панели инструментов Form Controls (Элементы управления формы), в результате чего на экране появится меню кнопки. Выберите команду ActiveX Controls (Элементы управления ActiveX) данного меню. На панели инструментов Form Controls (Элементы управления формы) будут размещены кнопки, содержащие значки выбранных вами ActiveX-компонентов в диалоговом окне Options (Параметры) (рис. 16.10). Теперь вы можете размещать данные объекты в форме обычным образом.

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



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

Чтобы использовать панель инструментов Form Controls (Элементы управления формы), вы должны разместить на ней объекты внешней библиотеки. Для этого выполните следующие действия:

Нажмите кнопку View Classes (Просмотр классов) на панели инструментов Form Controls (Элементы управления формы). Появившееся меню содержит команду Add (Добавить) и список библиотек классов. Для добавления внешней библиотеки нажмите кнопку Add (Добавить). На экране открывается диалоговое окно Open (Открыть) (рис. 16.1), позволяющее выбрать необходимую библиотеку классов. Используя раскрывающийся список Папка, найдите папку Classes (Классы), содержащую библиотеки классов Visual FoxPro. Выберите, например, библиотеку классов buttons (Кнопки), входящую в поставку Visual FoxPro, и нажмите кнопку Open (Открыть) диалогового окна.



Панель инструментов, содержащая ActiveX-компоненты



Панель инструментов, содержащая ActiveX-компоненты






Работа с ActiveX-компонентами после запуска формы на выполнение



Работа с ActiveX-компонентами после запуска формы на выполнение

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



Размещение ActiveX-компонентов в форме



Размещение ActiveX-компонентов в форме

Рассмотрим пример создания формы, содержащей две вкладки, на которых разместим такие ActiveX-компоненты, как электронная таблица и документ Microsoft Word. Для создания формы выполните следующие действия:

Откройте проект Sales. Выберите вкладку Documents (Документы), перейдите в группу Forms (Формы), а затем нажмите кнопку New (Новый). В открывшемся диалоговом окне New Form (Новая форма) выберите опцию New Form (Новая форма). Откроется окно конструктора форм. Нажмите кнопку View Classes (Просмотр классов) на панели инструментов Form Controls (Элементы управления формы), в результате чего на экране появится меню данной кнопки, содержащее команды выбора библиотеки из ранее размещенных на панели инструментов ActiveXкомпонентов и добавления новой библиотеки. Выберите значение Standard (Стандартная). Это необходимо, чтобы на панели инструментов Form Controls (Элементы управления формы) были размещены стандартные элементы управления.

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



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


Запустите форму на выполнение. Убедитесь в том, что, используя размещенные для управления таблицей кнопки, можно перемещаться по записям таблицы (рис. 16.4).

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



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





Редактирование документа Microsoft Word



Редактирование документа Microsoft Word




Редактирование электронной таблицы



Редактирование электронной таблицы





Редактирование электронной таблицы в отдельном приложении



Редактирование электронной таблицы в отдельном приложении




Редактирование электронной таблицы в Visual FoxPro



Редактирование электронной таблицы в Visual FoxPro


В том случае, если вы выбираете пункт меню Открыть, запускается приложение Microsoft Excel и в нем открывается созданный вами лист электронной таблицы (рис. 16.14).



Связь ActiveX-компонентов с базой данных



Связь ActiveX-компонентов с базой данных

В предыдущем разделе мы рассмотрели размещение в форме ActiveX - компонентов. Но форма предназначена, в основном, для работы с базой данных. Возникает вопрос, а как же использовать ActiveX-компоненты для работы с таблицами базы данных? Связь ActiveX-компонентов с базой данных рассмотрим на примере RTF-объекта, который используется для ввода в Memo-поля таблицы форматированного текста. Чтобы создать форму с размещенным в ней RTF-объектом, будем использовать таблицу customer, содержащую Memo-поле mnotes с дополнительной информацией о клиенте:

Добавьте на панель инструментов Form Controls (Элементы управления формы) кнопку Microsoft Rich TextBox Control (Элемент управления для редактирования текста в формате RTF). Для этого на вкладке Controls (Элементы управления) диалогового окна Options (Параметры) в списке Selected (Выбранные) установите флажок рядом со значением Microsoft Rich TextBox Control (Элемент управления для редактирования текста в формате RTF) и нажмите кнопку ОК. Для управления RTF-объектом нам понадобятся элементы управления, которые содержатся в библиотеке классов Samples (Образцы), содержащейся в поставке Visual FoxPro. Присоедините данную библиотеку. После этого при нажатии кнопки View Classes (Просмотр классов) появляется меню, содержащее команды для размещения на панели инструментов Form Controls (Элементы управления формы) ActiveX-компонентов и объектов из библиотеки Samples (Образцы).



Кнопки библиотеки Buttons



Таблица 16.1. Кнопки библиотеки Buttons

Наименование Назначение
mailbtn Размещает в форме кнопку, позволяющую передать данные таблицы по электронной почте
vcr Размещает набор кнопок перемещения по записям таблицы
cmdok Размещает в форме кнопку ОК
cmdHelp Размещает в форме кнопку Help
cmdCancel Размещает в форме кнопку Cancel

Рассмотрим размещение этих кнопок в форме:

В проекте sales выберите любую из созданных ранее форм и откройте ее в конструкторе. Удалите в нижней части формы кнопки перемещения по записям, созданные вами ранее. Выберите объект vcr на панели инструментов Form Controls (Элементы управления формы) и поместите его на месте удаленных кнопок (рис. 16.3).

Назначение полей окна Свойства: Календарь



Таблица 16.2. Назначение полей окна Свойства: Календарь

Поле Назначение
Значение (Value) Текущая дата
Первый день недели

(First Day)

День, принимаемый за первый день недели
Формат дня {Day Length) Формат отображения наименования дня недели; может принимать одно из трех значений: короткий, средний, длинный
Формат месяца (Month Length) Формат отображения наименования месяца; может принимать одно из двух значений: короткий и длинный
Оформление (Grid Cell Effect) Стиль отображения ячеек таблицы

Область Отображение (Show) вкладки Общие (General) содержит флажки, описанные в табл. 16.3.



Назначение флажков области Отображение вкладки Общие



Таблица 16.3. Назначение флажков области Отображение вкладки Общие

Флажок Назначение
Заголовок месяца и года

(Month/Year Title)

Указывает на необходимость отображения заголовка месяца и года
Выбор месяца и года

(Month/Year Selectors)

Указывает на необходимость размещения в заголовке полей для выбора месяца и года
Дни недели (Days of Week) Указывает на необходимость отображения в заголовке таблицы дней недели
Сетка по горизонтали

(Horizontal Grid)

Указывает на необходимость отображения в таблице горизонтальных линий сетки
Сетка по вертикали

(Vertical Grid)

Указывает на необходимость отображения в таблице вертикальных линий сетки

При изменении любого из параметров вкладки становится доступной кнопка Применить, при нажатии на которую сохраняются введенные изменения.

Вкладка Шрифт (Font) окна свойств календаря позволяет настроить шрифты объекта. Список Свойства (Properties) вкладки содержит объекты оформления календаря, для которых можно настроить шрифты:

DayFont — дни недели, расположенные в заголовке таблицы; GridFont — числа, размещенные в таблице календаря; Title Font — месяц и год в заголовке календаря.

Списки Шрифт (Font) и Размер (Size) позволяют задать наименование и размер шрифта, выбранного из списка Свойства (Properties) объекта, а флажки области Атрибуты (Effects) — стиль оформления.

Вкладка Цвет (Color) окна свойств календаря позволяет изменить цветовое оформление календаря. Список Свойства (Properties) содержит элементы календаря, для которых можно настроить цвета:

Backcoior — фон календаря; DayFontcoior — дни недели, расположенные в заголовке таблицы; GridFontCoior — числа, размещенные в таблице календаря; GridLinesCoior — линии сетки таблицы календаря; TitieFontCoior — месяц и год в заголовке календаря.

С помощью списка Набор цветов (Color Set) можно установить используемую цветовую схему, а списка Цветовая палитра (Color Palette) — цвет выбранного из списка Свойства (Properties) элемента.

При нажатии на кнопку Справка (Help) открывается окно справочной системы, содержащее список всех методов, свойств и событий ActiveXкомпонента.



Вкладка Controls диалогового окна Options



Вкладка Controls диалогового окна Options




Файлы библиотек классов имеют расширение



Замечание

Файлы библиотек классов имеют расширение VCX.


После выбора библиотеки классов нажмите



Замечание

После выбора библиотеки классов нажмите кнопку View Classes (Просмотр классов) на панели инструментов Form Controls (Элементы управления формы). Обратите внимание на то, что в ее меню добавился пункт с выбранной вами библиотекой классов (в данном примере Buttons (Кнопки)).
Выберите пункт меню с наименованием добавленной вами библиотеки. На панели инструментов Form Controls (Элементы управления формы) будут размещены кнопки элементов управления выбранной библиотеки (рис. 16.2). Используя панель инструментов, вы теперь можете размещать эти объекты в форме так же, как и стандартные элементы управления.

Для некоторых классов определены построители,



Замечание

Для некоторых классов определены построители, автоматически запускаемые при размещении их в форме.



Элементы управления) диалогового окна Options



Замечание

Кнопка Add (Добавить) вкладки Controls ( Элементы управления) диалогового окна Options (Параметры) предназначена для добавления новых объектов в список Selected (Выбранные). При нажатии на данную кнопку открывается диалоговое окно Open (Открыть), используя которое можно выбрать файл с ActiveX-компонентами.



Присоединение внешних библиотек мы рассмотрели



Замечание

Присоединение внешних библиотек мы рассмотрели в начале этой главы.
Откройте проект Sales. Откройте в конструкторе форму, позволяющую вводить информацию в таблицу Customer. Удалите из формы поле, которое использовалось вами ранее для ввода информации в поле таблицы mnotes. Чтобы отобразить на панели инструментов Form Controls (Элементы управления формы) кнопки для размещения в форме ActiveXкомпонентов, нажмите кнопку View Classes (Просмотр классов) и в появившемся меню выберите команду ActiveX Controls (Элементы управления ActiveX). Выберите на панели инструментов Form Controls (Элементы управления формы) кнопку Microsoft Rich TextBox Control (Элемент управления для редактирования текста в формате RTF) и разместите в форме поле, предназначенное для ввода примечания. Чтобы можно было управлять созданным полем, необходимо поместить в форму элементы управления RTF-объектом. Для этого на панели инструментов Form Controls (Элементы управления формы) нажмите кнопку View Classes (Просмотр классов) и в появившемся меню кнопки выберите команду Samples (Образцы). Нажмите на панели инструментов Form Controls (Элементы управления формы) кнопку rtfcontrols (Элементы управления RTF) из библиотеки samples (Образцы) и разместите в форме элементы управления. В результате форма примет вид. Чтобы связать размещенное в форме поле с полем таблицы Customer, откройте окно Properties (Свойства) и для свойства controisource (Источник данных) задайте поле mnotes. Для элементов управления RTF-объектом задайте методы, устанавливающие значения свойств объекта.