Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка№7 29.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.81 Mб
Скачать

7.4. Определение всплывающего меню popup

DEFINE POPUP <имя всплывающего меню >

[FROM < X1,Y1 > TO < X2,Y2 >]

[PROMPT <вржС> / PROMPT FIELD <врж> / PROMPT FILES [LIKE <шаблон>] / PROMPT STRUCTURE]

[IN WINDOW < имя окна, определенного заранее >]

[KEY <имя клавиши, используемой для вызова меню>]

[FOOTER <>] [TITLE <>]

* заголовки соответственно в нижней и верхней строках всплывающего меню

[MARK < символ, расположенный слева от пункта меню >]

[MESSAGE<текст сообщения>]

[MULTISELECT]

[SHADOW]

* для выделения более темным цветом

[SCROLL]

[COLOR SCHEME <список цветовых пар>]

Опция PROMPT задает заголовки пунктов меню.

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

Например, пункты всплывающего меню Familii можно назвать фамилиями пациентов из поля SurnPt таблицы PatientTab.dbf базы данных регистратуры (рис. 12).

USE patienttab

DEFINE POPUP Familii FROM 1,7 TO 15,30;

PROMPT FIELD surnpt

ACTIVATE POPUP Familii

Р ис. 12. Меню для выбора фамилии

Пункты всплывающего меню могут состоять из нескольких полей разного типа: например, фамилии и имени пациентов из поля SurnPt и NamePt и даты рождения Datar таблицы PatientTab.dbf базы данных регистратуры (рис. 13):

USE patienttab

DEFINE POPUP Patienti FROM 1,7 TO 15,50;

PROMPT FIELD surnpt + namept + DTOC(datar)

ACTIVATE POPUP Patienti

Рис. 13. Меню для выбора пациентов

Или специализации врача SpecDc и стажа работы Exper таблицы DoctorTab.dbf базы данных регистратуры (рис. 14):

USE DoctorTab

DEFINE POPUP DoctorTab FROM 1,7 TO 5,20;

PROMPT FIELD Specdc + STR(exper)

ACTIVATE POPUP DoctorTab

Рис. 14. Меню для выбора стажа работы врача

При использовании PROMPT FILES [LIKE <шаблон>] пункты будут называться именами файлов, отобранных в соответствии с шаблоном (рис. 15):

DEFINE POPUP FileDBF FROM 1,7 TO 20,50;

PROMPT FILES LIKE *.dbf

ACTIVATE POPUP FileDBF

Рис. 15. Меню с именами файлов формата dbf

А использование опции PROMPT STRUCTURE обеспечит выбор имен полей открытой таблицы (рис. 16):

USE doctortab

DEFINE POPUP patienti FROM 1,7 TO 10,20;

PROMPT STRUCTURE

ACTIVATE POPUP patienti

Рис. 16. Меню с именами полей открытой таблицы

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

CLEAR

DEFINE POPUP popDemo MOVER FROM 2,2

DEFINE BAR 1 OF popDemo PROMPT ‘Первый’

DEFINE BAR 2 OF popDemo PROMPT ‘Второй’

DEFINE BAR 3 OF popDemo PROMPT ‘Третий’

DEFINE BAR 4 OF popDemo PROMPT ‘Четвертый’

ACTIVATE POPUP popDemo

Р ис. 17. Всплывающее меню с возможностью их перемещения

6.5. Определение пунктов bar всплывающего меню

DEFINE BAR <номер пункта> OF <имя POPUP-меню> PROMPT <вржС>

[BEFORE < имя пункта >/AFTER < имя пункта >]

[KEY <имя клавиши, используемой для вызова меню>]

[MARK < символ, расположенный слева от пункта меню >]

[MESSAGE<текст сообщения>]

[SKIP [FOR <вржL, определяющее условие блокировки>]]

[COLOR SCHEME <список цветовых пар>]

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

Рис. 18. Структура меню

Тогда текст программы будет следующим:

DEFINE MENU main

DEFINE PAD padmainOne OF main PROMPT '\<Формы '

DEFINE PAD padmainTwo OF main PROMPT '\<Запросы '

DEFINE PAD padmainThree OF main PROMPT '\<Выход '

ON PAD padmainOne OF main ACTIVATE POPUP popMainOne

ON PAD padmainTwo OF main ACTIVATE POPUP popMainTwo

DEFINE POPUP popmainOne

DEFINE BAR 1 OF popmainOne PROMPT '\<Форма 1 '

DEFINE BAR 2 OF popmainOne PROMPT '\<Форма 2 '

ON BAR 1 OF popmainOne ACTIVATE menu menuline

DEFINE menu menuline

DEFINE PAD padlineOne OF menuline PROMPT '\<Удалить ' at 1.5,7.5

DEFINE PAD padlineTwo OF menuline PROMPT '\<Добавить ' at 1.5,15

DEFINE PAD padlineThree OF menuline PROMPT '\<Изменить ' at 1.5,23.5

DEFINE PAD padlineFour OF menuline PROMPT '\<Просмотреть ' at 1.5,32

ON PAD padlineTwo OF menuline ACTIVATE POPUP popmenuline

DEFINE POPUP popmenuline

DEFINE BAR 1 OF popmenuline PROMPT '\<Терапевта'

DEFINE BAR 2 OF popmenuline PROMPT '\<Специалиста '

DEFINE POPUP popMainTwo

DEFINE BAR 1 OF popMainTwo PROMPT '\<Запрос 1 '

DEFINE BAR 2 OF popMainTwo PROMPT '\<Запрос 2 '

DEFINE BAR 3 OF popMainTwo PROMPT '\<Запрос 3 '

DEFINE BAR 4 OF popMainTwo PROMPT '\<Запрос 4 '

ON BAR 1 OF popMainTwo ACTIVATE POPUP menuzapr

DEFINE POPUP menuzapr

DEFINE BAR 1 OF menuzapr PROMPT '\<Печать'

DEFINE BAR 2 OF menuzapr PROMPT '\<Изменение '

ACTIVATE MENU main

Результат работы представлен на рис. 19.

Рис. 19. Сгенерированное меню