Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв БД 2013-03-15.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
12.65 Mб
Скачать

2.14.3. Команда вывода отчета

Формирование и вывод отчета реализуются командой Visual FoxPro:

Report Form <имя файла с формой отчета>

[<граница>][For <условие 1>][While <условие 2>

[Preview] [To Printer | To File <имя файла> [Ascii]],

Preview ‑ режим предварительного просмотра отчета.

2.15. Меню

Меню (типа системного) формируется конструкторами Menu и Short­­Cut ‑ го­ри­зон­таль­ное и вертикальное всплывающее (типа контекстного меню) меню с ниспа­даю­щими вер­ти­каль­ными подменю соответственно.

Покажем создание меню приложения (рисунок 2.15.1) на примере ра­бо­ты с созданной базой “Выпуск изделий Уралмашем” (п. 2.10).

  1. И з раздела Menus проекта нажмем кнопки New/Menu. В колонке Prompt укажем тексты пунктов горизонтального меню Menu Bar.

Рис. 2.15.1. Окно конструктора меню (горизонтальное меню)

  1. Перейдем на первую строку. В поле Result указывается тип вы­пол­няемого объекта в случае выбора пользователем данного пункта: Submenu (вертикальное ниспадающее подменю, выберем этот тип), Pad Name (комментарий к меню), Command/Procedure (выполнение коман­ды/про­цедуры). Нажмем кнопку Create для создания подменю и сфор­ми­ру­ем оп­ции этого подменю (рисунок 2.15.1).

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

Р екомендации. Имя файла можно копировать в окно кон­ст­рук­тора меню: выделите в проекте нужный файл, выполните команду Rename из контекстного меню, нажмите кла­ви­ши Ctrl+C (копи­ро­вать в буфер), нажмите кнопку Cancel, установите кур­­сор в нужное место и нажмите клавиши Ctrl+V (восстановление из бу­фе­ра).

Из окна проекта на­име­но­ва­ние файла можно просто пере­нес­ти мышкой в программное окно.

Рис. 2.15.2. Окна редактора процедур и конструктора меню (ниспадающее меню)

  1. Аналогично создадим процедуры для остальных пунктов подменю.

  2. Откроем список Menu Level и выберем строку Menu Bar для возвращения в горизонтальное меню.

  3. Аналогично сформируем подменю с представлениями “Базо­вое пред­ставление”, “Итоговое количество и затраты на выпуск изделий” (п. 2.11.2). В текстах процедур поменяем только команду Use (укажем имя представления).

  4. Сформируем подменю “Запросы” с запросом “Итоговая таблица вы­пуска изделий по подразделениям” (п. 2.12.1). Укажем в качестве типа ре­зультата выбора этого пункта команду выполнения прог­рам­мы с зап­ро­сом: Do “Итоговая таблица выпуска изделий по подразделениям.QPR”.

  5. Аналогично сформируем меню “Формы” с формой “Диаграмма ито­говых затрат по изделиям” (п. 2.12.1). Укажем команду для вызова этой формы: Do Form “Диаграмма итоговых затрат по изделиям”.

  6. Перейдем на подменю “Отчеты”. Сформируем пункт “Выпуск из­де­­­лий по подразделениям и дням” и укажем команду фор­ми­ро­­вания: Report Form “Выпуск изделий по подразделениям и дням” Preview.

  7. Для пункта “Выход” укажем команду восстановления системно­го меню: Set Sysmenu to Default.

  8. Кнопкой Preview проверим внешний вид меню.

  9. Выполним команду Menu/Generate для генерации программы ме­ню под именем Menu1.mpr.

  10. Из раздела проекта Programs нажмем кнопку Add и добавим в проект программу Menu1.mpr.

  11. Нажмем кнопку Modify и откорректируем текст этой программы: удалим все строки с текстом KEY ALT+… (так как символы кириллицы не допускаются в качестве “горячих” клавиш) и удалим во всех строках приз­нак переноса (точка с запятой) после текста COLOR SCHEME 3.

  12. Сохраним программу и выполним ее из проекта кнопкой Run.

Выполнить программу можно из командного окна командой:

Do Menu1.mpr.

Описание меню хранится в программе с расширением MPR (Menu1.mpr) и в файлах с расширениями MNX, MNT (Me­nu1.mnx, Menu1.mnt), которые формируются конструктором меню.

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

Формирование обычного меню производится путем корректировки сгенерированного текста программы с системным меню:

  1. В начале программы добавим строку определения обычного меню с другим именем, например mainmenu:

Define Menu mainmenu

  1. Заменим везде имя системного меню _MSYSMENU на Mainmenu.

  2. После описания пунктов меню вставим команду активизации меню: Activate Menu Mainmenu.

  3. Удалим в начале программы строки:

SET SYSMENU TO

SET SYSMENU AUTOMATIC

  1. В пункте выхода из меню укажем команду

Deactivate menu Mainmenu

  1. Сохраним и выполним программу.

Формирование всплывающего меню типа ShortCut

Этот тип меню формируется аналогично типу Menu, но не требует корректировки сгенерированного текста программы с меню, появляется на месте указателя мышки и исчезает при выборе пункта меню. Для вызова программы (например, Menu1.mpr) с этим меню при нажатии правой кнопки используется команда: On Key Label RightMouse Do Menu1.mpr.

Дополнительные возможности конструктора меню

В тексте пункта меню можно указать “горячую клавишу”, которая выделяется символами “\>” впереди этой клавиши (\>Выход).

Горизонтальная линия в меню задается символами “\-“.

Определение параметров меню в окне General Options, которое вы­зы­вается командой View/General Options.

Рассмотрим поля этого окна (рисунок 2.15.3).

Procedure ‑ текст процедуры, выполняемой при активизации меню.

Replace/Append ‑ меню замещает/добавляется к меню FoxPro.

Before/After ‑ меню включается перед/после указанного пункта меню FoxPro.

Setup/Cleanup ‑ открытие окна редактирования процедуры, выполняемой до/после сгенерированной программы с меню.

Top‑Level Form ­‑ меню можно использовать в отдельном окне.

Кнопкой Option для каждого пункта меню можно вызвать окно Prompt Options установки дополнительных параметров (рисунок 2.15.3).

Рассмотрим поля этого окна.

Key Label ‑ клавиша прямого вызова пункта без раскрытия меню (нажмите клавишу или комбинацию клавиш, находясь в этом поле (Ctrl+V)).

Key Text ‑ изображение клавиши прямого вызова в пункте меню (^V).

Container/Object ‑ место расположения заголовков меню при редакти­рова­нии по месту OLE‑объектов/Active Document в Web‑броузере: None (заго­лов­ки не отображаются), Left (левее меню File), Right (правее пункта меню Window/Help), Middle (между пунктами Edit и Container).

Skip For ‑ условие блокировки пункта меню (TipZarpl=2). Заблокиро­ван­ный пункт выводится со стертой надписью.

Message ‑ текст сообщения, выводимого в строке состояния.

Pad Name ‑ имя пункта меню.

C omment ‑ текст комментария разработчика меню.

Рис. 2.15.3. Установка параметров меню и его отдельных пунктов