ГЛАВА 2
СКРИПТЫИКОМАНДЫ
Программа на языке PAL, или скрипт, состоит из последовательностей команд. Настоящая глава описывает структуру скриптов и команд. Она содержит следующие разделы:
- природа скрипта;
- последовательность команд;
- синтаксис команд;
- типы команд PAL:
- команды программирования;
- макрокоманды клавиш;
- сокращенные команды меню.
Настоящая глава содержит лишь общий синтаксис и структуру команд PAL. Специфический синтаксис и использование каждой команды описаны в справочнике команд в главе 20.
СУЩНОСТЬ СКРИПТА
Программа на языке PAL, или скрипт, состоит из последовательностей команд. Вы можете объединить ряд скриптов, выполняющих различные задачи для создания полной прикладной системы баз данных - автономной программы, с помощью которой пользователи могут вводить, просматривать, изменять данные и составлять отчеты.
Команды являются программнными примитивами, определяющими, что необходимо выполнить системе Paradox. Когда вы разрабатываете скрипты, важно помнить, что выполняет их именно система Paradox, а не компилятор PAL. Вам следует рассматривать PAL в качестве автоматизированного пользователя системы Paradox, управляемого вами. Этот автоматизированный пользователь управляет действиями реального пользователя вашей прикладной системы, скрывая те части системы Paradox, в которых нет необходимости. Скрипты PAL - просто текстовые файлы в кодировке ASCII с расширением .SC. По соображдениям удобства и эффективности часто используются методы вст роенной записи скриптов системы Paradox, ее редактор скриптов, а также Personal Programmer. Детально способы создания и запуска скриптов описаны в главах 9 и 10.
Если вы не используете ветвление или другие управляющие структуры, изменяющие последовательность выполнения команд, то скрипт выполняется послеовательно с начала до конца, например:
MENU {View} {Orders}
EDITKEY
END
DOWN
MENU {Image} {PickForm} {1}
После того, как выполнена последняя команда скрипта, он попросту заканчивается. Скрипты могут содержать команды запуска других скриптов, и уровень вложения, которого вы межете достичь таким способом практически неограничен. Например, приведенный ниже скрипт является правильным с точки зрения PAL, хотя все, что он делает - это лишь запуск другого скрипта:
PLAY "Script2"
Cкрипт, вызвавший другой скрипт, временно приостанавливается, пока происходит выполнение вызванного скрипта. И вызванный скрипт, в свою очередь, может быть приостановлен, если внутри его содержатся команды вызова других скриптов. Когда заканчивается выполнение вложенного скрипта, управление передается скрипту, вызвавшему его, и он начинает исполняться с той точки, где был приостановлен. Когда заканчивается выполнение первоначального скрипта, управление передается системе Paradox (вы можете изменить этот порядок, как описано в главе 4).
Опытные программисты могут спросить, чем же скрипты PAL отличаются от обычных программ. В самом деле они похожи во многих аспектах:
- Скрипты могут быть структурированы. PAL поддерживает управляющие структуры и циклы, такие как: WHILE, IF-THEN-ELSE, а также SWITCH, которые позволяют вам предписывать требуемую последовательность выполнения команд.
- Также как в Паскале и Си, вы можете определить процедуры, выполняющие одну или более задач. Если вы определили процедуру ( или загрузили ее из библиотеки), вы можете использовать ее в командах. Процедуры могут получать аргументы и вазвращать результаты скрипту или вызывающей процедуре.
- Неограниченная возможность вложения скриптов, наряду с возможностью использования процедур позволяют вам создавать модули внутри прикладных систем, разбивая систему на ряд функциональных скриптов, управляемых главным скриптом.
- Также как и в Си, вы можете свобоно пользоваться отступами с начала строки. Вы можете выделять подчиненные скрипты с помощью абзаца или нет, можете помещать одну или более команд в одной строке, добавлять комментарии в любую строку скрипта. Знаки табуляции, пробелы и пустые строки не влияют на процесс выполнения команд.
Например, приведенные ниже два скрипта выполняются в точности одинаково, но один из них гораздо более удобочитаем, чем дру гой:
IF ISTABLE("Choices")
- TRUE THEN DELETE "Choices" ELSE ? "Choices doesn't exist" ENDIF
IF ISTABLE("Choices") = TRUE
THEN DELETE "Choices" ELSE ? "Choices doesn't exist"
ENDIF
Скрипты PAL позволяют вам управлять информацией, видимой польздователю. Как вы увидите в главе 13, скрипты обычно скрывают дествия, происходящие в рабочей области системы Paradox, давая возможность пользователю работать со специальным экраном, называемым канвой PAL. PAL включает полный набор средств для создания канвы:
- команды управления видимой частью экрана;
- команды демонстрации рабочей области системы Paradox;
- команды имитации операций системы Paradox, таких как меню.
В вашем распоряжении находится достаточное количество инструментальных средств и функций, многие из которых знакомы вам, если вы программировали ранее.
КОМАНДЫ
Синтаксис
Скрипты PAL имеют свободную структуру. За небольшим количеством исключений, вы можете помещать в одной строке столько команд, сколько хотите, разделяя их по меньшей мере одним пробелом. Вы можете также разделять команду на две или несколько строк, при этом разделять ключевые слова, имена, величины данных запрещается. Длина каждой строки скрипта PAL может быть не более 132 символов.
Правильное разделение на строки
IF
MyVariabe
=24
THEN
DoSomeProc()
ENDIF
Неправильное разделение на строки
IF My
Variabe ; разделено имя переменной
=2
4 ; разделена величина THEN DoSomeProc ; разделены имя процедуры () ; и список ее параметров
END
IF ; разделено ключевое слово
Для определенных команд, включая RETURN, STYLE, SETKEY, ?, ?? и TEXT существуют ограничения на состав текста, следующего за командой. Эти ограничения отражены в описании каждой команды в главе 20.
Многие из методов записи скриптов системы Paradox (описано в главе 9) создают скрипты, содержащие несколько команд в одной строке. Для удобства чтения и редактирования мы рекомендуем помещать каждую команду в отдельной строке, используя выделение с помощью абзаца, чтобы показать, какие команды являются зависимыми от других (особенно в управляющих структурах типа IF ... THEN). Примеры этой книги иллюстрируют рекомендуемый нами стиль структурного программирования.
Использование верхнего и нижнего регистра -----------------------------------------
Вы можете свободно использовать регистры клавиатуры при написании команд. Ключевые слова могут быть записаны в верхнем или нижнем регистре, а также используя буквы обоих регистров. Например, PAL считает, что add, ADD, Add и даже aDd являются одной и той же командой. Это справедливо для имен таблиц, полей, переменных, массивов и процедур. Единственным случаем, где имеет значение регистр, является написание строковых величин. Например, строки "abc" и "ABC" не эквивалентны.
Комментарии и пропуски строк ----------------------------
Все символы, следующие за точкой с запятой (;), рассматриваются как комментарии и игнорируются PAL, если (;) не включена в строковую величину. Мы рекомендуем использовать комментарий для описания, что происходит по ходу действия программы, для указания на скрытые сообщения, переменные и процедуры, для того,чтобы обеспечить любой другой полезной информацией человека, читающего или редактирующего скрипт, или просто для напоминания о том, что же вы делали. Если вы начали строку с (;), то она вся рассматривается как комментарий. В комментариях, состоящих из нескольких строк, каждая строка должна начинаться с (;).
Пустые строки не влияют на выполнение скриптов PAL. Вы можете использовать их без опасения для выделения комментариев и чтобы облегчить чтение скриптов. Нет необходимости начинать пустые строки с (;).
Везде в примерах этого руководства мы свободно пользуемся комментариями. Советуем вам делать то же самое.
Последовательность выполнения
В языке PAL отсутствуют команды начала и конца скрипта. После запуска скрипта его команды выполняются последовательно от начала до конца. Однако вы можете изменить последовательность выполнения скрипта, используя управляющие структуры. Работа скрипта заканчивается или если выполнены все его команды, или если очередная команда завершает выполнения скрипта (например, RETURN, QUIT или EXIT). Передача управления после окончания скрипта происходит в зависимости от того, как скрипт был запущен и как он завершился:
- Если скрипт был вызван из другого скрипта, управление передается вызывающему скрипту.
- Если скрипт был запущен из системы Paradox или завершился командой QUIT, управление передается системе Paradox, причем она возвращается в режим, предшествующий выполнению скрипта.
- Если скрипт завершился командой EXIT или был запущен программой Paradox Runtime, управление передается DOS.
Например, если вы запустили скрипт:
VIEW "orders" EDITKEY
то таблица "orders" помещается в рабочей области, включается режим редактирования. После окончания скрипта Paradox остается в этом режиме. Как вы увидите в главе 9, скрипты могут быть запущены с помощью командной строки DOS, но после нормального их завершения пользователь остается в системе Paradox. Если вы хотите возвратиться из скрипта в DOS, используйте команду EXIT вместо QUIT.
Действия команд PAL на объекты рабочей области системы Paradox обычно скрыты от пользователя до тех пор, пока скрипт не завершил работу. Это происходит потому, что рабочая область скрыта канвой PAL во время работы скрипта, и пользователи обычно видят результаты его работы, а не промежуточные шаги. Вы имеете возможность управлять тем, что видит пользователь, для этого существуют команды, высвечивающие меню (SHOWMENU), подсказки и сообщения (PROMPT, MESSAGE, RETURN, ? и ??), принимающие вводимую пользователем информацию (ACCEPT, WAIT), и даже показывающие все промежуточные шаги (ECHO) выполнения скрипта. Эти и другие похожие команды детально описаны в главе 13.
Вложенные скрипты -----------------
Если вы программируете сложные задачи, вы увидите, что более удобно и эффективно создавать ряд маленьких скриптов вместо одного большого. Вы можете запустить один скрипт из другого с помощью команды PLAY, причем запускаемый скрипт может также содержать команды PLAY для запуска других скриптов, и так далее. Это один из путей создания подпрограмм в прикладной системе. ( Другой путь - создание процедуры для каждой из задач.)
Скрипты, запускаемые из других скриптов, не должны содержать команд QUIT и EXIT, если только вы не хотите завершить выполнение всех скриптов в этом месте. Обычно скрипты, используемые как подпрограммы не имеют завершающей команды или завершаются командой RETURN. Когда система Paradox встречает RETURN или выполняет пос леднюю строку скрипта, она возвращает управление вызывающему скрипту более высокого уровня. Если завершилось выполнение последнего скрипта, управление передается системе Paradox или DOS.
ТИПЫ КОМАНД PAL
Существуют три основных категории команд PAL:
- Команды программирования, выполняющие задачи, которые вы не можете сделать непосредственно с помощью системы Paradox. Наиболее важными из них являются управляющие структуры, такие как IF и WHILE ( описанные в главе 4), а также команды типа MESSAGE и SHOWMENU, определяющие интерфейс с пользователем ( описаны в главе 13).
- Команды взаимодействия с пользователем, которые могут быть
записаны в скрипт в процессе работы с системой Paradox. Эти
команды и командные клавиши представляют функции системы
Paradox и включают:
- режимы меню, такие как {VIEW};
- команды управляющих клавиш, такие как MENU и PGUP;
- строки, заключенные в кавычки, такие как "Philo T.Farnsworth";
- формы запросов, сохраненные с использованием команды QuerySave.
- Сокращенные команды меню, которые имитируют выбор из меню
системы Paradox, такие как VIEW и PLAY. Таким образом могут быть сокращены не все команды меню системы Paradox, а только наиболее часто употребимые из них.
Примеры команд каждой из трех категорий приведены на рис.2-1. На рисунке преставлен скрипт, позволяющий пользователю выбрать электронную таблицу типа Quattro, которая затем вносится в таблицу системы Paradox, сортируется по содержимому первого поля. Затем по этой таблице печатается отчет.
1 | SHOWFILES NOEXT ; высвечивается меню файлов *.WKQ
| "*.WKQ"
| "Select a Quattro spreadsheet to report on."
| TO wksht
|
| imptbl=SUBSTR(sprdsht,1, LEN(sprdsht)-4)
| ; конкретизируется имя используе | ; мой таблицы
1 | WHILE ISTABLE(imptbl) ; если таблица существует
| @0,0
| ? "Table exists. Type new table name:"
| ; подсказка для ввода имени
| ACCEPT "A8" TO imptbl ; ввод нового имени
| ENDWHILE
|
| @0,0
| ? "Importing spreadsheet..."
2 | {Tools} {ExportImport} {Import}
| {Quattro} ; вводится рабочая таблица из | ; Quattro в таблицу с новым
| SELECT wksht SELECT imptbl; именем
|
| @0,0
3 | ? "Sorting table..."
| RIGHT ; движение к первому полю
| SORT imptbl ON FIELD() ; сортировка таблицы по текущему
| ; полю
| @0,0
| ? "Designing and printing report ..."
4 | MENU {Report} {Design} ; создание отчета
| SELECT imptbl {1}
| "Report on" TYPEIN imptbl ENTER
| ; изменение названия
| {Tabular}
4 | DO_IT!
|
5 | REPORT imptbl 1 ; печать отчета
|
1- команды программирования;
2- режимы и команды меню;
3- строковые величины;
4- команды специальных клавиш;
5- сокращенные команды меню.
Рис 2-1. Типы команд PAL.
Команды программирования
Команды программирования PAL позволяют выполнять операции, невыполнимые внутри системы Paradox, такие как высвечивание пользовательского меню и циклы. Эти команды не могут быть записаны в скрипт из системы Paradox; вам следует пользоваться редактором скриптов системы Paradox или вашим собственным редактором для включения этих команд в скрипт, или использовать Personal Programmer для создания прикладных систем, содержащих эти команды. Они делятся на шесть типов:
- команды манипулирования рабочей областью;
- команды ввода и вывода;
- команды манипулирования переменными и массивами;
- управляющие структуры;
- команды, выполняющие операции управления системой;
- команды, выполняющие многопользовательские операции, такие как явное замыкание записи.
Использование этих типов команд поробно описано в справочнике команд в главе 20. Управляющие структуры программы описаны в главе 4, а информация по использованию других типов команд содер жится в главах от 12 до 19.
Команды программирования PAL содержат одно или более ключевых слов и, возможно, несколько параметров ( переменных величин или аргументов). Например, команда BEEP, результатом выполнения которой является звуковой сигнал, состоит из одного ключевого слова BEEP. Напротив, команда MESSAGE имеет список аргументов, разделенных запятыми, например:
MESSAGE "The time is: ", TIME(), " o'clock "
где MESSAGE - имя команды, "The time is: " - первый аргумент, TIME() - второй аргумент, " o'clock " - третий аргумент.
Аргументы команд PAL называются выражениями и подробно описаны в главе 3.
Взаимодействие с пользователем
Существует четыре типа команд PAL, позволяющих имитировать нажатие на клавиши при работе в режиме диалога с системой Paradox:
- выбор из меню: набор команд включает выбор из меню системы Paradox и ответы на подсказки из меню;
- специальные клавиши системы Paradox: командами имитируется нажатие специальных клавиш системы Paradox, таких как Do_It! {F2}, Down и Rotate {Ctrl}{R};
- строки в кавычках: включают всю информацию, которую вы вводите помимо меню, например, ввод данных в таблицу;
- образцы запросов: текстовое представление формулировок запросов.
Примеры этих элементов представлены на рис.2-1,2-2,2-3. Хотя вы можете внести эти элементы непосредственно в скрипт, обычно легче записать их в процессе диалога с системой Paradox, используя встроенные средства записи скриптов. Чтобы это сделать, выберите из меню режим Scripts/BeginRecord или нажмите на клавишу {Alt}{F3} (см. главу 8).
Выбор из меню -------------
Если обрабатываемая команда скрипта является именем режима из меню системы Paradox и к моменту ее обработки высвечено соответствующее меню, то система перейдет в указанный вами режим. Аналогично, если в области меню высвечивается посказка, а обрабатываемая команда скрипта является ответом на нее, заключенным в фигурные скобки, то этот ответ будет введен в систему Paradox. Например, на рис. 2-2 {Modify} и {Orders} соответствуют альтернативам из меню.
В автоматически записанном скрипте опции из меню преставлены в виде слов, начинающихся с заглавной буквы, так же, как они выглядят в меню. Ответы на подсказки записываются в том виде, в каком они введены программистом. Регистр, в котором введены коман ды, не имеет значения. Хотя вы не можете использовать имена переменных в фигурных скобках, вы можете воспользоваться командой SELECT для достижения этого же результата. В главе 12 изложено подробное описание взаимодействия с пользователем.
На рис. 2-2 представлен скрипт, сортирующий таблицу "orders" по календарным датам, причем заказы с самыми поздними датами записываются первыми.
Если вы знаете систему Paradox, вы легко поймете, как работает этот скрипт. Первая его строка содержит альтернативы из меню, с помощью которых выводится сортировочная форма для таблицы "orders". В следующей строке четыре команды Down подводят курсор к полю календарных дат, а строка, заключенная в кавычки, вводит спецификацию сортировки. Затем команда Do_It! выполняет сортировку. В третьей строке - окончание скрипта. Оно не влияет на его работу.
{Modify} {Sort} {Orders} {Same}
Down Down Down Down "1d" Do_It!
Menu {Scripts} {End-Record}
Рис. 2-2. Пример скрипта.
Специальные клавиши -------------------
Упоминание в скрипте имен специальных клавиш или их комбинаций имитирует воздействие на систему Paradox с помощью этих клавиш, например на рис. 2-2 в скрипте употреблены названия специальных клавиш Down и Do_It!. Таблица 2-1 содержит имя каждой специальной клавиши, записываемое в скрипт. Регистр, в котором записано имя клавиши не имеет значения. Заметьте, что клавиша Do-It! {F2}, в имени которой содержится тире, в скрипт записывается в виде Do_It!. (Если вы запишете в скрипт Do-It!, PAL воспримет это как вычитание переменной It! из переменной Do.) Клавиши с длинными именами, состоящими из нескольких слов, например, Instant Script Play {Alt}{F3}, сокращаюся: InstantPlay.
Хотя вы не можете использовать имя переменной для обозначения специальной клавиши, вы можете использовать ее в качестве параметра команды KEYPRESS, если к моменту исполнения команды значение переменной известно. Подробности смотрите в главе 12.
Таблица 2-1. Специальные клавиши в скриптах.
Клавиша Имя клавиши в скрипте
Клавиатура управления курсором и специальные клавиши
{Home} Home {End} End {PgUp} PgUp {PgDn} PgDn {Left} Left {Right} Right {Down} Down {Up} Up {Ins} Ins {Del} Del {BackSpace} BackSpace {Esc} Esc {Enter} Enter {Tab} Tab {Shift}{Tab} Reserve Tab Клавиши курсора с {Ctrl} {Ctrl}{Break} CtrlBreak {Ctrl}{Home} CtrlHome {Ctrl}{End} CtrlEnd {Ctrl}{Left} CtrlLeft {Ctrl}{Right} CtrlRight {Ctrl}{BackSpace} CtrlBackSpace {Ctrl}{PgUp} CtrlPgUp {Ctrl}{PgDn} CtrlPgDn Последовательности, содержащие {Ctrl} и {Alt} Cross Tab {Alt}{X} CrossTab Ditto {Ctrl}{D} Ditto DOS {Ctrl}{O} DOS DOSBig {Alt}{O} DOSBig Field View {Ctrl}{F} FieldView Key Lookup {Alt}{K} KeyLookup Lock Toggle {Alt}{L} LockKey Rotate {Ctrl}{R} Rotate Refresh {Alt}{R} Refresh Vertical Ruler Toggle{Ctrl}{V} VertRuler Report Delete Line {Ctrl}{Y} DeleteLine Zoom {Ctrl}{Z} Zoom Zoom Next {Alt}{Z} ZoomNext Функциональные клавиши Help {F1} Help Do-It! {F2} Do_It! Up Image {F3} UpImage Down Image {F4} DownImage Example {F5} Example Checkmark {F6} Check Form Toggle {F7} FormKey Clear Image {F8} ClearImage Edit {F9} EditKey Menu {F10} Menu Функциональные клавиши с {Alt} Instant Script Record {Alt}{F3} InstantRecord Instant Script Play {Alt}{F4} InstantPlay Field View {Alt}{F5} FieldView Check Plus {Alt}{F6} CheckPlus Instant Report {Alt}{F7} InstantReport Clear All {Alt}{F8} ClearAll Coedit {Alt}{F9} CoeditKey Функциональные клавиши с {Ctrl} Check Descending {Ctrl}{F6} Check Descending Graph Key {Ctrl}{F7} Graph Key Функциональные клавиши с {Shift} GroupBy {Shift}{F6} GroupBy
Строки ------
Текст, не входящий в меню, можно внести в скрипт, заключив его в кавычки. Это необходимо, когда нужно внести данные в таблицу, ввести текстовые спецификации формы или отчета, заполнить формы сортировки и во многих других случаях. Например на рис. 2-2 указана спецификация сортировки "1d".
Заметьте разницу между видом ответа на подсказку меню, таким как {orders} и видом текстовых строк, не относящихся к меню, таких как "1d".
Хотя в строках нельзя использовать имена переменных, вы можете внести их туда командой TYPEIN, изменяя информацию, выводимую во время выполнения скрипта. Подробности смотри в главе 12.
Образцы запросов ----------------
Для выполнения запросов в скрипте необхоимо его создать в системе Paradox, а затем выбрать из главного меню режим Scripts/QuerySave и записать его в скрипт. Формулировка запроса включается в скрипт между командами QUERY и ENDQUERY. На рис.2-3 показано соответствие между видом запроса на экране и его представлением в скрипте.
После того, как вы запомнили запрос, внесите скрипт запроса в нужное место вашего скрипта, используя режим Read редактора скриптов или аналогичные команды ваших собственных редакторов. Или просто внесите в ваш скрипт команду PLAY, параметром которой является имя скрипта запроса.
Заметьте, что команда QUERY только высвечивает формулировку запроса в рабочей области. Для выполнения запроса необходимы команды ENDQUERY и DO_IT!.
В формулировках запроса можно использовать переменные со знаком "~" для динамической передачи данных запросу перед его выполнением. Подробности смотри в главе 14.
Хотя это и возможно, мы вам категорически советуем не создавать запросов с помощью редактора скриптов. Во время создания запроса в режиме диалога с системой Paradox она обеспечивает структурированную поддержку ввода и изменения величин в используемых вами формах запросов. Она также проверяет допустимость запросов. Создание запросов с помощью редактора исключает средства контроля системы Paradox и может привести к тому, что правильно выглядящий запрос тем не менее будет выполняеться с ошибками.
Дополнительная информация о записи скриптов запросов содержится в главе 9. Предположим, вы создаете запрос к таблицам "orders" и "customer", чтобы узнать покупателей, заказавших более одной единицы товара. Записанная в скрипте формулировка запроса похожа на то, что вы видите на экране, работая с системой Paradox. Отметьте следующие особенности:
- формулировка запроса заключена между словами QUERY и ENDQUERY;
- пустые строки отделяют ключевые слова QUERY и ENDQUERY от формулировки запроса;
- структура формы запроса обозначена с использованием вертикальных линий;
- для преставления команд клавиш {F6}, {Ctrl}{F6},{Alt}{F6} и {Shift}{F6} в скрипте запроса используются ключевые слова CHECK, CHECKDESCENDING, CHECKPLUS и GROUPBY;
- элементам примеров записей предшествует подчерк;
- критерии выбора выглядят в точности так же, как в форме запроса, например, ">1";
- в формулировку запроса включаются только активные поля (т.е. те для которых необходима проверка, примеры или выбор).
Скрипт образца запроса представлен нап рис.2-3.
QUERY
ORDERS | Order # | Cust ID | Quant | Date |
| CHECK | _1234 | CHECK >1 | CHECK |
CUSTOMER | Cust ID | Last Name | City |
| _1234 | CHECK | CHECK |
ENDQUERY
ORDERS------Order #----Cust ID-----Stock $---Quant-------Date----
| ^ | 1234 | | ^ >1 | ^ | | | | | | |
CUSTOMER----Cust ID----Last Name--Init-------Strit-------City----
| 1234 | ^ | | | ^ | | | | | | |
^ - знак проверки поля.
Рис. 2-3. Образец запроса и его скрипт.
Сокращенные команды меню
Сокращенные команды меню - это команды, выполняющие операции системы Paradox, аналогичные тем, которые выполняются системой после выбора из системных меню соответствующего режима. Например, используя:
SORT "Orders" ON "Date" D
можно рассортировать таблицу заказов так же, как это делается с помощью скрипта, приведенного на рис 2-2. Сокращенная команда меню SORT в точности эквивалентна слеующей последовательности действий: выбору режима Modify из главного меню, режима Sort из меню модификации, определению таблицы и заполнению формы сортировки. Вы можете проверить эту эквивалентность, создав два этих скрипта и запустив их.
Сокращенные команды меню и соответствующие им режимы системы Paradox перечислены в таблице 2-2. Эти команды имеют такой же синтасис, как и команды программирования PAL, и так же, как и они, не могут быть записаны в скрипт в режиме диалога с системой Paradox. Однако их можно встретить в прикладных системах, создаваемых с помощью системы Personal Programmer. Для выполнения сокращенных команд меню требуется, чтобы в момент их выполнения система Paradox была в соответствующем режиме. Как вы знаете, режим системы высвечивается в верхнем правом углу экрана.
Таблица 2-2. Сокращенные команды меню
Сокращенные Режим Опции меню команды меню системы системы Paradox ----------------------------------------------------------------- ................
Хотя сокращенные команды меню не обеспечивают никаках преимуществ во время выполнения скрипта, использование их все же желательно, потому что:
- С ними легче работать, редактируя скрипт.
- Вы можете использовать переменные и выражения в качестве аргументов этих команд. Например, для просмотра таблицы, имя которой присвоено переменной "tabname", следует использовать команду:
VIEW tabname
Это отличается от:
Menu {View} {tabname}
так как в последнем случае система Paradox будет считать, что "tabname" - это не имя переменной, а имя самой таблицы ( если такая существует). Аналогично, команда:
SORT TABLE() ON FIELD()
сортирует текущую таблицу рабочей области по величинам текущего поля - это невозможно сделать с помощью меню системы Paradox.
- Они автоматически обеспечивают подтверждение, когда это требуется. Например, последовательность опций:
Menu {Tools} {Copy} {Table} {orders} {newords}
приведет к копированию таблицы "orders" в таблицу "newords", если последняя не существует к моменту выполнения команд. Если таблица "newords" существует, система Paradox высветит меню:
Cancel Replace
A table with this name already exists, do not reuse name
Таким образом, если в вашем скрипте не предусмотрена опция {Replace}, то вы получите ошибку скрипта. С другой стороны, команда :
COPY "orders" "newords"
автоматически обеспечивает подтверждение, если это необходимо и будет работать независимо от того, существует или нет таблица "newords".
( Если вы не хотите заменять уже существующую таблицу, можно использовать функцию ISTABLE для проверки перед тем, как выполнять команду COPY. Или вы можете попросить пользователя подтвердить замену, как это описано в главе 12.)
Вследствие этих преимуществ в процессе отладки прикладной системы вы можете заменить некоторые последовательности опций меню, записанные вами в скрипт, на сокращенные команды меню.
Так как они работают в точности аналогично соответствующим опциям меню, сокращенные команды могут быть использованы только в том контексте, в котором они имеют смысл. Например, ошибочным будет использование команды:
VIEW "orders"
если система Paradox находится в режиме редактирования, для которого опция {View} не является правильной. Ваша задача обеспечить при выполнении каждой команды соответствующий режим системы Paradox. Чтобы определить текущий режим системы, можно использовать функцию SYSMODE.
Для создания собственных сокращенных команд меню можно использовать команды TYPEIN и SELECT. Подробности смотри в главе 12.
| <<
| <
| >
| >>
| Содержание |