Часть 11
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є OCCURS є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Возвращает число, соответствующее тому, сколько раз одно символьное
выражение встретилось в другом символьном выражении
Синтаксис
OCCURS(, )
Параметры
Отыскиваемое символьное выражение
Исследуемое символьное выражение
Возвращаемый тип
Численный
Смотри также
$, INLIST()
Описание
Функция OCCURS() возвращает целое число, соответствующее тому,
сколько раз одно символьное выражение встретилось в другом символьном
выражении. Если выражение ни разу не было обнаружено, функция OCCURS()
возвращает ноль.
Параметры
Символьное выражение будет отыскиваться.
Символьное выражение будет исследоваться на содержание
символьного выражения .
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Примеры є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
STORE 'abracadabra' TO d_string
? OCCURS('a',d_string)
5
? OCCURS('b',d_string)
2
? OCCURS('c',d_string)
1
? OCCURS('e',d_string)
0
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є ON BAR є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Активизирует всплывающее меню или линейку меню, когда выбирается
команда меню
Синтаксис
ON BAR OF
[ACTIVATE POPUP
| ACTIVATE MENU ]
Замечания
Новая в FoxPro 2.0
Смотри также
ACTIVATE MENU, DEFINE BAR, DEFINE MENU, DEFINE POPUP, ON SELECTION BAR
Описание
Когда из всплывающего меню выбирается команда, могут возникать
следующие случаи - другое всплывающее меню может быть показано и
активизировано, линейка меню может быть показана и активизирована, или
может быть выполнена процедура. Команда ON BAR показывает и
активизирует другое всплывающее меню или линейку меню, когда
выбирается команда. Всплывающее меню, которое показывает и
активизирует другое всплывающее меню или линейку меню, называется
иерархическим всплывающим меню. Для выполнения процедуры при выборе
команды, вы должны использовать команду ON SELECTION BAR или ON
SELECTION POPUP.
Дополнительные опции
OF
Каждая команда во всплывающем меню может иметь назначенное ей
другое всплывающее меню или линейку меню. Задайте номер строки команды
и имя всплывающего меню , содержащего команду, и
показываемое и активизируемое всплывающее меню или
линейку меню .
Команда всплывающего меню, которой назначено всплывающее меню или
линейка меню, будет иметь стрелку в правом углу команды. Стрелка
указывает, что для этой команды доступно дополнительное всплывающее
меню или линейка меню. Если команды всплывающего меню были созданы с
ключевым словом MARGIN, дополнительное пространство для стрелки
иерархического всплывающего располагается справа от каждой команды.
Если команды всплывающего меню были созданы без ключевого слова
MARGIN, стрелка иерархического всплывающего меню может перекрывать
последний символ команды.
ACTIVATE POPUP
| ACTIVATE MENU
Для разъединения всплывающего меню или линейки меню и команды
меню, используйте ON BAR OF без опции ACTIVATE
POPUP или ACTIVATE MENU .
Следующий пример демонстрирует систему иерархических всплывающих
меню. Линейка меню с именем DINNER создается с двумя пунктами меню.
Каждый пункт имеет соответствующую команду ON PAD, которая
активизирует всплывающее меню MAINCOURSE или DESSERT. Всплывающие меню
MAINCOURSE и DESSERT имеют дополнительные всплывающие меню (BURGER,
PIZZA и PIE), назначенные некоторым из их команд с помощью трех команд
ON BAR. Команды OLIVE и PIE имеют дополнительные всплывающие меню,
назначенные им другими двумя командами ON BAR.
Когда произведен выбор, команда ON SELECTION POPUP ALL выполняет
подпрограмму (PROCEDURE ORDER), которая активизирует окно и показывает
выбор. Выбор определяется с помощью функций POPUP() и PROMPT(),
которые возвращают имя всплывающего меню и содержание приглашения
команды всплывающего меню.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
DEFINE WINDOW order FROM 10,0 TO 13,39
DEFINE MENU dinner
DEFINE PAD one OF dinner PROMPT '\]
Смотри также
ERROR()
Описание
Команда ON ERROR устанавливает прерывание по ошибке в процессе
выполнения программы. Когда возникает ошибка, инициируется прерывание
и выполняется заданная команда. Процедура ON ERROR может быть
остановлена, если ON ERROR используется без команды.
Если команда включает в себя DO , вы можете в
качестве параметров включить функции ERROR(), MESSAGE(), LINENO()
и/или PROGRAM(). Подпрограмма ERROR может использоваться для
определения причины ошибки, для выдачи сообщения об ошибке и номера
строки и имени программы, в которой произошла ошибка. Это полезно при
отладке программы.
После завершения выполнения подпрограммы ERROR, выполнение
программы возобновляется со строки, которая непосредственно следует за
строкой, которая вызвала ошибку. Однако, команда является DO
и выход из программы осуществлен через оператор
RETRY, то выполнение программы продолжается с той же строки, в которой
произошла ошибка.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
ON ERROR DO errhand WITH ;
ERROR(), MESSAGE(), MESSAGE(1), PROGRAM(), LINENO()
*** Следующая строка должна вызвать ошибку ***
USE nodatabase
PROCEDURE errhand
PARAMETER merror, mess, mess1, mprog, mlineno
? 'Error number: ' + LTRIM(STR(merror))
? 'Error message: ' + mess
? 'Line of code with error: ' + mess1
? 'Line number of error: ' + LTRIM(STR(mlineno))
? 'Program with error: ' + mprog
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є ON ESCAPE є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Осуществляет прерывание при нажатии клавиши Escape
Синтаксис
ON ESCAPE []
Смотри также
INKEY()
Описание
Команда ON ESCAPE устанавливает прерывание для нажатой клавиши
Escape. Когда нажимается клавиша Escape, инициируется прерывание и
выполняется соответствующая команда.
Команда ON ESCAPE будет действовать до тех пор, пока не
встретиться другая команда ON ESCAPE. Новая подпрограмма ON ESCAPE
перекрывает действие предыдущей. Команда ON ESCAPE может быть
остановлена, с помощью команды ON ESCAPE, не использующей .
После завершения выполнения подпрограммы ON ESCAPE программа
продолжает выполняться с той строки, которая непосредственно следует
за строкой, в которой произошел переход ON ESCAPE. Однако, если
команда является DO , и выход из программы
осуществлен через оператор RETRY, то выполнение программы
продолжается с той же строки, в которой произошел переход.
Если обе подпрограммы ON ESCAPE и ON KEY определены и нажата
клавиша Escape, то выполняется команда ON ESCAPE, т.к. она имеет более
высокий приоритет.
Важно!!!
Команда ON ESCAPE не будет выполняться, если команда SET ESCAPE
установлена в OFF.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
SET ESCAPE ON
SET TALK OFF
USE customer
CLEAR
SET DEVICE TO PRINTER
ON ESCAPE DO stop
STORE .T. TO mprint
DO WHILE NOT EOF() AND mprint
@ PROW() + 1,10 SAY 'Company: ' + company
@ PROW() + 1,10 SAY 'Address: ' + address1
@ PROW() + 1,1 SAY ' '
SKIP
ENDDO
SET DEVICE TO SCREEN
PROCEDURE stop
SET DEVICE TO SCREEN
STORE ' ' TO mcheck
@ 10,10 SAY 'Cancel Printing (Y/N) ? ' GET mcheck ;
PICTURE '!' VALID mcheck $ 'YN'
READ
@ 10,10 TO 10,79 CLEAR
IF mcheck = 'N'
SET DEVICE TO PRINTER
RETRY
ENDIF
EJECT
STORE .F. TO mprint
RETURN
В этом примере будут распечатываться записи базы данных CUSTOMER
до тех пор, пока не будет нажата клавиша Escape. Если нажимается
клавиши Escape, то начинает выполняться процедура STOP. Эта процедура
дважды проверяет, уверены ли вы в том, что хотите отменить процесс
вывода на печать, и если это так, то происходит выход из программы
печати.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є ON KEY є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Осуществляет прерывание выполнения программы при нажатии клавиши
Синтаксис
ON KEY []
Смотри также
INKEY()
Описание
Команда ON KEY устанавливает прерывание при нажатии клавиши. Если
будет нажата любая клавиша, то инициируется прерывание и выполняется
команда .
В один и тот же момент времени может работать только одна
подпрограмма ON KEY. Если выполняется множество подпрограмм ON KEY, то
эффективно работает самая последняя запущенная подпрограмма. Если в
рабочем состоянии находятся подпрограммы ON ESCAPE и ON KEY, и команда
ESCAPE установлена в ON , то нажатие клавиши Escape инициирует
подпрограмму ON ESCAPE а не ON KEY. Если команда ESCAPE установлена в
OFF и нажата клавиша Escape, то будет выполнена команда ON KEY.
После завершения выполнения подпрограммы ON KEY программа
продолжает выполняться с той строки, которая непосредственно следуют
за строкой, в которой произошел переход. Однако, если
является DO , и выход из файла осуществлен через оператор
RETRY, то выполнение программы продолжается с той же строки, в которой
произошел переход.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
SET TALK OFF
USE customer
CLEAR
ON KEY DO v_wait
DO WHILE NOT EOF()
? 'Company: ' + company
? 'Address: ' + address1
?
SKIP
ENDDO
PROCEDURE v_wait
STORE INKEY() TO HOLD
WAIT
RETURN
В этом примере на экране отображаются записи из базы данных
CUSTOMER. Если нажата любая клавиша, инициируется прерывание по
команде ON KEY и вызывается процедура V_WAIT, которая приостанавливает
выполнение программы с помощью команды WAIT.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є ON KEY = є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Осуществляет прерывание при нажатии клавиши в процессе чтения
Синтаксис
ON KEY [ = ] []
Замечания
Включена для совместимости с ранними версиями - Используйте команду
ON KEY LABEL
Смотри также
INKEY(), ON KEY LABEL
Описание
Команда ON KEY = устанавливает прерывание в процессе чтения при
определенной нажатой клавише. Когда нажата определенная клавиша,
инициируется прерывание, и выполняется команда . Нажатие
определенной клавиши не в процессе чтения не даст никакого эффекта.
Только одна подпрограмма ON KEY может работать в данный промежуток
времени. Если выполняется множество подпрограмм ON KEY, то эффективно
работает самая последняя запущенная подпрограмма.
Дополнительные опции
Клавиша представляет собой символ, который можно напечатать,
обозначенный с помощью символьного кода ASCII для значения .
Список символов и их кодов ASCII вы можете посмотреть в "Руководстве
разработчика" (Developer's Guide) по системе FoxPro или в таблице
ASCII кодов в системном меню.
Команда, выполняемая при нажатии заданной клавиши.
Использование команды ON KEY
Функциональные клавиши, клавиши управления, клавиши управления
курсором и комбинации клавиш могут быть обозначены с помощью
определенного "сканирующего кода" IBM плюс 256 в . Смотрите
таблицу кодов клавиш для значений непечатаемых символов и комбинаций
клавиш.
---------------------------------------------------
Код клавиши Соответствующие клавиши
---------------------------------------------------
272-281 Alt+Q,W,E,R,T,Y,U,I,O,P
286-294 Alt+A,S,D,F,G,H,J,K,L
300-306 Alt+Z,X,C,V,B,N.M
---------------------------------------------------
315-324 F1 - F10 Функциональные
клавиши
327 HOME
328 Стрелка вверх
---------------------------------------------------
329 PgUp
331 Стрелка влево
333 Стрелка вправо
---------------------------------------------------
335 End
336 Стрелка вниз
337 PgDn
---------------------------------------------------
338 Ins
339 Del
340-349 Shift+F1 - Shift+F10
---------------------------------------------------
350-359 Ctrl+F1 - Ctrl+F10
360-369 Alt+F1 - Alt+F10
370 Ctrl+Print+Scrn
---------------------------------------------------
371 Ctrl+Стрелка влево
372 Ctrl+Стрелка вправо
373 Ctrl+End
---------------------------------------------------
374 Ctrl+PgDn
375 Ctrl+Home
376-387 Alt+1,2,3,4,5,6,7,8,9,0,-,=
388 Ctrl+PgUp
---------------------------------------------------
Формат ON KEY = позволяет вам обозначить клавишу как
"горячую клавишу". Это позволяет вам реализовать контекстно-зависимую
подсказку, например переопределив клавишу F1. Функции PROGRAM() и
VARREAD() могут быть использованы для возврата активной процедуры и
имени поля, которое было введено при нажатии "горячей" клавиши.
Здесь приведены несколько дополнительных советов по использованию
команды ON KEY = для создания контекстно - зависимой подсказки.
* Подпрограмма подсказки не должна использовать команды @ ... GET
или CLEAR GETS. При попытке их использования появится сообщение:
"A READ is currently in effect".
* Для упрощения работы подпрограммы подсказки используйте при
входе команду SAVE SCREEN, а при выходе команду RESTORE SCREEN.
Это позволит вам избежать необходимости переписывать область
экрана, используемую в подсказке.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
ON KEY = 315 DO ScrnHelp WITH VARREAD()
SET TALK OFF
USE Customer
SCATTER TO temp
DEFINE WINDOW input FROM 6,10 TO 18,70 PANEL
ACTIVATE WINDOW input
@ 1,3 SAY 'Customer: ' GET company
@ 3,3 SAY 'Address: ' GET address1
@ 5,3 SAY 'City: ' GET city
@ 7,3 SAY 'State: ' GET state
@ 7,18 SAY 'Zip: ' GET zip
@ 9,08 SAY 'Press to cancel or for help'
READ
IF LASTKEY () = 27
GATHER FROM temp
ENDIF
DEACTIVATE WINDOW menter
PROCEDURE ScrmHelp
PARAMETERS fvieldname
DEFINE WINDOW help_me FROM 22,00 TO 24,79
ACTIVATE WINDOW help_me
@ 00,20 SAY 'Sorry, no help available for' + fieldname
WAIT
RELEASE WINDOW help_me
RETURN
В этом примере отображается входное окно и становятся доступными
для редактирования записи базы данных CUSTOMER. Если нажата клавиша
F1, то имя текущего поля передается процедуре SCRNHELP и в маленьком
окне внизу экрана появится сообщение.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є ON KEY LABEL є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Осуществляет прерывание по нажатию специальных клавиш
Синтаксис
ON KEY [LABEL ] []
Смотри также
INKEY(), ON(), POP KEY, PUSH KEY
Описание
Команда ON KEY LABEL устанавливает прерывание по нажатию
специальных клавиш или по щелчку мыши. Если нажата любая из
специальных клавиш, или выполнен щелчок мыши, то инициируется
прерывание и выполняется команда .
В отличие от команды ON KEY, могут работать одновременно несколько
ON KEY LABEL. Например, вы можете для каждой из клавиш стрелок и обеих
клавиш мыши иметь свою подпрограмму ON KEY LABEL.
Дополнительные опции
LABEL
Метка клавиши представляет собой букву или цифру на
самой клавише или специальное имя, присвоенное клавише. Смотрите
таблицу специальных имен меток клавиш, приведенную ниже.
Команда, выполняемая при нажатии заданной клавиши.
Важно!!!
Если является DO , первая строка программы
после всех утверждений с параметрами должна заблокировать
установки ON KEY. Последняя строка программы должна
восстановить установки ON KEY перед возвратом в вызвавшую программу.
Это предохраняет от рекурсивного вызова процедур ON KEY.
---------------------------------------------------------------
Обозначение клавиш <Имена клавиш>
---------------------------------------------------------------
<- LEFTARROW
RIGHTARROW
UPARROW
DNARROW
---------------------------------------------------------------
Home HOME
End END
PgUp PGUP
PgDn PGDN
---------------------------------------------------------------
Del DEL
Backspace BACKSPACE
Пробел SPACEBAR
Ins INS
---------------------------------------------------------------
Tab TAB
Shift Tab BACKTAB
Enter ENTER
F1 - F12 F1,F2,F3...
---------------------------------------------------------------
Ctrl+F1 - Ctrl+F12 Ctrl+F1 , Ctrl+F2...
Shift+F1 - Shift+F12 Shift+F1 , Shift+F2...
Alt+F1 - Alt+F12 Alt+F1, Alt+F2...
Alt+0 - Alt+9 Alt+0, Alt+1, Alt+2...
---------------------------------------------------------------
Alt+A - Alt+Z Alt+A, Alt+B, Alt+C...
Ctrl+<- Ctrl+LEFTARROW
Ctrl+ Ctrl+RIGHTARROW
Ctrl+Home Ctrl+HOME
---------------------------------------------------------------
Ctrl+End Ctrl+END
Ctrl+PgUp Ctrl+PGUP
Ctrl+PgDn Ctrl+PGDN
Ctrl+A - Ctrl+ Z Ctrl+A, Ctrl+B, Ctrl+C...
---------------------------------------------------------------
Правая клавиша мыши RIGHTMOUSE
Левая клавиша мыши LEFTMOUSE
Мышь MOUSE
Escape ESC
---------------------------------------------------------------
Команда ON KEY при нажатии заданной клавиши немедленно прерывает
работу команд BROWSE, EDIT, CHANGE, определенных пользователем меню и
всплывающих меню. Также прерывание по нажатию заданной клавиши
происходит при переходе от одной команды к другой. После завершения
выполнения подпрограммы ON KEY LABEL программа продолжает выполняться
с той строки, которая непосредственно следует за строкой, в которой
произошел переход. Однако, если команда является DO
, и выход из программы осуществлен через оператор
RETRY, то выполнение программы продолжается с той же строки, в которой
произошел переход.
Если активна команда READ, и выполняется процедура ON KEY LABEL,
вы возвращаетесь в READ.
Назначения клавиш командой ON KEY LABEL остаются в рабочем
состоянии после выхода из программы, и вы можете использовать
утверждение ON KEY LABEL в Командном окне.
Например, вы можете переопределить клавишу "A" в "B", используя
команду ON KEY LABEL A KEYBOARD "B" в Командном окне или программе.
Нажатие клавиши "A" будет возвращать букву "B". Серией команд ON KEY
LABEL вы можете переназначить клавиши для эмуляции клавиатуры Dvorak.
Назначения клавиш с помощью ON KEY LABEL действуют не во всех
областях интерактивной среды FoxPro. Исключения составляют линейка
Системного меню, диалоги, предупреждения, Системные всплывающие меню и
т. д. Назначения клавиш с помощью ON KEY LABEL действуют в Системных
окнах - текстовом редакторе FoxPro, Командном окне, Окне трассировки и
т. д.
Если вы используете определенные функциональные клавиши или
клавиши макроподстановок в процедуре ON KEY LABEL, функции или
макроопределения имеют приоритет в командах, ожидающих ввода с
клавиатуры (READ, BROWSE, EDIT и т. д.). Вы должны сначала очистить
функциональные клавиши или клавиши макроподстановок, выполняющие вашу
процедуру ON KEY LABEL, в этих командах. Функциональные клавиши могут
быть очищены с помощью команды SET FUNCTION <Имя функциональной
клавиши> TO. Клавиши макроподстановок могут быть очищены с помощью
команды Macros... (Макросы...) в меню System (Система).
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
SET TALK OFF
CLEAR
ON KEY LABEL RIGHTARROW ? 'Right Arrow'
ON KEY LABEL LEFTARROW ? 'Left Arrow'
ON KEY LABEL UPARROW ? 'Up Arrow'
ON KEY LABEL DNARROW ? 'Down Arrow'
SET ESCAPE ON
STORE .F. TO mexit
ON ESCAPE STORE .T. TO mexit
STORE 0 TO TEMP
@ 0,0 SAY 'Press an arrow key to test ON KEY LABEL, to exit'
DEFINE WINDOW menter FROM 10,20 TO 14,60 DOUBLE
ACTIVATE WINDOW menter
DO WHILE NOT mexit
ENDDO
DEACTIVATE WINDOW menter
ON KEY
Этот пример будет выводить соответствующее сообщение при нажатии
одной из клавиш стрелок.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є ON PAD є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Активизирует всплывающее меню или линейку меню, когда выбран
соответствующий пункт линейки меню
Синтаксис
ON PAD OF
[ACTIVATE POPUP
| ACTIVATE MENU ]
Замечания
Усилена в FoxPro 2.0: Опция ACTIVATE MENU
Смотри также
ACTIVATE MENU, DEFINE MENU
Описание
Когда из линейки меню выбирается пункт меню, могут возникать
следующие случаи - всплывающее меню может быть показано и
активизировано, другая линейка меню может быть показана и
активизирована, или может быть выполнена процедура. Команда ON PAD
показывает и активизирует другое всплывающее меню или линейку меню,
когда выбирается пункт меню. Для выполнения процедуры при выборе
пункта меню, вы должны использовать команду ON SELECTION PAD или ON
SELECTION MENU.
Дополнительные опции
OF
Каждый пункт меню в линейке меню может иметь назначенное ему
всплывающее меню или другую линейку меню. Задайте имя пункта меню и имя линейки меню , содержащей пункт меню.
ACTIVATE POPUP
| ACTIVATE MENU
Будет представлено и активизировано всплывающее меню
или линейка меню . Для разъединения всплывающего меню или
линейки меню и команды меню, используйте ON PAD OF без опции ACTIVATE POPUP или ACTIVATE MENU .
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
В следующем примере создается линейка меню с именем MAINMENU.
Определены два пункта меню с именами INVOICES и CUSTOMERS, которые
размещены в линейке меню с именем MAINMENU.
С помощью последовательности команд DEFINE POPUP и DEFINE BAR
создаются всплывающие меню с именами INVPOP и CUSTPOP. Если выбран
пункт INVOICES, то первая команда ON PAD активизирует всплывающее меню
с именем INVPOP. Если выбран пункт CUSTOMERS, то следующая команда ON
PAD активизирует всплывающее меню с именем CUSTPOP. Команда ON
SELECTION POPUP вызывает процедуру TMENU, когда выбирается команда из
всплывающего меню.
Процедура TMENU показывает имя всплывающего меню и команду,
выбранную из этого всплывающего меню. Функция POPUP() возвращает имя
активного всплывающего меню, а функция PROMPT() возвращает текст
приглашения для выбора команды.
CLEAR
DEFINE MENU mainmenu
DEFINE PAD invoices OF mainmenu PROMPT ' \ ]
Смотри также
EJECT PAGE
Описание
Команда ON PAGE выполняет команду, программу или процедуру при
достижении в отчете определенного номера строки, или когда появляется
команда EJECT PAGE. Команда ON PAGE позволяет вам определить
подпрограмму для управления разделением страниц, формированием
заголовков и нижних колонтитулов.
Дополнительные опции
AT LINE
Системная переменная _PLINENO сохраняет значение текущего номера
строки в отчете. Если значение переменной _PLINENO становится больше,
чем номер строки, определенный в команде ON PAGE опцией AT LINE
, то выполняется команда . Численное выражение
может быть любым допустимым номером строки, а может быть
командой, программой или процедурой. Подпрограмма ON PAGE может быть
также запущена путем выполнения команды EJECT PAGE. Для получения
более полной информации смотрите описание команды EJECT PAGE.
Выполнение команды ON PAGE без включения AT LINE убирает
предыдущую процедуру ON PAGE.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є ON READERROR є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Выполняет подпрограммы обработки ошибки ввода
Синтаксис
ON READERROR
Смотри также
@ ... SAY/GET, READ
Описание
Команда READERROR выполняет команду, программу или процедуру при
возникновении ошибки ввода. Команда READERROR может также
использоваться для приглашения к вводу или для выдачи сообщения
подсказки. Ошибки, приводящие к прерыванию по команде ON READERROR
включают:
* неверные данные
* входные данные, выходящие за рамки утверждения RANGE
* входные данные, не удовлетворяющие условиям опции VALID
При прерывании по ошибке ввода выполняется команда в ON
READERROR. Для того, чтобы убрать предыдущую процедуру ON READERROR,
используйте команду ON READERROR без .
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
SET STATUS OFF
SET TALK OFF
USE customer
ON READERROR DO errhand
@ 10,13 SAY 'Company: ' GET company
@ 12,13 SAY 'Address: ' GET address1
@ 14,13 SAY 'Tax Rate: '
@ 14,23 GET taxrate PICTURE '9.99' RANGE 3,8
READ
PROCEDURE errhand
WAIT 'Error, Please reenter'
RETURN
В этом примере в случае возникновения ошибки в процессе чтения
будет выполняться процедура ERRHAND.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є ON SELECTION BAR є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Назначает процедуру команде всплывающего меню
Синтаксис
ON SELECTION BAR OF []
Замечания
Новая в FoxPro 2.0
Смотри также
ACTIVATE MENU, DEFINE MENU, DEFINE BAR, DEFINE POPUP, ON BAR, ON
SELECTION POPUP
Описание
Команда ON SELECTION BAR позволяет вам назначить процедуру команде
всплывающего меню. Когда вы выберете команду из всплывающего меню,
будет выполняться процедура. Процедура может быть командой или
программой. Команда ON SELECTION BAR должна располагаться между
командами DEFINE POPUP и ACTIVATE POPUP.
Дополнительные опции
OF []
Используйте номер строки команды и имя всплывающего меню,
чтобы выполнить команду для заданной команды всплывающего
меню. Чтобы отключить процедуру, назначенную команде всплывающего
меню, используйте команду ON SELECTION BAR OF без
опции .
Процедура может быть назначена всем командам всплывающего меню
командой ON SELECTION POPUP; линейки меню и всплывающие меню могут
быть назначены отдельным командам меню с помощью команды ON BAR для
создания иерархического всплывающего меню.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є ON SELECTION MENU є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Назначает процедуру линейке меню
Синтаксис
ON SELECTION MENU | ALL []
Замечания
Новая в FoxPro 2.0
Смотри также
ACTIVATE MENU, DEFINE MENU
Описание
Команда ON SELECTION MENU позволяет вам назначить процедуру
линейке меню. Когда вы выберете любой пункт из линейки меню, будет
выполняться процедура. Процедура может быть командой или программой.
Команда ON SELECTION MENU должна располагаться между командами DEFINE
MENU и ACTIVATE MENU.
Дополнительные опции
Используйте имя меню для выполнения команды
для заданной линейки меню.
ALL
Используйте ключевое слово ALL для выполнения команды
для каждой активной линейки меню.
Команда, выполняемая при выборе в меню. Команда ON SELECTION MENU
без опции отключает процедуру, назначенную
заданной линейке меню. Команда ON SELECTION MENU ALL без опции
отключает процедуру, назначенную всем линейкам меню.
Процедуры могут быть назначены отдельным пунктам меню командами ON
SELECTION PAD; линейки меню и всплывающие меню могут быть назначены
отдельным пунктам линейки меню с помощью команд ON PAD.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
В следующем примере программы определяется линейка меню,
содержащая четыре пункта меню. Когда выбирается какой-либо из пунктов
меню, команда ON SELECTION MENU выполняет процедуру TMENU. Процедура
TMENU использует функции MENU() и PAD() для представления имени меню и
выбранного пункта меню.
CLEAR
DEFINE MENU mainmenu
DEFINE PAD invoices OF mainmenu PROMPT ' \ OF []
Смотри также
DEFINE MENU
Описание
Команда ON SELECTION PAD позволяет вам назначить процедуру пункту
линейки меню. Когда вы выберете пункт из линейки меню, будет
выполняться процедура. Процедура может быть командой или программой.
Команда ON SELECTION PAD должна располагаться между командами DEFINE
MENU и ACTIVATE MENU.
Процедура может быть назначена всем пунктам линейки меню командой
ON SELECTION MENU; линейки меню и всплывающие меню могут быть
назначены отдельным командам меню с помощью команды ON PAD.
Дополнительные опции
OF []
Используйте имя меню и имя пункта меню ,
чтобы выполнить команду для заданного пункта линейки меню.
Чтобы отключить процедуру, назначенную пункту линейки меню,
используйте команду ON SELECTION PAD OF без
опции .
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є ON SELECTION POPUP є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Назначает процедуру всплывающему меню
Синтаксис
ON SELECTION POPUP | ALL []
Смотри также
ACTIVATE POPUP
Описание
Команда ON SELECTION POPUP позволяет вам назначить процедуру
всплывающему меню. Когда вы выберете любую команду из всплывающего
меню, будет выполняться процедура. Процедура может быть командой или
программой. Команда ON SELECTION POPUP должна располагаться между
командами DEFINE POPUP и ACTIVATE POPUP.
Процедуры могут быть назначены отдельным командам всплывающего
меню командами ON SELECTION BAR; линейки меню и всплывающие меню могут
быть назначены отдельным командам всплывающего меню с помощью команд
ON BAR.
Чтобы отключить процедуру, используйте команду ON SELECTION POPUP
без опции .
Дополнительные опции
Используйте имя всплывающего меню для назначения ему
процедуры.
ALL
Используйте ключевое слово ALL для назначения процедуры для
каждого активного всплывающего меню.
Команда, выполняемая при выборе любой команды в заданном
всплывающем меню. Команда ON SELECTION POPUP без опции
отключает процедуры.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Следующий пример программы, называющейся SYSTIME.PRG, располагает
пункт Time&Date (Время&Дата) в линейке Системного меню. Время, дата и
день недели могут быть включены и выключены с помощью всплывающего
меню Time&Date (Время&Дата).
Команда ON SELECTION POPUP используется в этом примере для
выполнения процедуры TOGGLE. Когда выбирается какая-нибудь команда из
всплывающего меню TIMEPOP, выполняется процедура TOGGLE; функция BAR()
передает номер выбранной строки в процедуру.
Команда SET MARK и функция MRKBAR() располагают или удаляют символ
пометки слева от каждой команды и определяют, имеет ли команда символ
пометки.
*** Программа называется systime.prg ***
SET TALK OFF
SET CLOCK OFF
DEFINE BAR 1 BEFORE _MST_FILER OF _MSYSTEM ;
PROMPT '\ [, ])
Возвращаемый тип
Символьный
Смотри также
INKEY(), LASTKEY(), ON ERROR, ON ESCAPE, ON KEY, ON KEY LABEL, ON
PAGE, ON READERROR, READKEY()
Описание
Команда может быть назначена каждой из этих команд обработки
ситуаций:
ON ERROR
ON ESCAPE
ON KEY
ON KEY LABEL
ON PAGE
ON READERROR
Когда возникает ситуация, которая вызывает прерывание командой
обработки ситуации, выполняется команда, назначенная команде обработке
ситуации. Функция ON() возвращает команду, назначенную команде
обработки ситуации. Если в данный момент нет команды, назначенной
команде обработки ситуации, возвращается пустая строка.
Дополнительные опции
Символьное выражение используется для задания одной из
команд обработки ситуаций.
Ниже приведены команды и соответствующие им символьные выражения
:
Команда
ДДДДДДДДДДДД ДДДДДДДДД
ON ERROR ERROR
ON ESCAPE ESCAPE
ON KEY KEY
ON KEY LABEL KEY
ON PAGE PAGE
ON READERROR READERROR
Например, для того, чтобы возвратить команду, назначенную команде
ON ERROR, вы можете использовать
? ON('ERROR')
Второе символьное выражение используется для того, чтобы
возвратить команду, заданную клавише или комбинации клавиш в команде
ON KEY LABEL. Включите в имя метки клавиши или комбинации
клавиш. Полный список имен меток клавиш приведен в описании команды ON
KEY LABEL в этом руководстве.
Например, для того, чтобы возвратить команду, назначенную
функциональной клавише F7, вы можете использовать
? ON('KEY', 'F7')
Использование команды ON KEY LABEL сбрасывает ON('KEY') -
ON('KEY') возвращает пустую строку после появления команды ON KEY
LABEL. Использование команды ON KEY сбрасывает ON('KEY',) -
ON('KEY'я4, я0) возвращает пустую строку после появления команды ON
KEY.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Примеры є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
ON ERROR DO errorhand
ON KEY LABEL CTRL+F2 WAIT WINDOW 'You pressed ^F2'
ON KEY LABEL ALT+Z DO organize
? ON('ERROR')
? ON('KEY', 'CTRL+F2')
? ON('KEY', 'ALT+Z')
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є ORDER є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Возвращает имя главного индексного файла или главного тега
Синтаксис
ORDER([ | [, ]])
Возвращаемый тип
Символьный
Замечания
Усилена в FoxPro 2.0: Поддержка составных индексов
Смотри также
INDEX, SET INDEX, SET ORDER, USE
Описание
База данных может иметь одновременно несколько разных открытых
индексных файлов. Однако, только один индексный файл .IDX (главный
индексный файл) или тег составного индексного файла .CDX (главный тег)
определяют порядок представления и доступа для базы данных.
Определенные команды (например, SEEK) используют главный индексный
файл или главный тег для поиска записи. Эта функция возвращает имя
главного индексного файла или главного тега.
Обе команды USE и SET INDEX поддерживают список индексных файлов,
которые открыты для базы данных. Главный индексный файл или главный
тег может быть указан в этом списке индексных файлов. Команда SET
ORDER также может быть использована для указания главного индекса или
главного тега.
Параметры
|
Функция ORDER() возвращает имя главного индексного файла или
главного тега для базы данных в текущей рабочей области.
Вы можете получить имя главного индексного файла или главного тега
в другой рабочей области, задав номер рабочей области или
псевдоним базы данных .
Если нет базы данных с заданным псевдонимом, выдается сообщение
"Alias not found" ("Псевдоним не найден").
Если база данных имеет главный индексный файл или тег, и был задан
необязательный численный аргумент , возвратится имя главного
файла .IDX или файла .CDX, содержащего главный тег. Имя устройства и
директории возвращается вместе с именем .IDX и .CDX файла. Численное
выражение может иметь любое значение.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Примеры є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
CLOSE ALL
SELECT 0
USE items
SELECT 0
USE customer ORDER cust_id
? ORDER()
CUST_ID
? ORDER('customer', 1)
C:\FOXPRO2\CUSTOMER.CDX
SET ORDER TO company
WAIT WINDOW 'Master index: ' + ORDER() NOWAIT
? ORDER('items') && возвращается пустая строка
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є OS є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Возвращает название и номер версии операционной системы, в которой
работает FoxPro
Синтаксис
OS()
Возвращаемый тип
Символьный
Смотри также
DISKSPACE(), GETENV(), VERSION()
Описание
Функция OS() возвращает название и номер версии операционной
системы, в которой работает FoxPro
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
? OS()
DOS 03.31
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є PACK є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Физически удаляет записи, помеченные для удаления, в файле базы данных
и уменьшает размер memo файла
Синтаксис
PACK [MEMO] [DBF]
Замечания
Усилена в FoxPro 2.0: Уменьшает размер memo файла; может быть прервана
нажатием клавиши Escape; опции MEMO и DBF
Смотри также
DELETE, DELETED(), RECALL
Описание
Команда PACK непрерывно удаляет все записи, помеченные для
удаления, из текущей базы данных. Она также может использоваться для
уменьшения размера memo файла, связанного с базой данных.
Команда PACK удаляет записи, помеченные для удаления, из текущей
базы данных. Записи могут быть помечены для удаления с помощью команды
DELETE, команды Delete... (Удалить...) во всплывающем меню Record
(Запись) и из окна Browse. При появлении этой команды без опций DBF и
MEMO одновременно упаковываются и база данных, и memo файл.
Внимание!!!
После работы команды PACK удаленные записи восстановить нельзя.
Эти записи удалены навсегда.
Когда появляется команда PACK, все записи, не помеченные для
удаления, копируются во временный файл базы данных. Когда завершается
действие команды PACK, исходная база данных удаляется с диска, а
временная база данных переименовывается, используя имя исходной базы
данных. Команда PACK может быть прервана нажатием клавиши Escape.
Нажатие клавиши Escape останавливает работу PACK, временная база
данных удаляется, а исходная база данных остается неизменной. Если вы
выходите за имеющееся пространство на диске при работе команды PACK,
исходная база данных восстанавливается.
Если в текущей выбранной базе данных имеется один или более
разрешенных индексов, команда PACK перестраивать индексные файлы.
Дополнительные опции
MEMO
Если база данных имеет memo поле или поля, она имеет
соответствующий memo файл. Информация в memo полях сохраняется в memo
файле. Memo файл имеет то же имя, что и база данных, и расширение
.FPT.
Используйте опцию MEMO для упаковки memo файла без упаковки файла
базы данных. Команда PACK MEMO удаляет неиспользованное пространство в
memo файле. PACK MEMO упаковывает memo файл для текущей базы данных.
Появление PACK MEMO удаляет неиспользуемое пространство в memo файле,
но не удаляет записи, помеченные для удаления, из базы данных.
DBF
Если вы используете опцию DBF, база данных будет упаковываться без
упаковки memo файла.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є PAD є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Возвращает в виде символьной строки имя пункта меню, который был
последним выбран из линейки меню
Синтаксис
PAD()
Возвращаемый тип
Символьный
Смотри также
ACTIVATE MENU, BAR(), DEFINE PAD, DEFINE MENU, MENU(), ON PAD, ON
SELECTION PAD, PROMPT()
Описание
Функция PAD() возвращает в виде символьной строки в верхнем
регистре имя пункта меню, который был последним выбран из активной
линейки меню.
Меню должно быть описано и активизировано для того, чтобы функция
PAD() возвратила имя пункта меню. Меню описывается и активизируется с
помощью команд DEFINE MENU и ACTIVATE MENU. Если меню не является
активным, или функция PAD() была выдана из Командного окна, функция
PAD() возвращает пустую строку.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
CLEAR
DEFINE MENU mainmenu
DEFINE PAD invoices OF mainmenu PROMPT ' \, [, ])
PADR(, [, ])
PADC(, [, ])
Параметры
Заполняемое выражение
Длина выражения после его заполнения
Символы, используемые для заполнения
Возвращаемый тип
Символьный
Смотри также
ALLTRIM(), LEFT(), LTRIM(), RIGHT(), STUFF(), TRIM()
Описание
Эти функции возвращают в виде символьной строки заданное
выражение, заполненное до длины . Вы можете использовать
символьное выражение для заполнения данного выражения.
Функция PADL() заполняет выражение слева, PADR() - справа, RADC()
заполняет выражение с обеих сторон.
Параметры
Выражение будет заполняться. Это выражение может быть
символьным, численным выражением или выражением с датой.
Параметр задает длину выражения после его заполнения.
Параметр используется для заполнения. Если опущен,
для заполнения используются пробелы (ASC(32)). Если параметр
используется, то повторяется необходимое число раз для
заполнения выражения до длины символов.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Примеры є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
STORE 'TITLE' TO string
? PADL(string, 40, 'Н')
НННННННННННННННННННННННННННННННННННTITLE
? PADR(string, 40, 'Н')
TITLEННННННННННННННННННННННННННННННННННН
? PADC(string, 40, 'Н')
ННННННННННННННННННTITLEННННННННННННННННН
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є PARAMETERS є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Определяет переменные в памяти как параметры
Синтаксис
PARAMETERS
Замечания
Усилена в FoxPro 2.0: Массивы передаются по ссылке
Смотри также
DO, PARAMETERS(), SET UDFPARMS
Описание
Команда PARAMETERS позволяет ставить в соответствие данным,
передаваемым из вызывающих программ, локальные переменные в памяти или
массивы.
Переменные и массивы передаются в программы по ссылке. Если
значение изменяется в вызванной программе, то в вызывающую программу
возвращается новое значение. Если вы хотите передать переменную или
массив по значению, заключите переменную или массив в круглые скобки.
Любые изменения, произведенные над параметром, не передаются назад в
вызывающую программу. Переменные и массивы передаются по значению в
функции, определенные пользователем (UDF). Установка команды SET
UDFPARMS в REFERENCE позволяет передавать переменные и массивы в UDF
по ссылке.
Параметры внутри списка параметров должны быть
корректными именами переменных в памяти или массивов. Если значение
переменной или элемента массива изменяется в вызванной программе,
новое значение передается назад в вызывающую программу.
Параметры, содержащиеся в списке параметров ,
разделяются запятыми. Если в списке параметров оператора PARAMETERS
перечислено больше переменных или массивов, чем передано вызывающей
программой, то оставшиеся переменные или массивы инициализируются в
значение "ложно" (.F.).
Функция PARAMETERS() возвращает число параметров, которые были
переданы последний раз процедуре.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
ON ERROR DO errhand WITH ERROR(), MESSAGE(), ;
MESSAGE(1),PROGRAM(),LINENO()
USE nodatabase
PROCEDURE errhand
PARAMETER merror, mess, mess1, mprog, mlineno
? 'Error number: ' + LTRIM(STR(merror))
? 'Error message: ' + mess
? 'Line of code with error: ' + mess1
? 'Line number of error: '+ LTRIM(STR(mlineno))
? 'Program with error: ' + mprog
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є PARAMETERS() є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Возвращает число параметров, которые были переданы программе,
вызванной последней
Синтаксис
PARAMETERS()
Возвращаемый тип
Численный
Смотри также
DO, FUNCTION, PARAMETERS, PROCEDURE, SET UDFPARMS, UDFs
Описание
Функция PARAMETERS() возвращает численное значение, указывающее
число параметров, которые были переданы программе, вызванной
последней. Эта функция полезна в ситуациях, когда передается
переменное число параметров.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
SET TALK OFF
val1 = 10
val2 = 20
val3 = 30
val4 = 15
m_min = getavg(val1, val2, val3, val4)
? 'Average value is '
?? m_min
* Эта функция, определенная пользователем, позволяет передавать
* до 9 параметров. Она использует функцию PARAMETER() для определения
* того, сколько параметров передается, и возвращает значение среднего.
FUNCTION getavg
PARAMETER para1,para2,para3,para4,para5,para6,para7,para8,para9
IF PARAMETERS() = 0
RETURN 0
ENDIF
mresult = 0
FOR mcount = 1 to PARAMETERS()
mcompare = 'para' +(STR(mcount,1))
mresult = mresult + EVAL(mcompare)
ENDFOR
mresult = mresult / (mcount - 1)
RETURN mresult
При выполнении этой программы возвратится:
Average value is 18.75
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є PAYMENT є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Возвращает величину каждой выплаты по заему
Синтаксис
PAYMENT(, , )
Параметры
Начальная величина заема
Фиксированная периодическая процентная ставка
Общее число платежей
Возвращаемый тип
Численный
Смотри также
CALCULATE, FV(), PV()
Описание
Эта финансовая функция возвращает величину каждой выплаты по
заему. Функция PAYMENT() подразумевает неизменную периодическую
процентную ставку и то, что выплаты производятся в конце каждого
периода.
Параметры
Параметр является начальной величиной заема.
Параметр является периодической процентной ставкой. Если
выплаты делаются ежемесячно, а процентная ставка является годовой,
разделите годовую процентную ставку на 12.
Параметр является общим числом платежей, выплаченных при
погашении заема.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
STORE 100000 to principal && начальная ссуда в 100,000$
STORE .105/12 TO interest && 10.5% годовой процентной ставки
STORE (20*12) TO payments && 20 лет ежемесячных платежей
? PAYMENT(principal, interest, payments)
998.38
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є PCOL є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Возвращает текущую позицию колонки на принтере
Синтаксис
PCOL()
Возвращаемый тип
Численный
Смотри также
COL(), ROW(), PROW()
Описание
Функция PCOL() возвращает текущую позицию колонки на принтере.
Значение возвращаемое функцией PCOL () вычисляется в соответствии
с текущим назначенным положением левого края. Значение левого края
может быть назначено с помощью команды SET MARGIN или с помощью
сохранения системной переменной _PLOFFSET.
PCOL () особенно полезна для относительной адресации при выводе на
принтер.
Специальный оператор $ может быть использован вместо функции
PCOL().
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Примеры є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
@ PROW(),PCOL()+12 SAY 'Contact person'
@ PROW(),$+12 SAY 'Contact person'
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є PI є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Возвращает численную константу ПИ
Синтаксис
PI()
Возвращаемый тип
Численный
Смотри также
SET DECIMALS
Описание
Эта математическая функция возвращает значение численной константы
ПИ (приблизительно 3.141592). ПИ является отношением длины окружности
к ее диаметру.
Число знаков после запятой значения, возвращаемого функцией PI()
определяется командой SET DECIMALS.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Примеры є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
? PI()
3.14
STORE 2.30 TO radius
STORE PI() * radius^2 TO area
? area
16.6190
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є PLAY MACRO є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Выполняет макрос клавиатуры
Синтаксис
PLAY MACRO
[TIME ]
Смотри также
CLEAR, ON KEY LABEL
Описание
FoxPro позволяет вам сохранить серию нажатий клавиш на клавиатуре
в качестве макроса клавиатуры. С помощью команды PLAY MACRO вы можете
повторить серию нажатий клавиш. Используя макросы внутри программы, вы
можете создавать самозапускающиеся демонстрационные программы.
Когда макрос клавиатуры записан, вы можете запустить его на
выполнение нажатием клавиши или клавиш, определенных для идентификации
данного макроса. Для получения более поной информации обратитесь к
"Руководству по интерфейсу" (Interface Guide) системы FoxPro.
Если команда PLAY MACRO вызывается из командного окна, то макро
выполняется немедленно. Если команда PLAY MACRO вызывается из
программы, то выполнение макроса приостанавливается до тех пор, пока
не потребуется ввод серии клавиш, определенной макросом. В любом
месте, где потребуется ввод, будет введена серия нажатий клавиш,
определенная макросом. Примерами команд, ожидающих ввод, могут служить
команды @...SAY/GET, CHANGE, EDIT и т.д.
Важно!!!
Если серия команд PLAY MACRO будет задержана, то ее выполнение
возобновится не в том порядке, в котором записаны команды. Макросы
внутри программы будут выполняться в обратном порядке - первая команда
PLAY MACRO выполнится последней, а последняя команда PLAY MACRO
выполнится первой. Команды PLAY MACRO выполняются снизу вверх по мере
появления их в программе.
Дополнительные опции
Макрос клавиатуры, который вы желаете использовать.
TIME
Временной интервал между нажатиями клавиш в макросе клавиатуры.
Задавайте задержку времени в диапазоне от 0 до 10 секунд (допускается
дробная часть в секундах) в параметре . Например, если вы задали
равным 1, нажатия клавиш в макросе будут производится с
промежутком в 1 секунду между каждым нажатием.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є POP KEY є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Восстанавливает команды ON KEY LABEL
Синтаксис
POP KEY [ALL]
Замечания
Новая в FoxPro 2.0
Смотри также
ON KEY LABEL, ON(), PUSH KEY
Описание
Команда POP KEY восстанавливает команды ON KEY LABEL, помещенные в
"стек". Команды ON KEY LABEL помещаются в стек с помощью команды PUSH
KEY. Эта команда при использовании с командой PUSH KEY позволяет вам
сохранять набор команд ON KEY LABEL, делать изменения в командах, а
затем восстанавливать команды.
Более подробную информацию о помещении команд ON KEY LABEL в стек
можно найти в описании команды PUSH KEY в данном руководстве.
Дополнительные опции
ALL
Используйте ключевое слово ALL в команде POP KEY для удаления всех
текущих команд ON KEY LABEL и удаления всех команд ON KEY LABEL из
стека.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є POP MENU є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Выталкивает линейку меню из стека
Синтаксис
POP MENU [TO MASTER]
Замечания
Новая в FoxPro 2.0
Смотри также
ACTIVATE MENU, DEFINE MENU, POP POPUP, PUSH MENU, PUSH POPUP
Описание
Команда POP MENU позволяет вам восстанавливать меню, помещенное в
стек меню. Эта команда при использовании с командой PUSH MENU
позволяет сохранять меню, изменять меню, а затем восстанавливать меню
в его исходное состояние.
Меню располагаются и удаляются из стека в порядке "последним
пришел - первым ушел".
Дополнительные опции
TO MASTER
Использование опции TO MASTER восстанавливает меню, помещенное в
стек первым. После восстановления первого меню стек очищается.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Наберите следующие команды в командном окне. В следующем примере
Системное меню помещается в стек, а затем модифицируется. Затем
Системное меню восстанавливается извлечением его из стека.
PUSH MENU _MSYSMENU
SET SYSMENU TO _MFILE, _MEDIT
POP MENU _MSYSMENU