FoxPro8

         

Двумерные перекрестные таблицы


Информация в двумерных перекрестных таблицах группируется по двум факторам. Примером такой таблицы является SaieGoods, представленная на рис. 10.2. Она содержит сведения о стоимости проданных товаров по городам. Данная Таблица была получена из таблиц Customer, Ordsalem и ordsaied с помощью многотабличного запроса. Для наглядности результирующим полям запроса присвоены русскоязычные названия.

SELECT Customer. cCity AS Город, Ordsaied. icdGoods AS Koд товара, ;

SUM(Ordsaled.nQuant*Ordsaled.nUnitprice) AS Сумма;

FROM Sales!Customer INNER JOIN Sales!Ordsalem;

INNER JOIN Sales!Ordsaied ;

ON Ordsalem.icdOrder = Ordsaled.icdOrder ;

ON Customer.icdCustomer = Ordsalem.icdCustomer;

GROUP BY Customer.cCity, Ordsaled.icdGoods;

INTO TABLE SaleGoods.dbf

Рис. 10.2. Таблица SaleGoods

В таблице, представленной на рис. 10.2, отображается вся необходимая информация о продажах товаров, однако более удобным для анализа является представление этой информации в виде перекрестной таблицы. На рис. 10.3 представлена двумерная перекрестная таблица, созданная на основе таблицы SaleGoods.

Числа в ячейках таблицы соответствуют стоимости проданного товара для каждой пары уникальных значений код товара/город. Значения поля, содержащего наименование города, расположены в верхней строке таблицы, а значения поля, обозначающего код проданного товара, — в левом столбце таблицы. Сохраните таблицу с именем saiereg. Ее можно будет использовать при создании трехмерных диаграмм.

Рис. 10.3. Двумерная перекрестная таблица



Экспорт данных


Созданную в Visual FoxPro перекрестную таблицу вы можете использовать в программах управления электронными таблицами, таких как Microsoft Excel, Lotus 1—2—3 и т. д. Для этого вы должны ее экспортировать в формат той электронной таблицы, в которой будет осуществляться дальнейшая обработка.

Для экспорта данных предназначена команда Export (Экспорт) из меню File (Файл). В результате выполнения этой команды открывается диатоговое окно Export (Экспорт) (рис. 10.11), в котором вы должны в поле Туре (Тип) задать формат данных, в поле То (Куда) указать имя выходного файла, в поле From (Откуда) — исходную таблицу, а затем нажать кнопку ОК.

Рис. 10.11. Диалоговое окно Export



Одномерные перекрестные таблицы


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

Рассмотрим создание перекрестной таблицы, отображающей распределение клиентов по городам (рис. 10.1). Исходная информация содержится в таблице Customer.

В окне проекта на вкладке Data (Данные) выберите группу Queries (Запросы) и нажмите кнопку New (Новый).

Добавьте в окно конструктора запросов таблицу Customer со списком клиентов.

На вкладке Fields (Поля) окна конструктора запросов разместите в списке Selected fields (Выбранные поля) поле ccity и итоговое поле count (icdcustomer), подсчитывающее количество клиентов.

На вкладках Group By (Группировка) и Order By (Упорядочение) установите группировку и упорядочение по полю ccity.

Выполните команду Run Query (Выполнить запрос) меню Query (Запрос).

Сохраните результат выборки в таблице cntcust, воспользовавшись для этого кнопкой Query Destination (Результаты запроса) панели инструментов Query Designer (Конструктор запроса). Данная таблица будет содержать распределение клиентов по городам (см. рис. 10.1). Вы можете использовать эту таблицу для формирования отчета или представленых данных в виде диаграммы.

Рис. 10.1. Одномерная перекрестная таблица



Перекрестные таблицы


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

Отображение данных в виде диаграмм и графиков позволяет решать самые разные задачи. Основное достоинство такого представления — наглядность. На диаграммах хорошо просматриваются тенденции к изменению, различные соотношения, прирост, взаимосвязь различных процессов и т. д.

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

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

В Visual FoxPro для построения диаграмм используется Microsoft Graph. Помимо этого, для построения диаграмм из подготовленных в Visual FoxPro данных вы можете использовать Microsoft Excel и другие электронные таблицы, имеющиеся в среде Windows.

Перекрестная таблица в Visual FoxPro имеет вид, похожий на электронную таблицу. Но, в отличие от последней, вам не нужно вручную заполнять каждую ячейку таблицы, предварительно определив ее значение. Visual FoxPro автоматически разбивает данные на группы в соответствии с одним или несколькими факторами и выполняет итоговые вычисления над данными, включенными в группу. После чего информация, полученная в результате групповых вычислений, сортируется и заносится в перекрестную таблицу. Например, используя перекрестную таблицу, вы можете определить, сколько клиентов фирмы проживает в том или ином районе города или как распределяются между ними проданные товары. Очевидно, что каждый клиент может покупать один и тот же товар несколько раз. Получить такие сведения без создания перекрестной таблицы достаточно трудно. При работе с Visual FoxPro вы можете использовать одномерные и многомерные перекрестные таблицы. Для создания простейших одномерных перекрестных таблиц применяйте обычный итоговый запрос. Для построения двумерных и более сложных перекрестных таблиц в Visual FoxPro используется мастер создания перекрестных таблиц Cross-Tab Wizard (Мастер построения перекрестных таблиц).

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



Построение диаграмм


Для визуального анализа данных, хранящихся в таблицах Visual FoxPro, вы можете использовать диаграммы.

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

Для построения диаграмм в Visual FoxPro используется программа Microsoft Graph, данные в которую передаются с помощью мастера построения диаграмм или с использованием приложения wzgraph.app.



Программа создания перекрестной таблицы


Мастер перекрестных таблиц использует в своей работе программу vfpxtab.prg. Эту программу вы можете вызывать из ваших программ, предварительно подготовив и открыв в текущей области требуемую таблицу.

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

Таблица 10.4. Параметры программы, создающей перекрестные таблицы

Порядковый номер параметра

Назначение

Значение по умолчанию

1

Имя выходного файла или курсора

xtab.dbf

2

Признак создания только курсора

True

3

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

True

4

Признак отображения индикатора работы программы

True

5

Номер поля, являющегося строкой перекрестной таблицы

1

6

Номер поля, являющегося столбцом перекрестной таблицы

2

7

Номер поля, являющегося полем данных перекрестной таблицы

3

8

Признак формирования итогового поля

False

9

Тип вычисления итогового поля (0 — сумма, 1 — количество, 2 — доля от итогового значения в процентах)

Воспользуемся программой vfpxtab. prg для представления итогового объема продаж товара по месяцам в виде перекрестной таблицы.

В окне конструктора запросов создайте запрос, используя таблицы ordsalem и ordsaled. Разместите в итоговых полях код товара, месяц продажи и стоимость проданного товара. Установите группировку данных по коду товара, месяцу продажи и упорядочение данных по коду товара.

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

Откройте диалоговое окно, в котором отображается SQL-оператор, соответствующий созданному вами запросу. Для этого в меню Query (Запрос) выберите команду View SQL (Показать SQL).

Скопируйте SQL-оператор в буфер обмена Windows.

Откройте новое окно редактора программ. Для этого перейдите на вкладку Code (Код) конструктора проекта, установите курсор в группу Programs (Программы) и нажмите кнопку New (Новый).

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


Добавьте в вашу программу вызов программы генерации перекрестной таблицы:

SELECT SaleMon

DO (_GENXTAB) WITH 'SMon',.F.,.T.,.T.,,,,.T.,2

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



Рис. 10.9. Завершающая стадия создания перекрестной таблицы

Сохраните программу с именем salemon.prg и запустите ее на выполнение. Будет создана таблица smon с ежемесячными итоговыми объемами продаж товаров (рис. 10.10).

Совет

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



Рис. 10.10. Итоговые ежемесячные объемы продаж товаров


Создание диаграммы с помощью мастера Graph Wizard


Для построения диаграммы воспользуемся одномерной перекрестной таблицей cntcust, отображающей распределение клиентов по городам. О ней упоминалось в начале данной главы.

На первом шаге создания диаграммы с помощью мастера указывается таблица, для которой строится диаграмма. Это может быть таблица из базы данных или выборка из нескольких таблиц. После выбора полей, используемых при создании диаграммы, вызывается приложение wzgraph.app. Это приложение передает выбранные данные в Microsoft Graph и на их основе создается диаграмма указанного вами типа.

Рассмотрим создание диаграммы с помощью мастера более подробно:

В меню File (Файл) выберите команду New (Новый).

В диалоговом окне New (Новый) укажите тип создаваемого объекта Query (Запрос) и нажмите кнопку Wizard (Мастер).

Из диалогового окна Wizard Selection (Выбор мастера) запустите мастера создания диаграммы, выбрав значение Graph Wizard (Мастер диаграмм).

На первом шаге работы мастера выберите исходную таблицу Спссизс и поля, которые будут использоваться при создании диаграммы (рис. 10.12). Рассматриваемая исходная таблица содержит всего два ноля. Выберите их.

Совет

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

Рис. 10.12. Выбор исходной таблицы и полей

Завершив выбор полей, нажмите кнопку Next (Далее).

В следующем диалоговом окне мастера (рис. 10.13) выполните действия:

укажите поле, содержащее названия городов, значения которого будут использоваться в категориях диаграммы;

укажите поле, содержащее количество клиентов, значения которого будут использоваться в рядах данных

Для этого перенесите поле Город исходной таблицы в область Axis (Ось), расположенную под графиком, а поле количество — в область Data Series (Ряд данных) диалогового окна. Затем нажмите кнопку Next (Далее).

На следующем шаге вы должны указать тип создаваемой диаграммы (рис. 10.14), выбрав значение из предложенных вариантов. В данном примере выберите гистограмму. Для перехода к следующему шагу нажмите кнопку Next (Далее).




Рис. 10.13. Определение категории и рядов данных



Рис. 10.14. Определение типа диаграммы

В последнем диалоговом окне мастера (рис. 10.15) введите заголовок диаграммы и установите флажок добавления в диаграмму легенд (то есть условных обозначений рядов данных). Используя кнопку Preview (Просмотр), просмотрите результат своей работы. Еще не поздно вернуться к предыдущим шагам в работе мастера и изменить установленные там параметры. После этого, используя расположенные в окне опции (табл. 10.5), укажите дальнейшие ваши действия.

Таблица 10.5. Назначение опций диалогового окна Graph Wizard — Step 4

Опция Назначение
Save graph to a form (Сохранить диаграмму в форме) Сохраняет созданную диаграмму в форме и открывает ее в конструкторе для редактирования
Save graph to a table (Сохранить диаграмму в таблице) Сохраняет созданную диаграмму в таблице, содержащей поле типа General
Create a query what produces the graph (Создать запрос, который формирует диаграмму) Сохраняет созданный запрос и открывает его в окне конструктора запросов
Выберите, например, третий вариант и нажмите кнопку Finish (Готово). Мастер сохранит запрос с заданным именем и откроет окно конструктора с созданным запросом. Тело запроса содержит конструкцию select и команду вызова приложения создания диаграммы (рис. 10.16).



Рис. 10.15. Завершающая стадия создания диаграммы



Рис. 10.16. Созданный запрос можно использовать для построения диаграммы

Запустите запрос на выполнение.

Мастер вызывает программу Microsoft Graph, в которую передает результаты выборки и параметры диаграммы. В появившемся окне укажите, где вы хотите сохранить созданную форму. На рис. 10.17 показана диаграмма, созданная с помощью мастера.

Совет

Может оказаться, что запрос не создает диаграмму. Это возможно, если не определена системная переменная _gengraph. В этом случае задайте переменную, указав полный путь к файлу wzgraph.app, введя, например, в командном окне

_GENGRAPH = 'C:\Program FilesNMicrosoft Visual FoxPro 8\ Wizards\wzgraph.app'.



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

Чтобы перейти в режим редактирования диаграммы, выделите диаграмму и выберите из контекстного меню команду Диаграмма Object, а затем команду Изменить. Теперь вы можете приступить к изменению ее параметров.



Рис. 10.17. Диаграмма распределения клиентов по городам



Рис. 10.18. Круговая диаграмма распределения клиентов по городам

Замечание

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

Созданная нами диаграмма является одномерной. Для исходной таблицы вы можете также построить круговую диаграмму, которая позволяет увидеть относительный вклад каждой из величин в итоговое значение (рис. 10.18). Каждому элементу данных на диаграмме соответствует сектор круга, а суммарному значению — весь круг.


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


В Visual FoxPro для создания перекрестной таблицы можно использовать мастер Cross-Tab Wizard (Мастер построения перекрестных таблиц). В появляющемся после запуска мастера диалоговом окне необходимо указать исходную таблицу, которая может быть таблицей из базы данных или являться результатом выборки данных из нескольких таблиц. Мастер на основе исходной таблицы создает итоговую выборку, в которой группирует и сортирует данные по полям, используемым в качестве строки и столбца перекрестной таблицы, а также вычисляет суммарное значение по заданному полю данных. Затем Visual FoxPro вызывает программу vfpxtab.prg, наименование которой хранится в системной переменной _genxtab.

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

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

В меню File (Файл) выберите команду New (Новый).

В диалоговом окне New (Новый) выберите тип создаваемого объекта Query (Запрос) и нажмите кнопку Wizard (Мастер).

Из диалогового окна Wizard Selection (Выбор мастера) запустите мастера создания перекрестной таблицы, выбрав Cross-Tab Wizard (Мастер построения перекрестных таблиц).

Замечание

Для запуска мастера создания перекрестной таблицы можно также в меню Tools (Сервис) выбрать команду Wizard (Мастер), а затем — значение Query (Запрос). При этом открывается диалоговое окно Wizard Selection (Выбор мастера).

В первом окне мастера (рис. 10.4) выберите исходную таблицу saieGoods и все три поля, которые будут использоваться в качестве строки, столбца и поля данных перекрестной таблицы. Для перехода к следующему шагу нажмите кнопку Next (Далее).

Рис. 10.4. Выбор исходной таблицы и полей

На втором шаге в работе мастера (рис. 10.5) необходимо указать расположение полей в создаваемой перекрестной таблице. Вам предлагается разместить поля таблицы в трех полях диалогового окна. Для перемещения полей используйте метод "перенести-и-оставить".

Рис. 10.5. Определение строк, столбцов и поля данных


Перенесите поле город в область Column (Колонка), поле код товара — в область Row (Ряд) и поле сумма - в область Data (Данные). После этого диалоговое окно будет выглядеть так, как показано на рис. 10.6. Нажмите кнопку Next (Далее) для перехода к следующему шагу.



Рис. 10.6. Диалоговое окно после определения строк, столбцов и поля данных

В следующем диалоговом окне Cross-Tab Wizard (Мастер построения перекрестных таблиц) (рис. 10.7) содержатся опции, позволяющие вычислять групповые значения по полю (табл. 10.1).

Таблица 10.1. Назначение опций области Summary

Опция Назначение
Sum (Сумма) Итоговые значения равны сумме значений для каждой пары строка/столбец
Count (Количество) Итоговые значения равны количеству значений для каждой пары строка/столбец
Average (Среднее) Итоговые значения равны среднему значению для каждой пары строка/столбец
Мах (Наибольшее) Итоговые значения равны наибольшему из всех значений для каждой пары строка/столбец
Min (Наименьшее) Итоговые значения равны наименьшему из всех значений для каждой пары строка/столбец
Оставьте установленную по умолчанию опцию Sum.



Рис. 10.7. Определение типа группировки и итогового столбца

На третьем шаге в работе мастера вы можете также добавить столбец в создаваемую перекрестную таблицу, который будет содержать итоговое значение по каждой строке результирующей таблицы (см. рис. И).7). Мастер позволяет выбрать одну из опций (табл. И).2).

Таблица 10.2. Назначение опций области Subtotals

Опция Назначение
Sum of data (Сумма данных) Итоговые значения равны сумме значений для текущей строки
Number of cells containing data (Число ячеек, содержащих данные) Итоговые значения равны количеству ячеек, содержащих значения
Percentage of the table total (Процент от итоговой суммы)

Итоговые значения равны сумме значений для текущей строки, выраженной в процентах по отношению к итоговой сумме
None (Нет) Итоговый столбец не создается
Установите опцию Percentage of the table total (Процент от итоговой суммы). Для перехода к завершающей стадии создания перекрестной таблицы нажмите кнопку Next (Далее).

На последнем шаге работы мастера (рис. 10.8) вы можете просмотреть результаты, нажав кнопку Preview (Просмотр). Воспользуйтесь этой возможностью и убедитесь, что правильно установили все параметры.





Рис. 10.8. Завершающая стадия создания перекрестной таблицы

Установите в завершающем окне мастера одну из опций, описанных в табл. 10.3.

Таблица 10.3. Назначение опций диалогового окна Cross-Tab Wizard — Step 4

Опция Назначение
Save cross-tab query (Сохранить перекрестную таблицу в запросе) Мастер сохраняет созданную перекрестную таблицу в запросе
Save and run cross-tab query (Сохранить перекрестную таблицу в запросе и запустить) Мастер сохраняет созданный запрос и запускает его на выполнение
Save cross-tab query and modify in the Query Designer (Сохранить перекрестную таблицу и открыть для модификации в конструкторе запросов) Мастер сохраняет созданный запрос и открывает его в окне конструктора запросов
Выберите третий вариант и нажмите кнопку Finish (Готово). Мастер завершит работу и откроет созданный запрос в окне конструктора. Просмотрите SQL-оператор. Для этого в меню Query (Запрос) выберите команду View SQL (Показать SQL).

Запрос, созданный с помощью мастера, содержит конструкцию для выборки данных, вызов программы, формирующей перекрестную таблицу, и команду просмотра таблицы в режиме Browse (Просмотр):

SELECT SaleGoods.Код_товара, SaleGoods.Город, SUM(SaleGoods.Сумма);

FROM 'SaleGoods.DBF' SaleGoods;

GROUP BY SaleGoods.Код_товара, SaleGoods.Город;

ORDER BY SaleGoods.Код_товара, SaleGoods.Город;

INTO CURSOR SYS(2015)

DO (_GENXTAB) WITH 'Query',.t.,.t.,.t.,,,,.t.,2,.t.

BROWSE NOMODIFY

Результат запроса аналогичен приведенному на рис. 10.3.


Создание трехмерных диаграмм


Таблица cntcust содержит всего одно числовое поле, поэтому диаграмма, показанная на рис. 10.18, представляет собой простейшую диаграмму. Для построения более сложной диаграммы обратимся к перекрестной таблице Salereg.

Для создания диаграммы выполните следующие действия:

Запустите мастера создания диаграммы Graph Wizard (Мастер диаграмм).

Рис. 10.19. Трехмерная диаграмма, построенная для таблицы Salereg

На первом шаге выберите таблицу salereg и поля, содержащие кол товара и объемы продаж по городам. Чтобы диаграмма была более наглядной. ограничьтесь выбором нескольких городов. Нажмите кнопку Next (Далее).

Перенесите поле, содержащее наименование города, в область Axis (Ось), а объемы продаж по городам — в Data Series (Ряд данных).

Укажите тип создаваемой диаграммы и нажмите кнопку Next (Далее) для перехода к завершающей стадии создания диаграммы с помощью мастера.

Введите заголовок диаграммы: Продажи товаров.

Созданная диаграмма будет иметь вид, представленный на рис. 10. 19.



Блокирование команд меню


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

Нажмите кнопку Options (Опции) для пункта меню, который хотите заблокировать.

В открывшемся диалоговом окне Prompt Options (Опции элемента меню) нажмите кнопку вызова построителя выражения для поля Skip For (Пропустить для).

Введите .Т. в поле Skip For (Пропустить для) построителя выражений.

Нажмите кнопку ОК для закрытия диалогового окна Expression Builder (Построитель выражения). Вы оказываетесь в окне Prompt Options (Опции элемента меню).

Замечание

Задавая условия блокировки, вы можете ввести любое допустимое логическое выражение. При вводе простого выражения, не требующего использования функций конструктора выражений, введите формируемое выражение в поле Skip For (Пропустить для) диалогового окна Prompt Options (Опции элемента меню).

Нажмите кнопку ОК для его закрытия.

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

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



Действия для пунктов меню


Основное назначение пункта меню — выполнять определенное для него действие. Результат выбора пункта меню задается его типом (табл. 11.4).

Таблица 11.4. Типы пункта меню

Тип пункта меню

Действие

Submenu (Подменю)

Раскрывается связанное с данным пунктом меню ниспадающее подменю

Procedure(Процедура)

Выполняется процедура, определенная в конструкторе меню

Command (Команда)

Выполняется команда, расположенная в поле рядом с типом пункта меню



Действия, необходимые для создания меню


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

Для создания меню необходимо выполнить следующие действия:

Открыть окно конструктора меню.

Описать вид меню, текст, пункты меню и его атрибуты.

Определить действия, которые будут выполняться при выборе пунктов меню.

Сгенерировать меню, используя команду Generate (Генерация) из меню Menu (Меню). При этом создается программа, которую вы в результате и запускаете на выполнение.

Замечание

На каждом шаге создания меню приложения вы можете просматривать его с помощью кнопки Preview (Просмотр) конструктора.

Рассмотрим эти этапы более подробно.



Формирование сообщения для пункта меню


Используя поле ввода Message (Сообщение) диалогового окна Prompt Options (Опции элемента меню), вы можете определить для пункта меню сообщение, которое будет отображаться в строке состояния при установке на него курсора. В качестве сообщения можно использовать не только строку текста, но и произвольное символьное выражение. В этом случае нажмите кнопку вызова конструктора выражения, расположенную с правой стороны поля, и в открывшемся диалоговом окне Expression Builder (Построитель выражения) создайте необходимое выражение.

Определим сообщение для пункта меню Справка. Для этого выполните следующие действия:

Нажмите кнопку Options (Опции) для пункта меню Справка.

В открывшемся диалоговом окне Prompt Options (Опции элемента меню) нажмите кнопку вызова построителя выражения для поля Message (Сообщение).

В поле Message (Сообщение) построителя выражении введите строку текста "Вызов справочной системы".

Замечание

Введенную строку текста не забудьте поместить в кавычки.

Нажмите кнопку ОК для закрытия диалогового окна Expression Builder (Построитель выражения). Вы оказываетесь в окне Prompt Options (Опции элемента меню). Введенное вами выражение размещено в поле Message (Сообщение) (рис. 11.8).

Нажмите кнопку ОК.

Рис. 11.8. Определение сообщения для пункта меню Справка

Аналогичным образом вы можете определить сообщения для остальных пунктов меню. На рис. 11.9 показан результат вывода сообщения в строке состояния.

Рис. 11.9. Отображение в строке состояния сообщения для пункта меню



"Горячие" клавиши


Для выбора пункта меню используются клавиш и-стрелки или мышь. Помимо этого, вы можете определить для пункта меню "горячую" клавишу, нажатие которой вместе с клавишей <Alt> активизирует этот пункт.

Для создания "горячей" клавиши, предоставляющей пользователю возможность ускоренного выбора пункта меню, необходимо включить в его имя перед активизирующим символом следующие символы: \<. В качестве "горячей" клавиши можно использовать первый символ имени пункта, что, конечно, более предпочтительно, а также и любой другой символ из ею имени. Символы, используемые в качестве "горячей" клавиши, выделяются в строке меню подчеркиванием.

Предупреждение

"Горячие" клавиши для пунктов меню назначаются Visual FoxPro по умолчанию Для их создания используются первые буквы элементов строки меню Если два элемента вашего меню начинаются с одинаковой буквы, то обоим элементам строки меню в качестве "горячей" клавиши назначается одинаковый символ. В этом случае вам нужно переопределить "горячую" клавишу для одного из элементов строки меню.

Рис. 11.5. Создание строки меню с назначенными "горячими" клавишами

Для облегчения назначения "горячих" клавиш можно использовать искусственный прием: перед именами пунктов меню разместить цифры и использовать их в качестве "горячих" клавиш (рис. 11.5).



Команда


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

В столбце Result (Результат) конструктора меню выбрать из списка значение Command (Команда).

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

Обычно команды используются для вызова форм, отчетов, пользовательских процедур. Например, для запуска формы ввода списка клиентов достаточно ввести следующую команду:

DO FORM Client



Определение клавиш быстрого вызова пунктов меню


Помимо "горячих" клавиш, в создании которых используются только символы текста меню, в Visual FoxPro можно определить для каждого пункта меню клавиши быстрого вызова пунктов меню. В качестве такой клавиши могут использоваться символы, функциональные клавиши, комбинации клавиш. Примером клавиши ускоренного действия в программе Visual FoxPro является функциональная клавиша <Fl>, используемая для вызова справочной системы. При нажатии на клавишу, определенную в качестве клавиши быстрого вызова, активизируется связанный с ней пункт меню без предварительного отображения самого меню.

Рассмотрим последовательность действий по определению клавиши быстрого вызова пункта меню справочной системы приложения:

В конструкторе меню установите курсор на пункт меню Справка.

Нажмите кнопку Options (Опции).

В открывшемся диалоговом окне Prompt Options (Опции элемента меню) в области Shortcut (Всплывающее меню) поле Key Label (Метка) содержит подсказку press the key (нажмите клавишу). Установите курсор в поле Key Label (Метка) и нажмите клавишу или комбинацию клавиш, используемую в качестве клавиши быстрого вызова, и в поле появится метка, соответствующая нажатым клавишам. В поле ввода Key Text (Пояснение) вы можете ввести краткое пояснение к определяемой клавише. Для пункта меню Справка нажмите клавишу <F1> клавиатуры. В поле Key Text (Пояснение) по умолчанию будет введено F1 (рис. 11.7). Оставьте это значение.

Нажмите кнопку ОК для закрытия диалогового окна.

Рис. 11.7. Определение клавиши быстрого вызова для пункта меню Справка



Определение параметров меню


Для строки меню вы можете определить процедуры, которые будут выполняться перед запуском меню, а также после выхода из него. Кроме того, вы можете указать месторасположение строки меню. Для этого используется диалоговое окно General Options (Основные параметры) (рис. 11.16), открываемое при выборе команды General Options (Основные параметры) из меню View (Вид).

Рис. 11.16. Диалоговое окно General Options

В группе Location (Размещение) этого диалогового окна можно выбрать один из вариантов размещения строки созданного меню (табл. 11.5).

Таблица 11.5. Опции группы Location диалогового окна General Options

Опция

Вид размещения

Replace (Замещать)

Меню замещает основное меню Visual FoxPro

Append (Добавить)

Меню добавляется в основное меню Visual FoxPro

Before (Перед)

Меню вставляется перед указанным пунктом основного меню Visual FoxPro

After (После)

Меню размещается за указанным пунктом основного меню Visual FoxPro

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

Флажки Setup (Задать) и Cleanup (Очистить) используются для открытия окна редактирования процедуры, вызываемой при запуске сгенерированной программы с описанием меню, и процедуры, вызываемой перед завершением этой программы.

При установленном флажке Top-Level Form (Форма высокого уровня) меню будет отображаться в отдельном окне. В противном случае меню можно использовать только в окне Visual FoxPro.



Определение подменю


Большинство команд меню создаваемого приложения открывает подменю. Например, пункт меню Поставщики должен содержать команды Ввод поставщиков, Задолженность и Поставляемые товары. Для создания данного подменю выполните следующие действия:

Нажмите кнопку Create (Создать) пункта меню Поставщики. На экране появляется пустое окно конструктора меню. Список Menu Level (Уровень меню) нового окна содержит метку текущего пункта меню.

Введите в поле Prompt (Приглашение) первой строки команду Ввод поставщиков. Используя список Result (Результат), задайте тип созданного пункта меню.

Во второй строке введите команду Задолженность и также задайте тип.

Аналогичным образом введите третью команду (рис. 11.12).

Замечание

Параметры пунктов подменю определяются аналогично определению пунктов строки меню. Для перехода в меню верхнего уровня используйте список Menu Level.

Рис. 11.12. Окно создания подменю



Подготовка к созданию меню


В соответствии со стандартами Windows в любом приложении рекомендуется иметь строку меню, которая в Visual FoxPro содержит команды, предназначенные для вызова форм, формирования отчетов, запросов и т. д.

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

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

После этого определяется структура таблиц и совпадающие поля для их связывания. Затем создаются сами таблицы, входящие в базу данных, определяются отношения между ними.

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

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

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



Присвоение имени пункту меню


По умолчанию при генерации программы Visual FoxPro в качестве имен пунктов меню создает уникальные имена. Для повышения читабельности программы можно определить эти имена явным образом, используя иоле ввода Pad Name (Имя пункта меню) диалогового окна Prompt Options (Опции элемента меню).

Рис. 11.10. Диалоговое окно Prompt Options для пункта меню Справка

На рис. 11.10 приведено диалоговое окно Prompt Options (Опции элемента меню) для пункта меню Справка с определенным для него именем пункта меню, сообщением в строке состояния и условием блокировки.



Процедура


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

Рис. 11.11. Окно редактирования процедуры для пункта меню Справка

При вводе процедуры не используйте команду procedure, т. к. Visual FoxPro генерирует эту команду автоматически.

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

Замечание

После определения текста процедуры наименование кнопки Create (Создать) изменяется на Edit (Правка).



Разделители элементов меню


Для улучшения внешнего вида, а также для объединения в группы схожих по смыслу команд, в меню можно использовать разделительные линии. Разделительные линии представляют собой пункт меню, в котором в поле ввода Prompt (Приглашение) вместо наименования пункта вводятся символы \-. Рассмотрим создание разделительных линий в подменю Поставщики Для этого выполните следующие действия:

Откройте файл меню в окне конструктора проекта.

Перейдите в режим редактирования пункта меню Поставщики, нажав кнопку Create (Создать).

Вставьте новый элемент меню после пункта меню Ввод поставщиков. Для этого установите курсор на пункт Задолженность и нажмите кнопку Insert (Вставить).

В поле Prompt (Приглашение) образованного подпункта меню New Item (Новый пункт) введите \-.

Рис. 11.13. Создание разделителей в подменю Поставщики

Аналогично встаньте разделительную линию после пункта меню Задолженность

Нажмите кнопку Preview (Просмотр). Выберите пункт меню Поставщики.

На экране появится подменю с разделительными линиями (рис. 11.13).



Сохранение, генерация и запуск меню


Для сохранения созданного меню выберите команду Save as (Сохранить как) в меню File (Файл). В открывшемся диалоговом окне Save as (Сохранить как) из списка Папка выберите папку, в которой вы предполагаете сохранить файл, откройте ее, в поле Save Menu As (Сохранить меню в) введите имя сохраняемого меню. В заключение нажмите кнопку Сохранить.

С помощью кнопки Preview (Просмотр) окна конструктора меню можно просмотреть внешний вид создаваемого меню, но нельзя его активизировать.

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

В меню Menu (Меню) выберите команду Generate (Генерация). Откроется диалоговое окно Generate Menu (Генерация меню) (рис. 11. 17).

В поле Output File (Внешний файл) введите имя файла, который будет создан в результате генерации.

Для запуска генерации описания меню нажмите кнопку Generate (Генерация).

Рис. 11.17. Диалоговое окно Generate Menu

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

в окне проекта установите курсор на наименование созданного меню и нажмите кнопку Run (Запустить);

в меню Program (Программа) выберите команду Do (Выполнить). В открывшемся диалоговом окне Do (Выполнить) откройте папку, в которой вы сохранили файл меню, выберите файл с расширением MPR и нажмите кнопку Do (Выполнить).

На экране появится созданное вами меню, которое заменит основное меню Visual FoxPro, если в диалоговом окне General Options (Основные параметры) перед генерацией была установлена опция Replace (Замещать).

Совет

Если вам не удается восстановить на экране системное меню Visual FoxPro, введите в командном окне команду set sysmenu to default.



Создание меню


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

В поле Prompt (Приглашение) введите наименования первого пункта меню и нажмите клавишу <Enter> или <ТаЬ> для перехода на следующее поле. Курсор оказывается в списке Result (Результат).

Для определения типа пункта меню (табл. 11.2) нажмите кнопку раскрытия списка и выберите необходимое значение из тех, которые предлагает система.

Таблица 11.2. Типы меню

Тип меню

Назначение

Command (Команда)

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

Pad Name (Наименование строки меню)

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

Submenu (Подменю)

При выборе пункта меню раскрывается связанное с данным пунктом ниспадающее меню

Procedure (Процедура)

При выборе пункта меню вызывается процедура, определенная для данного пункта меню

Замечание

При использовании значения типа Command (Команда) с правой стороны появляется поле для ввода команды, выполняемой при выборе данного пункта меню. Это может быть, например, команда вызова формы или формирования отчета. Если из списка Result (Результат) вы выбрали значение Procedure (Процедура) или Submenu (Подменю), в окне конструктора правее описания типа пункта меню появляется кнопка Create (Создать). При нажатии этой кнопки вы переходите, соответственно, в окно создания процедуры или в окно создания ниспадающего меню для выбранного пункта меню.

Рис. 11.3. Основное меню приложения

Указав тип пункта меню, перейдите в следующую строку и введите информацию о втором пункте меню.

Введите наименования остальных пунктов меню и их типы (рис. 11.3).Для просмотра созданных пунктов меню нажмите кнопку Preview (Просмотр). Основное меню Visual FoxPro будет заменено созданным меню. Пункты меню отображаются на экране в порядке их описания. На экране также появляется диалоговое окно Preview (Просмотр), в котором отображается текст текущего пункта меню, его тип и выполняемое действие (рис. 11.4).

Рис. 11.4. Просмотр созданного меню приложения



Создание всплывающего меню


В Visual FoxPro имеется возможность создания всплывающего меню средствами конструктора меню.

Способ создания меню данного типа аналогичен созданию горизонтального меню в виде строки. Для этого меню, как и для обычного, можно определить оперативные клавиши и опции, устанавливаемые в диалоговом окне Prompt Options (Опции элемента меню).

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

Откройте проект.

Для открытия окна конструктора меню в окне проекта перейдите на вкладку Other (Остальные) и выберите группу Menus (Меню).

Нажмите кнопку New окна проекта.

В открывшемся диалоговом окне New Menu (Новое меню) нажмите кнопку Shortcut (Всплывающее меню). Откроется окно конструктора меню.

В поле Prompt (Приглашение) последовательно введите тексты пунктов меню и определите для них выполняемые действия (рис. 10.18).

Рис. 11.18. Создание меню типа Shortcut

Для генерации выберите команду Generate (Генерация) в меню Menu (Меню).

Запустите меню на выполнение. Вид данного меню при запуске представлен на рис. 11.19.

Рис. 11.19. Меню типа Shortcut



Задание графических изображений пунктам меню


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

В конструкторе установите курсор на пункт меню Справка.

Из списка Result (Результат) выберите значение Submenu (Подменю).

Нажмите кнопку Create (Создать) пункта меню Справка. На экране появляется пустое окно конструктора меню.

В поле Prompt (Приглашение) введите наименование пункта меню О программе.

Нажмите для этой строки кнопку Options (Опции). Открывается диалоговое окно Prompt Options (Опции элемента меню).

Область Picture (Изображение) содержит две опции, позволяющие указать, откуда будет браться графическое изображение:

File (Файл) — из графического файла;

Resource (Ресурс) — из списка графических изображений, используемых Visual FoxPro в системном меню.

Установите опцию Resource (Ресурс).

Нажмите кнопку, располагаемую справа от поля, находящегося под опцией. Открывается диалоговое окно Insert System Menu Bar (Вставить из системного меню) (рис. 11.14). Оно содержит список графических изображений и переключатель, позволяющий упорядочить значения списка по расположению в пунктах меню или по алфавиту.

Выберите из списка значение Microsoft Visual FoxPro Help и нажмите кнопку ОК. Окно закрывается. Выбранное значение переносится в область просмотра области Picture (Изображение) (рис. 11.15).

Нажмите кнопку ОК для закрытия дишюговое окно Prompt Options (Опции элемента меню).

Рис. 11.14. Диалоговое окно Insert System Menu Bar

Рис. 11.15. Диалоговое окно Prompt Options с заданным графическим изображением для пункта меню



Задание параметров пункта меню в диалоговом окне Prompt Options


Для задания параметров пункта меню используется диалоговое окно Prompt Options (Опции элемента меню) (рис. 11.6). Для открытия этого окна установите в конструкторе курсор на пункт меню и нажмите появившуюся в строке кнопку Options (Опции).

Рис. 11.6. Диалоговое окно Prompt Options

В диалоговом окне Prompt Options (Опции элемента меню) содержится область Shortcut (Всплывающее меню) для задания клавиш быстрого вызова, а также поля ввода (табл. 11.3).

Таблица 11.3. Назначение полей ввода диалогового окна Prompt Options

Поле ввода

Назначение

Skip For (Пропустить для)

Позволяет заблокировать пункт меню

Message (Сообщение)

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

Pad Name (Имя пункта меню)

Задает имя пункта меню

Comment (Комментарий)

Задает комментарий к пункту меню

Область Negotiate (Соглашение) содержит два раскрывающихся списка, имеющих следующее назначение:

Container (Контейнер) — определяет расположение меню при редактировании по месту OLE-объектов;

Object (Объект) — задает расположение меню при выполнении приложения типа Active Document в Web-браузере.

Область Picture (Изображение) позволяет разместить слева от текста пункта меню графическое изображение. Расположенные в ней объекты интерфейса доступны при определении подпунктов меню.



Запуск конструктора меню


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

В меню File (Файл) выберите команду New (Новый). В открывшемся диалоговом окне New установите опцию Menu (Меню) и нажмите кнопку New File (Новый файл).

В окне проекта перейдите на вкладку Other (Остальные) и выберите группу Menus (Меню). Затем нажмите кнопку New (Новый) окна проекта.

Находясь в группе Menus (Меню) окна проекта, нажмите кнопку New (Новый) на стандартной панели инструментов Visual FoxPro. В открывшемся диалоговом окне New (Новый) установите опцию Menu (Меню) и нажмите кнопку New File (Новый файл).

На экране открывается диалоговое окно New Menu (Новое меню), в котором предлагаются два варианта меню (рис. 11.1):

Рис. 11.1. Диалоговое окно New Menu

Menu — меню в виде строки

Shortcut — всплывающее меню, в котором основные пункты расположены по вертикали

Рис. 11.2. Конструктор меню

Выберите тип создаваемого меню, нажав соответствующую кнопку. В результате запускается конструктор меню, а в основное меню Visual FoxPro добавляется новый пункт Menu (Меню) (рис. 11.2). Сначала рассмотрим создание меню в виде строки. Для этого выберите опцию Menu (Меню).

Область конструктора меню, над которой расположены надписи Prompt (Приглашение), Result (Результат) и Options (Опции), предназначена для формирования меню.

В поле Prompt (Приглашение) можно ввести наименования пунктов меню. Раскрывающийся список Result (Результат) используется для указания типа пункта меню. Кнопка Options (Опции) открывает диалоговое окно Prompt Options (Опции элемента меню), в котором можно определить дополнительные параметры данного элемента меню ("горячие" клавиши, сообщение, отображаемое в строке состояния при выборе пункта меню и т. д.). В списке Menu level (Уровень меню) указывается уровень текущего меню.

Слева в конструкторе меню размещены кнопки (табл. 11.1).

Таблица 11.1. Назначение кнопок конструктора меню

Кнопка

Назначение

Insert (Вставить)

Добавляет в меню новый пункт

Insert Bar (Вставить команды системного меню)

Открывает диалоговое окно Insert System Menu Bar, содержащее команды системного меню Visual FoxPro, позволяя разместить их в создаваемом пользовательском меню

Delete (Удалить)

Удаляет текущий пункт меню

Move Item (Переместить элемент)

Открывает одноименное диалоговое окно, позволяющее указать пункт меню, в который переносится текущий подпункт

Preview (Просмотр)

Размещает создаваемое меню на экране, позволяя просмотреть его внешний вид



Формирование файла проекта справочной системы


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

Таблица 12.5. Разделы файла проекта справочной системы

Раздел Функция
[Files] Определяет список файлов с описанием тем
[Options] Определяет заголовок справочной системы, а также некоторые другие параметры компиляции
[BuildTags] Определяет список тем, включаемых в справочную систему
[Alias] Определяет псевдонимы тем
[Map] Назначает числовой индекс идентификатору темы
[Bitmaps] Определяет список графических файлов, включаемых в справочную систему



HELP


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

HELP [идентификатор'Гемы | ID индексТемы]

[IN [WINDOW] имяОкна ! IN [WINDOW] SCREEN]

| IN [WINDOW] MACDESKTOP]

[NOWAIT]

Для вывода содержания справочной системы необходимо использовать команду help без указания имени темы. Если вы хотите отобразить контекстную справку, необходимо указать идентификатор темы или ее индекс. Опция in [window] позволяет открыть окно справочной системы внутри окна, описанного с помощью команды define window.

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



Использование диалоговых окон


В процессе выполнения приложения осуществляются разнообразные проверки, например, проверка соответствия введенного в поле значения заданным условиям. Если в результате проверки окажется, что введенное значение не удовлетворяет требуемым условиям, необходимо об этом сообщить пользователю. Из текста сообщения должна быть ясна причина ошибки. Кроме того, текст должен содержать рекомендации по ее исправлению. Для вывода информационного сообщения вы можете воспользоваться функцией messagebox или создать собственную функцию. Рассмотрим описание функции messagebox и приведем пример ее использования.

Функция имеет следующий синтаксис:

MESSAGEBOX (текст-Сообщения [,типДиалоговогоОкна [,заголовок] ] )

Аргумент текстсообщения содержит текст выводимого сообщения. Длинное сообщение автоматически располагается на нескольких строках. Если сообщение состоит из нескольких предложений и вы хотите разбить его на абзацы, то используйте функцию chr(13) для формирования новой строки.

Аргумент типДиалоговогоОкна задает перечень кнопок и значков, которые будут отображаться в диалоговом окне. Данный аргумент является числовым и его значение определяется как сумма трех параметров: типа кнопок, типа значков и номера кнопки, выбранной по умолчанию. Возможные значения этих параметров приведены в табл. 12.1 —12.3.

Таблица 12.1. Кнопки, отображаемые в диалоговом окне

Значение Кнопки
0 ОК
1 ОК и Cancel
2 Abort, Retry, Ignore
3 Yes, No, Cancel
4 Yes, No
5 Retry, Cancel

Таблица 12.2. Значки, отображаемые в диалоговом окне

Значение Значок
16 Знак Stop
32 Вопросительный знак
48 Восклицательный знак
64 Информационный знак (i)

Таблица 12.3. Кнопка, выбираемая по умолчанию

Значение Кнопка по умолчанию
0 Первая кнопка
256 Вторая кнопка
512 Третья кнопка

Функция messagebox возвращает числовое значение, определяющее нажатую пользователем кнопку. Возможные значения приведены в табл. 12.4.

Таблица 12.4. Значения, возвращаемые функцией messagebo:-.


Значение Кнопка
1 ОК
2 Cancel
3 Abort
4 Retry
5 Ignore
6 Yes
7 No
Рассмотрим использование диалогового окна для вывода сообщения об ошибке ввода значения кредита клиента. Для этого выполните следующие действия:

Откройте форму для ввода информации о клиентах.



Рис. 12.2. Определение процедуры для события Valid

Выберите поле ввода значения кредита и для события Valid определите процедуру (рис. 12.2), которая проверяет введенное значение и при необходимости открывает диалоговое окно с сообщением об ошибке:

if THIS.Value > 5000

= MESSAGEBOX("Максимальный кредит для клиента составляет ;

5000 рублей." + ;

CHR(13) + ;

"В особых случаях согласуйте величину кредита ;

с Генеральным директором.",; 0+4 8+ 0, "Предупреждение")

endif

Запустите форму на выполнение, введите значение кредита более 5 000, перейдите на следующее поле. Откроется диалоговое окно с сообщением об ошибке (рис. 12.3).



Рис. 12.3. Диалоговое окно с сообщением об ошибке


Использование справочной системы в приложениях


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



Ключи для поиска тем


При определении ключей необходимо иметь в виду следующее:

в качестве маркера сноски используется латинский символ к;

Рис. 12.6. Определение ключей для поиска тем справочной системы

Рис. 12.7. Поиск темы по ключам справочной системы

в тексте сноски можно определить сразу несколько ключей поиска, разделив их знаком (;);

длина строки с ключами поиска должна быть не более 255 символов;

ключи могут содержать любые символы, а также знаки пунктуации (за исключением точки с запятой) и пробелы;

при поиске тем по ключам регистр введенных букв не учитывается.

На рис. 12.6 представлен фрагмент текстового описания справочной системы, а на рис. 12.7 — вкладка Предметный указатель основного окна справочной системы.



Команды Visual FoxPro для управления справочной системой


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

Таблица 12.7. Назначение команд для управления справочной системой

Команда Назначение
SET HELP Запрещает или разрешает вывод справочной системы или определяет имя используемой справочной системы
HELP Выводит на экран содержание или указанную тему справочной системы
SET TOPIC TO Определяет содержание справочной системы



Компиляция и тестирование справочной системы


После того как вы подготовили проект справочной системы, его необходимо сохранить и скомпилировать. Используя кнопку Save project, contents and index files на панели инструментов вкладки Project (Проект), можно сохранять файлы проекта, содержания и указателя. Для компиляции созданного проекта нажмите кнопку Compile HTML file (Компилировать HTML-файл) панели инструментов HTML Help Workshop.

Чтобы просмотреть созданный файл справочной системы, нажмите кнопку View compiled file (Просмотр скомпилированного файла). Откроется окно, представленное на рис. 12.26.

Рис. 12.26. Просмотр справочной системы



Компиляция справочной системы


После того как: описание тем справочной системы и файл проекта подготовлены, можно приступать к компиляции справочной системы. В результате будет создан файл справки, имеющий расширение HLP.

Для компиляции справочной системы в Visual FoxPro вы можете воспользоваться программой Help Workshop, выполнив следующие действия:

Запустите программу Help Workshop.

Появляется пустое окно программы. Откройте в этом окне созданный вами файл справочной системы проекта sales командой Open (Открыть) из меню File (Файл) (рис. 12.9).

Окно проекта содержит область просмотра файла проекта и кнопки, предназначенные для редактирования его разделов. Например, для редактирования раздела [options] нажмите кнопку Options (Параметры). В результате на экране откроется диалоговое окно Options (Параметры) (рис. 12.10), содержащее несколько вкладок. Для того чтобы скорректировать текст файла проекта, вам необходимо установить на вкладках требуемые параметры. Открывая соответствующие диалоговые окна, скорректируйте текст файла проекта.

Уточнив параметры файла проекта, запустите его на компиляцию, нажав кнопку Save and Compile (Сохранить и компилировать), расположенную в нижнем правом углу окна проекта. Результаты компиляции отображаются в диалоговом окне Compilation (Компиляция).

Если не было ошибок компиляции, создается файл справки, Вы можете запустить его для проверки непосредственно из программы Help Workshop. Для этого выполните следующие действия:

В меню File (Файл) выберите команду Run Winhelp (Запустить Winhelp).

В поле File (Файл) открывшегося диалогового окна (рис. 12.11) введите имя файла справки или выберите нужный файл из раскрывающегося списка ранее созданных файлов справок. Для поиска файла справки вы можете воспользоваться кнопкой Browse (Обзор), расположенной с правой стороны этого поля.

Используя раскрывающийся список Mapped Topic IDs (Идентификаторы тем), выберите тему, которую хотите отобразить на экране.

Рис. 12.9. Окно файла проекта справочной системы

Рис. 12.10. Диалоговое окно настройки раздела [OPTIONS]

Рис. 12.11. Выбор файла справки и темы



Окно HTML Help Workshop


Окно программы HTML Help Workshop (рис. 12.17) состоит из двух областей. В левой области находятся вкладки Project (Проект), Contents (Содержание), Index (Указатель) и Help (Справка). Слева от каждой вкладки размещена соответствующая панель инструментов.

В правой области окна отображается содержимое выбранной темы справочной системы в виде файла HTML. Вы можете не только просмотреть этот файл, но и редактировать его с помощью команд из меню Tags (Теги) и кнопок панели инструментов.

HTML Help Workshop предоставляет возможность просмотра файлов с темами в Web-браузере (рис. 12.18). Для этого выберите имя требуемого файла в разделе [files] и нажмите кнопку Display in Browser (Отобразить в браузере).

Рис. 12.17. Окно программы HTML Help Workshop

Рис. 12.18. Просмотр темы справочной системы в Web-браузере



Определение параметров компиляции


Раздел [options] файла проекта справочной системы содержит описание параметров компиляции. Ниже перечислены основные из них.

title - определяет заголовок окна справочной системы, который должен содержать не более 32 символов.

compress - используется для сжатия справочного файла, создаваемого компилятором. Параметр может принимать значение True или False.

warning - определяет количество сообщений об ошибках и предупреждениях, выводимых при компиляции.

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

Замечание

Наименование шрифта, заданного параметром forcefont, должно совпадать с его именем, которое отображается в папке Панель управления Windows. Пробелы в наименовании типа шрифта не допускаются.

Синтаксис параметра title следующий:

TITLE = имяЗаголовка

Параметр WARNING имеет следующий синтаксис:

WARNING = уровень,

где параметр уровень имеет одно из трех значений, приведенных в табл. 12.6.

Таблица 12.6. Уровни параметра warning

Уровень

Выводимая информация

1

Только наиболее серьезные ошибки

2

Все ошибки

3

Все ошибки и предупреждения



Определение параметров проекта справочной системы


Параметры проекта отображаются в разделе [options] вкладки Project (Проект). Для их редактирования нажмите кнопку Change Project Options (Изменить параметры проекта) на панели инструментов вкладки. Откроется диалоговое окно Options (Параметры) (рис. 12.19), которое содержит четыре вкладки: General (Общие), Files (Файлы), Compiler (Компилятор) и Merge Files (Объединяемые файлы).

Рис. 12.19. Определение параметров проекта

На вкладке General (Общие) вы определяете:

заголовок окна справочной системы;

файл темы и окно, которые выбираются при открытии справочной системы;

язык справочной системы.

Вкладка Files (Файлы) используется для указания расположения файлов справочной системы, файлов с указателями и содержанием. На вкладке Compiler (Компилятор) задаются параметры компиляции справочной системы.



Определение псевдонимов тем


Чтобы в приложениях можно было использовать справочную систему, вы должны определить псевдоним каждой темы. Для этого откройте диалоговое окно HtmlHelp API information нажатием одноименной кнопки на панели инструментов вкладки Project (Проект) и перейдите на вкладку Alias (Псевдоним) (рис. 12.20). После нажатия кнопки Add (Добавить) и задания в диалоговом окне Alias (Псевдоним) псевдонима и имени связанного с ним файла темы (рис. 12.21) будет добавлен новый псевдоним.

Рис. 12.20. Список псевдонимов тем

Рис. 12.21. Определение псевдонимов тем



Определение связи между псевдонимами и индексами тем


Для открытия определенной темы справочной системы используются индексы тем. Связь между псевдонимами тем и соответствующими им целочисленными значениями индекса тем задается в отдельном текстовом файле. В этом файле вы должны описать все идентификаторы, по которым будет осуществляться контекстный вызов. Данный файл состоит из строк, содержащих ключевое слово #Define, за которым следуют разделенные пробелом идентификатор и индекс темы. Пример текста приведен ниже:

#Define IDH_CUSTOMER 3

#Define IDH_GOODS 4

После создания файла связи вы должны связать его с файлом проекта. Для этого в диалоговом окне HtmlHelp API information перейдите на вкладку Map (Карта) и добавьте его в список подключаемых файлов.



Определение темы справочной системы для элементов управления


При создании справочной системы для каждой формы приложения, а иногда и для отдельных объектов формы, можно создать отдельную тему файла справки. Затем необходимо определить дли формы файл справки и связанную с формой тему. Для этого используется команда set help to имяФайла, которая должна выполняться при открытии формы или при запуске приложения, если справочная информация для всех форм находится в одном файле справки.

Затем необходимо задать для объектов формы или для самой формы свойство HELPConcextiD (рис. 12.27), которое использует индекс темы, заданный в разделе [map] файла проекта справочной системы.

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

Если вы установили это свойство, то во время просмотра формы нажатие клавиши <Fl> приведет к открытию указанной темы справочной системы. На рис. 12.28 вы видите использование справки в формате WinHelp, а на рис. 12.29 — в формате HTML.

Рис. 12.28. Вид темы справочной системы в формате WinHelp

Рис. 12.29. Вид темы справочной системы в формате HTML



Перекрестные ссылки


Используя перекрестные ссылки справочной системы, вы можете из текущей темы перейти в связанные с ней или близкие ей темы.

В предыдущем разделе мы рассматривали создание тем, для которых были определены идентификаторы. Теперь создадим тему, в которой будет приведена ссылка на связанные с ней темы.

В теме создадим в качестве примера ссылку между фразой Печать данных этой темы и темой с идентификатором Print_text. Для этого установите для фразы Печать данных формат Двойное подчеркивание. Далее установию курсор на следующую позицию за выделенной фразой, определите форма! Скрытый и введите идентификатор темы, с которой устанавливается связь (в данном случае: print_text).

Замечание

Идентификатор расположите сразу же за выделенной фразой, не оставляя между ними пробела (рис. 12.8).

Рис. 12.8. Создание перекрестной ссылки

Замечание

По умолчанию скрытый текст не отображается на экране, что довольно неудоб но при создании описания справочной системы. Чтобы скрытый текст отобра жался на экране, установите на вкладке Вид диалогового окна Параметры, открывающегося при выборе команды Параметры из меню Сервис, режим отображения скрытого текста.

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



Пояснения к терминам


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

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



Раздел [Files]


В разделе [Files] перечисляются файлы в формате RTF, которые включаются в состав справочной системы. Например:

[Files]

SALES.RTF; инструкция пользователя

EDIT.RTF; инструкция по общим правилам ввода данных



Раздел [Map]


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

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



SET HELP


Команда set help управляет выводом справочной системы и определяет ее имя. Она имеет два варианта синтаксиса:

SET HELP ON | OFF Предназначена для разрешения или запрета активизации стандартной справочной системы программы Visual FoxPro. Если использована команда set help on, при нажатии клавиши <F1> или при выполнении команды HELP основного меню отображается стандартная справочная система Visual FoxPro. При использовании команды set help off средства просмотра справочной системы будут недоступны
SET HELP TO имяФайла Определяет дополнительный файл справочной системы. Этот вариант команды позволяет использовать созданную вами справочную систему
Например:

SET HELP TO sales.hip



SET TOPIC


По умолчанию содержанием справочной системы является первая по порядку тема. Для изменения содержания используется команда set topic, позволяющая определить тему, которая в дальнейшем будет являться содержанием справочной системы.

Команда имеет два варианта синтаксиса:

SET TOPIC TO [имяТемы | логическоеВыражение]

SET TOPIC ID TO [индексТемы]

Используя команду set topic to имятемы, вы можете задать имя темы, отображаемой в справочной системе.

Команда SET TOPIC ТО логическоеВыражение Отображает заданную тему в справочной системе в зависимости от значения логического выражения.

Команда set topic id to [индекстемы] используется для указания отображаемой темы по его идентификатору.



Содержание справочной системы


Обычно окно справочной системы содержит три вкладки: Содержание, Указатель и Поиск. Для того чтобы в диалоговом окне присутствовала вкладка Содержание, необходимо создать файл с содержанием справки. Например, для файла справки, приведенного на рис. 12.8, не был создан файл с содержанием справочной системы. Конечно, можно в области текста темы, открываемой при вызове справочной системы, указать ссылки на все остальные темы файла справки. Но при создании файла справки в среде Windows предпочтительным является отображение содержания в иерархическом виде. Для создания такого содержания в Help Workshop выполните следующие действия:

В меню File (Файл) выберите команду New (Создать).

В диалоговом окне New (Новый) выберите опцию Help Contents (Содержание).

На экране открывается диалоговое окно, в котором можно выбрать режим создания содержания справочной системы (рис. 12.12). Выберите опцию Help Contents (Содержание). Открывается окно редактора содержания справочной системы (рис. 12.13).

В поле Default filename (and window) (Стандартный титул файла и окна) введите имя файла справки, содержащего темы, на которые ссылаются элементы содержания.

В поле Default title (Стандартный титул) введите заголовок окна содержания.

Рис. 12.12. Выбор режима создания содержания справочной системы

Рис. 12.13. Окно редактирования содержания справочной системы

В центре диалогового окна расположена область отображения содержания справочной системы. В нее вы можете добавить заголовки нескольких уровней вложенности и ссылки на темы справочной системы. Для добавления заголовка самого верхнего уровня нажмите на кнопку Add Below (Добавить ниже). На экране открывается диалоговое окно Edit Contents Tab Entry (рис. 12.14).

Установите опцию Heading (Заголовок).

В поле Title (Титул) введите наименование заголовка.

Нажмите кнопку ОК для закрытия диалогового окна.

Рис. 12.14. Ввод заголовка содержания справочной системы

Для ввода заголовка следующего уровня опять нажмите кнопку Add Below (Добавить ниже) и создайте следующий заголовок.


Созданный заголовок является на самом деле подзаголовком предыдущего заголовка. Нажатием кнопки Move Right (Переместить вправо) переместите его правее на следующий уровень вложенности.

Для добавления ссылки на тему справочной системы нажмите кнопку Add Below (Добавить ниже) или Add Above (Добавить выше).

В открывшемся диалоговом окне Edit Contents Tab Entry установите опцию Topic (Тема).

В поле Title (Титул) введите наименование заголовка, а в поле Topic ID — идентификатор темы справки (рис. 12.15).

Если тема находится в файле справки, отличном от файла, указанного в поле Default filename (and window), укажите в поле ввода Help file (Файл справки) имя файла справки.



Рис. 12.15. Определение ссылки на тему справочной системы

После ввода содержания справочной системы сохраните его.

На рис. 12.16 приведен пример содержания справочной системы. Обратите внимание, что заголовки выделены значком с изображением раскрытой книги, а ссылки на темы — значком со знаком вопроса.



Рис. 12.16. Содержание справочной системы

Чтобы подключить содержание к файлу справки откройте окно файла проекта и в разделе [options] укажите имя файла с содержанием справочной системы.


Создание ключей для поиска тем


Для создания ключей поиска перейдите на вкладку Index (Указатель). Используя кнопки панели инструментов вкладки, вы можете создать новый ключ, редактировать ранее созданный или удалить ключ (рис. 12.24).

Для добавления нового ключа нажмите кнопку Insert a keyword (Вставить ключ). Откроется диалоговое окно Index Entry (Ввод указателя) (рис. 12.25), в котором в поле Keyword (Ключ) введите значение ключа, а затем в список Files/URLs and their information types (Файлы/Интернет ссылки и их типы) с помощью кнопки Add (Добавить) добавьте созданные ранее темы справочной системы. Для изменения тем используйте кнопку Edit (Редактировать), а для удаления — кнопку Remove (Удалить).

Рис. 12.24. Определение ключей для поиска тем

Рис. 12.25. Определение тем для ключа



Создание содержания справочной системы


Для создания содержания справочной системы в иерархическом виде перейдите на вкладку Contents (Содержание). В области содержания справочной системы (рис. 12.22) вы можете добавить заголовки нескольких уровней вложенности и непосредственно ссылки на темы справочной системы. Чтобы добавить заголовок или строку ссылки на тему справочной системы, нажмите соответственно на кнопки Insert a heading (Вставить заголовок) или Insert a page (Вставить страницу). Откроется диалоговое окно Table of Contents Entry (Ввод содержания) (рис. 12.23), в котором залайте наименование строки содержания и ссылку на тему справочной системы.

Рис. 12.22. Вкладка Contents

Рис. 12.23. Определение элемента содержания справочной системы

Вы можете создать многоуровневое содержание справочной системы. Для изменения уровня заголовка используйте кнопки Move selection right (Сдвинуть вправо) и Move selection left (Сдвинуть влево).



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


Для создания справочной системы в формате HTML можно использовать HTML Help Workshop. Для этого выполните следующие действия:

Создайте темы справочной системы, сохраняя при этом каждую тему в отдельном HTML-файле. Для создания этих файлов вы можете использовать любой редактор файлов HTML, например Microsoft Word.

Запустите программу HTML Help Workshop и постройте новый проект справочной системы. С помощью мастера проекта включите в проект ранее созданные файлы с темами. Определите свойства проекта.

Замечание

Если у вас имеется ранее созданный проект справочной системы в формате WinHelp, с помощью мастера вы можете преобразовать его в проект формата HTML.

Укажите псевдоним для каждой темы.

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

Создайте ключи для поиска тем справочной системы.

Сохраните все файлы проекта и скомпилируйте его.

В создаваемом в Visual FoxPro приложении укажите файл справочной системы (с расширением СНМ) с помощью команды set help to.

Для каждого объекта приложения, с которым связана тема справочной системы, задайте свойство helpcontextid.



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


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

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

Для организации контекстного вызова темы из справочной системы вы можете использовать числовые значения индексов или значения ключа. Использование идентификаторов тем для контекстного вывода справочной информации не допускается.

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

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

Создание справочной системы в формате WinHelp включает следующие этапы:

Создание описания справочной системы. Для этого можно использовать любой текстовый редактор, поддерживающий формат RTF. Описание содержит темы, индексы и ключи справочной системы. Структура документа должна соответствовать требованиям, предъявляемым компилятором справочной системы (Help Compiler).

Формирование файла с расширением CNT, содержащего иерархическое содержание создаваемой справочной системы.


Формирование текстового файла с расширением HPJ, содержащего параметры для компиляции справочной системы: имя файла с описанием справочной системы, заголовок справочной системы.

Компиляция созданного текстового описания с использованием Help Compiler.

Определение свойства HeipContextiD для требуемых объектов формы, а также создание в приложении кнопок и пунктов меню для вызова справочной системы.

Мы рассмотрим только наиболее часто используемые средства при создании справочной системы. Подробную информацию вы найдете в руководстве по применению Help Compiler. В качестве примера создадим простую справочную систему, состоящую из нескольких тем. Для каждой темы определим заголовки, идентификаторы и ключи, применяемые для поиска информации.

Замечание

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


Справка типа What's This?


Для краткого описания отдельных объектов формы можно использовать справку типа What's This?, которая аналогична контекстно зависимой справке, выводимой для объекта, на котором установлен фокус. Но, в отличие от нее, справка типа What's This? отображается в виде небольшого окна с текстом справочной информации и удаляется с экрана, как только вы щелкните мышью где-либо на экране.

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

Таблица 12.8. Свойства справки типа What's This?

Свойство Описание
WhatsThisHelp Установка этого свойства для формы позволяет использовать справку типа What's This? как для формы, так и для входящих в нее объектов
WhatsThisButton При установке этого свойства в правой части области заголовка формы появляется кнопка What's This?
WhatsThisHelpID Задает идентификатор темы справочной системы для данного обьекта

Кроме того, для изменения вида курсора на знак вопроса и вызова справки типа What's This? при щелчке мышью на объекте, можно использовать метод WhatsThisMode.

Замечание

Темы для справки типа What's This? выводятся в окне небольшого размера, поэтому должны содержать только краткую, на несколько строк, информацию.

Для определения справки типа What's This? выполните следующие действия:

Откройте в окне конструктора форму, для которой хотите создать справку данного типа.

Установите для формы свойство WhatsThisHelp равным True.

Для отображения кнопки What's This? в заголовке формы установите свойство WhatsThisButton равным True.

Для задания темы справочной системы используйте свойство WhatsThisHelpID.



Строка состояния


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

Для отображения справочной информации в Visual FoxPro вы можете использовать строку состояния, диалоговое окно и справочную систему в формате WinHelp или HTML.

В Visual FoxPro строка состояния используется для пояснения назначения элементов управления формы и пунктов меню. Пояснения к элементам управления, отображаемые в строке состояния, задаются в свойстве statusBarText (Текст строки состояния). Кроме текста строки состояния вы можете задать текст подсказки, который будет отображаться под курсором мыши, если его установить на элемент управления и удерживать некоторое время. Текст подсказки задается в свойстве TooiTipText (Текст подсказки). На рис. 12.1 для поля редактирования, содержащего адрес клиента, в окне Properties (Свойства) установлены значения свойств statusBarText (Текст строки состояния) и TooiTipText (Текст подсказки).

Рис. 12.1. Определение пояснений для элемента управления



Темы справочной системы


Создание тем справочной системы начинается с создания файла описания в формате RTF. Проще всего для этого использовать редактор Microsoft Word. Создайте с помощью него новый файл. После этого введите тексты тем справочной системы, расположив каждую тему на отдельной странице. Для разделения тем вставьте между ними признак начала новой страницы путем нажатия комбинации клавиш <Ctrl>+<Enter>. В тексте вы- можете форматировать отдельные части темы, а также вставлять в текст рисунки (рис. 12.4).

Можно определить заголовки, идентификаторы и ключи поиска для каждой темы. В Microsoft Word для этих целей необходимо воспользоваться сносками. Указатели сноски должны располагаться в начале темы, а сам текст заголовка, идентификатора и ключа поиска — в области сноски. Для определения заголовка темы выполните следующие действия:

Установите курсор в начало темы.

В меню Вставка выберите команду Сноска.

В открывшемся диалоговом окне для определения сноски выберите опцию Нестандартный маркер, а в качестве маркера сноски используйте символ $.

После этого введите текст сноски, который будет являться текстом заголовка темы (рис. 12.5).

Рис. 12.4. Тексты тем с рисунками

Рис. 12.5. Определение заголовка темы

Предупреждение

Будьте внимательны. Между маркером сноски и текстом заголовка должен быть только один пробел. Заголовок должен содержать не более 128 символов. Кроме того, он не может быть форматированным.

Идентификатор темы определяется аналогично заголовку темы, только в качестве маркера сноски используется символ #. При создании идентификатора необходимо придерживаться следующих правил:

идентификатор может содержать латинские буквы, цифры и символы точка (.) и подчеркивание (_);

длина идентификатора не должна быть более 255 символов;

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