|
PARADOX APPLICATION LANGUAGE
____________________________________________________________
PAL User's Guide
P A R A D O X A P P L I C A T I O N
L A N G U A G E
.
- 3 -
СОДЕРЖАНИЕ
ЧАСТЬ I.ОСНОВНЫЕ ПОНЯТИЯ
ГЛАВА 1. ВВЕДЕНИЕ В PAL
ГЛАВА 2. СЦЕНАРИИ
ГЛАВА 3. РЕДАКТОР
ГЛАВА 4. МЕНЮ PAL
ЧАСТЬ II.ОПИСАНИЕ ЯЗЫКА И ТЕХНИКИ ПРОГРАММИРОВАНИЯ
ГЛАВА 5. ВЗАИМОДЕЙСТВИЕ С ПОЛЬЗОВАТЕЛЕМ
ГЛАВА 6. БЛОКИ СОСТАВЛЯЮЩИЕ PAL
ГЛАВА 7. ТЕХНИКА ПРОГРАММИРОВАНИЯ PAL
ГЛАВА 8. ОТЛАДЧИК СЦЕНАРИЕВ (DEBUGGER)
ЧАСТЬ III.ОПИСАНИЕ КОМАНД И ФУНКЦИЙ
ГЛАВА 9. КОМАНДЫ
ГЛАВА 10.ФУНКЦИИ
.
- 4 -
Ч А С Т Ь 1
__________________________________________________________
О С Н О В Н Ы Е П О Н Я Т И Я
__________________________________________________________
Глава 1. Ведение в PAL
Что такое PAL
Использование PAL
Глава 2. Cценарии
Элементы сценариев
Выбор меню
Специальные клавиши
Строки в кавычках
Сборка сценариев
Выводы
Глава 3. Редактор сценариев PAL
Составление и редактирование сценариев
Как войти в редактор
Работа с редактором
Функциональные клавиши и меню
Сценарии накопленных вопросов редактора
Глава 4. Меню PAL
Доступность меню PAL
Play (запустить)
BeginRecord (Началo записи)
Debug (Отладка)
Value (Значение)
MiniScripts(Мини сценарий)
.
- 5 -
Г Л А В А 1
____________________________________________________________
В В Е Д Е Н И Е В P A L
____________________________________________________________
ЧТО ТАКОЕ PAL?
______________
PAL - ( прикладной язык PARADOX`a) высоко уровневый
структурированный программный язык, который суммарно
обьединен с PARADOXом. PAL позволяет вам расширить
возможности PARADOXа таким образом, что вы можете быстро и
легко создать прикладные системы.
Cовместно с Редактором и Отладчиком, PAL и PARADOX
образуют полную пользовательскую среду. Но PAL пригоден не
только для разработок. Он также позволяет вам писать
макрокоманды клавиатуры, которые вам необходимы, и даже
конструировать свои меню в PARADOXе. Короче, PAL позволит
вам использовать PARADOX в вашей работе.
PAL автоматически взаимодействует с PARADOX`ом под
вашим полным контролем. Вы изучаете автоматический доступ к
каждой операции PARADOX`a, включая запросы, использование
форм и отчетов, сортировку, редактирование и диагностику.
Если вы используете PARADOX и пишите сценарии, то вы вскгда
используете PAL. Сценарии PARADOX`a являются программами на
PALе и PAL- программы являются сценариями PARADOX`a. Таким
образом, программистам, которые начинают знакомиться с
PARADOX`ом, не стоит особого труда применения языка PAL.
- 6 -
PAL - полная программная окружающая среда
_________________________________________
Совместно с возможностями PARADOX`a PAL открывает новый
метод его использования. Вы можете использовать PARADOX для
быстрого моделирования и изменения компонент, и после этого
использовать команды PAL для упаковки этих компонент
вместе. В других системах вы можете создавать
пользовательские экраны серией команд, которые имеют
небольшое или совсем не имеют отношение к отображаемому на
экране. В PALе этот процесс очень отличается. Используя
простые формы PARADOX`a, вы можете выстро создать формы,
которые используются для ввода данных и отображения. Ваши
формы пользователь увидит на экране. Для создания вашего
экрана с помощью PAL программы потребуется минимум усилий.
Проектирование вывода на печать также более просто в PAL
посредством генератора отчетов.
PAL и PARADOX - новая ступень в программировании баз
данных. Если вы являетесь программистом или пользователем,
вы будете использовать мощные языковые конструкции, которые
предлагает PAL. Также PAL дает вам неограниченное
количество переменных и массивов, мощные по возможностям
процедуры, взаимосвязанные отладчики и широкую библиотеку
функций, включающую математические, финансовые. Даже если
вы являетесь пользователем, использующим другие системы баз
данных вы найдете PAL более богатым и элегантным.
Приведем некоторые основные особенности PAl.
>>>> Доступ к ресурсам PARADOX`a. Посредством PAL вы
можете получить доступ к широким возможностям,
представляемым PARADOXом. Здесь представленно несколько
наболее полезных особенностей PARADOX`a, имеющих отношение
к используемой разработке:
>> язык вопросов PARADOX`a с его мощным
query-bu-еxample интерфейсом позволит вам
конструировать запросы от простейших до самых сложных.
Широкие возможности, которые обьединяют много таблиц в
единственный запрос встроены в PARADOX. PAL дает вам
возможность для взаимосвязи переменных в запросах.
Уникальная способность PARADOX`a (QuerySave) делает его
- 7 -
незаменимым для вас при использовании вопросительных
выражений в ваших PAL программах.
>> PAL имеет прямой доступ к управлению широкими
возможностями PARADOX`a. Значения проверяются
автоматически. Другие типы имеющихся проверок, включая
форматирование картинок и просмотр таблиц, могут быть
быстро и просто установлены в любом месте.
>> Вы можете быстро создавать новые табличные структуры
быстро по мере необходимости вы можете также
модифицировать существующие структурные таблицы без
риска потери данных. Отметим, что всякий раз, когда вы
модифицируете структуру таблицы, PARADOX автоматически
обновляет все обьекты, связанные с этой таблицей
(формы, отчеты и указатели).
>> PAL, кроме того, дает вам доступ к генератору
отчетов PARADOX`a, который позволяет вам создать
разнообразные выходные форматы. Генератор отчетов
содержит до 16 уровней. Он также выводит вычисленные
значения, содержащими одно или более полей.
>>>> Неограниченное число переменных и массивов. В PAL
количество переменных и массивов вы можете определить
ограничиваясь только системной памятью. Массивы могут иметь
почти неограниченное количество элементов. Простое
построение массивов производится манипуляцией входных
записей, что позволяет вам использовать все преимущества
PARADOX`a.
>>>> Очень мощное представление процедур. PAL размещает
без ограничений то количество процедур, которое требуется в
данное время.
В внутри процедуры PAL позволяет:
>> локальные и глобальные переменные;
>> рекурсию;
>> динамический размер переменных;
>> определение процедуры и ее употребление в других
языках высокого уровня, таким как СИ и Pascal и способность
ее автоматически создавать и управлять библиотеками других
процедур.
- 8 -
>>>> Имеется большая библиотека встроенных функций.
>> Большое количество математических, статических и
трансцендентных функций.
>> Финансовые функции, такие как вычисление зарплаты и
вычисление вознаграждения и стоимости.
>> Мощные функции, которые позволяют упростить
синтаксический поиск по образцу так же ка и
форматирование текстов.
>> Установка функций, которые позволяют вам
манипулировать и определять признаки обьектов
PARADOX`a.
>>>> Широкие возможности экрана и клавиатуры по вводу и
выводу информации - PAL дает вам полное управление по всем
аспектам ввода-вывода и взаимодействия с конечным
пользователем. Как отмечалось ранее, обычная форма
PARADOX`а позволяет разбивать ввод данных и вывод на экраны
для вашего приложения. Специальная функция WAIT дает
выборочное управление для пользователей таким образом, что
они могут читать или обновлять записи, поля или введенные
таблицы до тех по пока они не нажмут определенную клавишу,
которая возвращает управление вашему сценарию.
>>>> Простейший контроль - в дополнение к стандартным
управляющим структурам, таким как IF-THEN-ELSE,
WHILE-ENDWHILE и SWITCH-CASE, PAL имеет мощную SCAN
конструкцию, которая быстро выполняет последовательность
операторов для каждого элемента таблицы.
>>>> Простота в создании вторичных индексов - при
помощи PAL вы можете установить вторичные индексы для
таблиц PARADOX`a. Они могут быть легко созданы после
создания для ускорения доступа. Вторичные индексы
поддерживаются автоматически.
>>>> Полная паролевая защита - PAL позволяет вам
отобрать шифрованные данные в таблицах и сценариях.
>>>> Макрооперации - вы можете вычислить строки,
которые интерпретируются как команды.
- 9 -
>>>> Сокращенные команды меню - PAL предлагает вам
специальный класс команд, которые позволяют вам изображать
процесс выбора меню в PARADOX`е путем использования
синтаксиса и параметров программы языкового стиля.
Для непрограммистов, PAL обеспечивает простой путь к
изучению программирования. Если вы записали сценарий в
PARADOX`е, можно программировать без знания его. С помощью
редактора для расширения записываемого сценария, вы вы
можете использовать их внутри программ. И нет необходимости
начинать программирование для того, чтобы извлекать пользу
из PAL как только вам потребуется увеличить мощьность
PARADOX`a в вашей ежедневной работе.
ПЕРЕД ИСПОЛЬЗОВАНИЕМ PAL
Ввиду того, что PAL и PARADOX являются сильно
интегрированными, наиболее важным требованием для
использования PAL является понимание PARADOX`a. Без
основных знаний концепций и способностей PARADOX`a ваши
возможности в использовании PAL будут ограничены. Чем лучше
вы знаете PARADOX, тем более полно вы сможете использовать
преимущества его в ваших PAL программах.
Естественно, для программистов, которые привыкли к
традиционным методологиям, нужно начинать программирование
в традиционном стиле. Рассмотрим простой пример. Если вы не
были осведомлены, что PARADOX имеет широкие возможности по
упрвлению данными, можно будет логически принять, что даты
должны быть представлены в форме "yyyy/mm/dd" для
сортировки их и для производства арифметических действий.
Это тот случай, который встречается во многих других
программах баз данных, однако, по мере того, как вы
знакомитесь с PARADOX`ом, поддерживающим конверсию
автоматически, вы начнете позволять PARADOX`у управлять
данными за вас. Этот пример имеет аналогии во многих других
программах. Как только вы получите знания и познакомитесь с
PARADOX`ом, вы будете ценить его мощь и чувствовать себя
более комфортабельно. Вы найдете, что можете разрабатывать
программы с меньшей принужденностью, в более свободных
- 10 -
формах. Вы сможете использовать PARADOX как прототип многих
компонент сложных приложений, включая таблицы, вопросы,
формы и записи. Вы сможете быстро проверять идеи и
концепции.
Запись-сценарий PARADOX`a фактически позволяет
проверить различные решения проблем без какого-либо
программирования. Вы записываете сценарий, который содержит
полезный шаблон, а затем можете использовать редактор PAL
для того, чтобы прочитать сценарий в программу.
Как использовать эту книгу?
Руководство использования по языку PAL является
введением в концепции и технику программирования на PALе, а
также справочником по языку.
Книга делится на три части: Основные понятия, Описание
языка и техники программирования, Справочник команд и
функций.
Часть 1. Основные понятия.
Всякий, кто хочет изучить PAL, должен прочитать об
основных понятиях. В этом разделе три главы.
Глава 2. Сценарии.В главе обсуждается как PARADOX
представляет ключевые слова в сценариях, когда вы создаете
этот сценарий, записываемых его. Изучение путей записи
сценариев становится необходимым при изучении PAL.
Глава 3. Редактор PAL сценариев. Описывает редактор
сценариев PAL. Редактор является средой, в которой сценарии
просматриваются, редактируются, печатаются и комбинируются.
Глава 4. Меню PAL, описывает доступные разделы меню
PAL.
- 11 -
Часть 2. Описание языка и технически программирования
Четыре главы представляют информацию, которая будет
полезной при построении PAL программы.
Глава 5. Взаимодействие с пользователем. Описывает
ручной ввод программ с клавиатуры.
Глава 6. Блоки, составляющие PAL. Представляет собой
детальное описание компонент языка, включая создание
выражений, команд, процедур, типов данных и других основных
понятий.
Глава 7. Техника программирования Представляет собой
краткое обсуждение методов программирования PAL,
технических приемов и стилей.
Глава 8. Отладчик PAL. Описывает систему отладки в
PALе. Используя систему отладки, вы можете выполнять
сценарий по шагам и видеть результаты каждой инструкции
непосредственно.
Часть 3. Справочник команд и функций
Эти главы являются алфавитными списками команд/функций
с полным описанием синтаксиса, употребления и эффектов.
Глава 9. Команды, включает все команды PAL.
Глава 10. Функции, включает около 100 строящих функций
PAL.
.
- 12 -
Г Л А В А 2
___________________________________________________________
С Ц Е Н А Р И И
___________________________________________________________
ЭЛЕМЕНТЫ ЗАПИСЫВАЕМЫХ СЦЕНАРИЕВ
_______________________________
Когда вы используюте выборку SCRIPTS/BEGIN RECORD
Парадокса или открываете запись сценариев клавишей ALT F3,
Парадокс автоматически записывает клавишу в сценарий.
Записанные сценарии вы можете увеличивать, связывая их в
более тщательно сделанный сценарий. Вы можете использовать
также PAL для того, чтобы упаковать вместе любое число
записываемых сценариев в большие сценарии. PAL
проектировался для того, чтобы помочь быстро и просто
развивать простые и сложные программы и системы.
Эта глава имеет большое значение для вашей работы с PAL
путем просматривания элементов, которые включают в себя
записанные сценарии.
Записанные сценарии содержат последовательность
ключевых слов и команд PARADOX`a. Четыре класса элементов
могут присутствовать в написанном сценарии: выбор меню,
специальные клавиши PARADOX`a, символьные строки в
кавычках, представления вопросов.
>>>> Выбор меню - где бы вы не осуществляли выбор из
меню или некоторых типов PARADOX`a (таких как имена
некоторых таблиц, созданных вами ) во время взаимодействия
с меню, меню появляется в сценарии, заключенным в скобки ({
}).
>>>> Специальные клавиши PARADOX`a - где бы не нажимали
клавиши, которые имеют специальное назначение в PARADOX`е,
такие как функциональные клавиши, клавиши управления
- 13 -
курсором, последовательность ключевых команд ( [Ctrl] [ R ]
), или другие клавиши, такие как [Enter] или [Esc], нажатая
клавиша записывается используемыми, зарезервированными
словами ( такими как EDITKEY для [F9] (EDIT)).
>>>> Строки в кавычках - когда вы набираете строки, в
свободном пространстве меню - имя редактируемой таблици,
номер формы, или отчета - строки записываются, заключенными
между двойными кавычками.
Например:
Выбор из меню Специальные команды
/ / \ / / \
{Modify} {Sort} {stock} {stksrot} Down "1" DO_IT! Menu
{Scripts}{EndRecord}
>> Когда вы запишете предложения запроса с помощью ус-
луги scripts/querysave PARADOX запишет графическое
представление запрсов в программу. Если у Вас имеется
таблица:
WorkSpase
NOTES---Company Name---Last Update---Notes 1---Notes 2
: : : :
: +S.. : +>=1/30/85 : + : +
: : : :
: : : :
то графическое представление запроса выглядит следующим
образом:
Query
NOTES:Company Name:Last Update :Notes 1:Notes 2
: CHECK S.. : CHECK >=1/30/85: CHECK : CHECK
- 14 -
EndQuery
Следующий параграф рассматривает каждый из четырех эле-
ментов, записываемых в сценарии.
ВЫБОР МЕНЮ
PARADOX заключает в фигурные скобки все выборы, которые
вы можете сделать из меню и все другие типы, которые вы
получаете во время взаимодействия с меню, такие как отклик
на приглашение,
Заметим, что PARADOX не записывает каждое ключевое
слово, которое вы выбираете пока находитесь в меню. Он
записывает только выбранные вами пункты меню , или
значения, которые вы предусмотрели в отклике на приглашение
меню.
Команда главного меню Образец директории
/ \ печатается в отве-
/ Команда Tools меню \ те на запрос
/ \ \
/ \ \
{Tools} {Info} {Inventory} {Files} {su*.*} Menu
{Scripts} {EndRecord}
Например, PARADOX не записывает каждое ключевое слово,
которое вы выбираете при нажатии клавиш управления курсором
в меню, или при использовании клавиши [BackSpace] для
стирания символов. Программа не будет записывать
последовательность, в которой вы пытаетесь выбрать таблицу
или сценарий, которые на самом деле не существуют.
СПЕЦИАЛЬНЫЕ КЛАВИШИ
Во время записи сценария вы нажимаете одну из
специальных клавиш PARADOX`a, имена этих клавиш
- 15 -
записываются. В случае, когда нажатая клавиша записывается,
имя специальной клавиши представляется в комбинации верхних
и нижних букв, для того, чтобы было легко читать. В
таблице, приведенной ниже приведена каждая специальная
клавиша и ее представление в скрипте.
.
- 16 -
Специальные клавиши в скриптах
_____________________________________________________
Группа Клавиша Представление
в скрипте
_____________________________________________________
Управление [HOME] Home
[End] End
[PgUp] PgUp
[PgDn] PgDn
[<-] Left
[->] Right
[Стрелка вверх] Up
[Стрелка вниз] Down
[Enter] Enter
[Backspase] Backspase
[Tab] Tab
[Ins] Ins
[Del] Del
[Esc] Esc
[Shift][Tab] ReversTab
[Ctrl][Break] CtrlBreak
[Ctrl][Home] CtrlHome
[Ctrl][End] CtrlEnd
[Ctrl][<-] CtrlLeft
[Ctrl][->] CtrlRight
[Ctrl][Backspase CtrlBacks
[Ctrl][PgUp] CtrlPgUp
[Ctrl][PgDn] CtrlPgDn
Специальные Ctrl [Ctrl][D] Ditto
последовательности [Ctrl][E] Editor
[Ctrl][F] FieldView
[Ctrl][O] DOS
[Ctrl][R] Rotate
[Ctrl][U] Undo
[Ctrl][V] VertRuler
[Ctrl][Y] DeleteLine
- 17 -
Функциональные [F1] Help
клавиши [F2] DO_IT!
[F3] UpImage
[F4] DownImage
[F5] Example
[F6] Check
[F7] FormKey
[F8] ClearImage
[F9] EditKey
[F10] Menu
Функциональные [Alt][F3] InstantRecord
клавиши с Alt [Alt][F4] InstantPlay
[Alt][F5] FieldView
[Alt][F6] CheckPlus
[Alt][F7] InstantReport
[Alt][F8] ClearAll
[Alt][F10] PALMenu
Стрелки, нажатые в области меню и любое сделанное
исправление в идентификаторах директория или таблице не
записываются в сценарий.
Клавиша счетчика строк
показывает номер строки
\
\
{Report}{Change}{stock}{R}{Stock Report} VertRuler Menu
{Field}{Unit Prise}{Sum}{Overall} End Up Up Up Up Right
Right Enter Enter Enter DO_IT! {Scripts} / {End-Record}
\ /
\ [стрелка вверх] продвижение
\ к 17 строке в нижней части
\ страницы
[->] продвижение на два пробела
[End] клавиша продвижения к концу описания отчета
(21строка)
- 18 -
СТРОКИ В КАВЫЧКАХ
Когда вы набираете текст свободного пространства меню
во время записи сценария, текст будет представляться в
сценарии как строка символов, заключенных в двойные
кавычки. Такие строки создаются, когда вы вводите данные в
таблицу или форму во время редактирования или записи
данный, когда вы вводите дословно форму или детали отчета,
когда вы устанавливаете порядок сортировки в сортируемых
формах и когда вы вводите во многие другие места в PARADOX.
Ниже приведен скрипт, который создает новую таблицу,
названную orders, устанавливает ее стьруктуру, помещает ее
в рабочую область, и затем заполняет первые пять записей:
{Create} {orders} "Month" Right "A30" Down
"Week} Right "N" Down
"Customer" Right "A30" Down
"Part No" Right "N" Down
"Quan Ordered" Right "N" Down
"Order Date" Right "A30" DO_IT! {View}{purchase} EditKey
Enter "2" Right "Acme Hardware" Right "10028" Right "23"
Right "1/31/84/" Down
"June" Right "2" Right "Acme Hardware" Right "27001"
Right "23" Right "1/31/84" Down
DO_IT! Menu {Scripts} {End-Record}
ПРЕДСТАВЛЕНИЕ ЗАПРОСОВ
Как сказано в 10 главе "Руководства для пользователя
PARADOX`a" вы можете включать вопросительные утверждения в
запросов при помлщи выбора QuerySave из меню сценариев пока
вопросительные высказывания отображаются в рабочем
пространстве.
- 19 -
При использовании QuerySave, запросы накапливаются в
графическом виде, также и появляются на экране. Это делает
утверждения запросов видимыми на экране и его
представлением как QuerySave в сценарии.
PRODUCTS-----Stock#----Description---Quant----Price
/ :++9999 : :>10 \ :+
/ : : : \ :
/ \
/ \
Имя таблицы \
\ Имя поля
\
QUERY
Products: Stock# : Quant : Price :
: CHECKPLUS_9999 : >10 : CHECK :
ENDQUARY
Как вы можете видеть, структура форм запросов
представленных в сценарии использует вертикальные линии.
Содержание форм запросов заключено в специальные служебные
символы PAL Query и EndQuery.
Есть несколько существенных отличий между существующей
формой запроса и ее представлением в сценарии. Во первых,
контрольный признак используемый в формах запроса
обозначается служебным словом CHECK "CHECK-PLUS"
порождаемых нажатием [ Alt ] [ F6 ], представляется
служебным словом СHECK-PLUS. Элемента примеров, которые
отображаются в реверсивном изображении в PARADOX`а,
представляются в сценарии с помощью знака подчеркивания
(Например__123). Наконец, не все поля в вопросительных
формах воспроизводятся в QuerySave, включаются только те
поля, которые содержат признак выбора или критерии выбора.
Возможно редактирование формы запроса, котрая
накоплена в сценарии с помощью редактора сценария. Однако,
если большие изменения, то лучше использовать
- 20 -
непосредственное редактирование. Выберите Scripts/Play из
главного меню Парадокса.
На экране появится форма запроса. После изменения
сохраните запрос при помощи QuerySave. Этод метод
предпочтительнее, потому что, представление запроса в
сценарии не обеспечивается структурной поддержкой.
Например, поля в формах запроса являются растягиваемыми,
т.е. они расширяются, когда вы хотите ввести в них
информацию, которая не помещается в прежних границах. Этой
эластичности не существует в сценарном представлении
вопросительных форм.
СБОРКА СЦЕНАРИЕВ
Вы можете создать хранимый вопрос используя
Scripts/BeginRecord, выбирая Ask из меню и заполняя форму
запроса, в этом случае сложнее будет читать сценарий,
потому, что вы будете видеть только серию ключевых слов.
И Т О Г И
_________
Когда бы вы не записывали сценарий в PARADOX`е,
ключевые слова представляются при помощи четырех типов
элементов: выбор меню, обозначение специальных клавиш,
строки в кавычках, формы запросов.
Вы можете редактировать сценарий с помощью редактора
сценариев (рассматриваемого в следующей главе). Редактор
используется для изменения и увеличения сценариев
соединением их вместе с использованием команд PAL.
.
- 21 -
Г Л А В А 3
___________________________________________________________
Р Е Д А К Т О Р С Ц Е Н А Р И Е В PAL
___________________________________________________________
Редактор сценариев PAL это среда в которой вы можете
составлять, комбинировать, печатать и редактировать
сценарии PARADOX`a. Сценарии являются просто текстовыми
файлами ASCII со специальным расширением ".SC", и именно
поэтому они могут быть записаны и редактированы любым
текстовым редактором. Однако, ввиду того, что редактор
сценариев полностью совместим с PAL и PARADOX`ом, для вас
остается только выбрать между редактором,Парадоксом или
PALом.
Таким образом, часто более удобно использовать
Редактор PAL, хотя его возможности по введению текстов не
могут поддерживаться в других редакторах.
Выбор READ в меню редактора, который рассмотрен ниже,
позволяет записать в составленный сценарий другой сценарий
и после этого выполнить в нем другие сценарии. Это простой
пример использования Редактора для комбинации маленьких
записываемых сценариев в большие сценарии.
СОСТАВЛЕНИЕ И РЕДАКТИРОВАНИЕ СЦЕНАРИЕВ
_______________________________________
В PARADOX`е и PAL вы можете создать сценарии в
следующих различных случаях:
Вы можете использовать Script/BeginRecord и
Scripts/EndRecord выборки меню из меню PARADOX`a или PAL
меню. записанные ключевые слова будут представляться в
сценарии с учетом специальных условий, описанных во второй
главе.
Используйте характерные черты сценария записей
- 22 -
Парадокса для записи сценария нажимая [ ALT ] [ F3 ] в
начале и в конце последовательности ключевых слов, которые
вы хотите записать. Ваши ключевые слова будут записываться
в сценарий с именем instant.
С помощью услуги Scripts/QuerySave для того чтобы
записать предложения запросов, как обьясняется в Главе 2,
QuerySave размещает графическое представление предложения
запроса в сценарии.
Используйте Редактор для составления сценария из
сборки. Используйте услугу Read из меню редактора для
обьединения маленьких сценариев в большой.
Используйте Редактор для модификации любого сценария
записанного или созданного любым из методов описанных выше.
КАК ВОЙТИ В РЕДАКТОР
Возможны два пути доступа в редактор PAL.
1. Из главного меню PARADOX`a, с помощью
Scripts/Editor. на экране появится меню с двумя
услугами:Write и Edit. Выберите Write, если вы желаете
написать новый сценарий. После этого последует вопрос об
имени нового сценария.
Если вы хотите редактировать существующий сценарий, то
выберите Edit. Последует вопрос об имени сценария, который
вы хотите редактировать. Для того, чтобы выбрать имя
сценария из меню сценариев, необходимо либо набрать имя,
либо нажать [ Enter ]. Заметим, что вы не можете
редактировать сценарий, пока этот сценарий выполняется.
2. Если вы находитесь в отладчике PAL, выбирите Edit из
меню отладчика или нажмите [ Ctrl ] [ E ]. Работа отладчика
и все выполняемые сценарии будут остановлены и вы перейдете
в редактор Сценариев, который вы отлаживаете Курсор
редактора будет установлен в начале строки, содержащей
команду, которая выполнялась в то время, когда вы покинули
отладчик. Это мощное и полезное средство при разработке
программ и процессов. Отметим, что вы можете выполнить
сценарии если находитесь в меню редактора PAL (необходимо
- 23 -
выбрать Play), но не можете проиграть этот сценарий если вы
находитесь внутри редактора.
РАБОТА С РЕДАКТОРОМ
Редактор сценариев PAL простой текстовый редактор. Его
операции являются почти идентичными с генератором отчетов
PARADOX`a. Существенное отличие заключается в том, что
отчеты могут быть неограниченными по ширине, а текстовые
строки не могут быть больше 132 символов в ширину. Сценарий
может содержать практически неограниченное число сторк.
Клавиши [<-- ] и [ --> ] двигают курсор на один символ
влево и вправо соответственно [Ctrl][<-- ] и [Ctrl][ --> ]
сдвигают изображение влево или вправо на один экран.
[ стрелка вверх ] и [ стрелка вниз ] клавиши двигают
курсор на одну строку вниз или вверх в редакторе. [ Home ]
клавиша и [ End ] клавиша двигает курсор к последней
строке. [Ctrl][Home] перемещает курсор горизонтально к
первой позиции строки (к той, которая является самой левой
позицией экрана), в то время как [Ctrl][End] перемещает
курсор к последнему символу строки. (Отметим, что
[Ctrl][End] перемещает курсор не в первую позицию экрана, а
только к последнему символу строки. Если строка чистая, то
влияние [Ctrl][Home] и [Ctrl][End] будут одинаковыми.
[ Ins ]
Когда вы находитесь в редакторе, вы можете использовать
[Ins] клавишу для переключения между режимами вставки и
замены символов.. При вставке информации "Ins" появляется
индикатор "Ins" в правом верхнем углу экрана. Когда вы
вводите в режиме вставки изображения, новые символы
вводятся, а все элементы сдвигаются вправо от вводимых
символов. В режиме замены, наоборот, символы справа от
курсора будут замещаться новыми символами, которые вы
вводите.
- 24 -
[ Del ]
[ Del ] клавиша удаляет символ курсора. Любые символы
справа от курсора будут двигаться влево, когда символ
удаляется при помощи [ Del ]. Операция [ Del ] клавиши
идентична вставке и записыванию символов.
[ <---] [ BackSpase ]
Клавиша удаляет символ слева от курсора. В режиме
вставки, удаление символов [ BackSpase ] приведет к тому,
что все символы от удаляемых символов будут двигаться на
свободное пространство слева. Если вы нажимаете [BackSpase]
в режиме вставки, когда курсор в самой левой позиции
экрана, то начало текущей строки появится в конце
предыдущей строки. В режиме замещения, [ BackSpase ] не
влияет на не удаляемые символы.
[ Enter ]
Для того чтобы вставить новую строку в редакторе,
необходимо просто нажать [ Enter ], когда редактор
находится в режиме вставки. Если курсор находится в самой
левой позиции экрана, пустая строка появится
непосредственно над строкой, где находиться курсор. Строка
с курсором и все строки ниже будут сдвинуты на одну строку
вниз.
Если курсор находится внутри текстовой строки, то
нажимая [Enter], пока редактор в режиме вставки, символ
курсора и все символы справа от курсора перемещаются вниз в
начало следующей строки. Если курсор находится в конце
строки текста [ Enter ] открывает новую пустую строку ниже
текущей.
[ Сtrl ] [ Y ]
[Ctrl][Y] клавиши удаляют текст справа от курсора до
конца строки. Если курсор находиться в самой левой позиции
экрана, нажатие [Ctrl] [Y] удаляет эту строку.
- 25 -
[ Сtrl ] [ V ]
[Ctrl] [V] (Переключатель указателя строк) Отображает
указатель строк, который может быть полезен для нумерации
следа строк в длинном сценарии.
ФУНКЦИОНАЛЬНЫЕ КЛАВИШИ И МЕНЮ
В редакторе доступны три функциональные клавиши: Help
[F1], DO_IT! [f2] и Меnu [F10]. Нажимая [F10], вы
отобразите меню редактора. Это меню содержит следующие
пункты:
- Read (читать)
- Go (идти)
- Print (печать)
- Help (помощь)
- DO_IT!
- Cancel (отменять)
Следующие параграфы рассматривают каждую из этих услуг
в отдельности.
Read (читать)
_____________
Услуга Read позволяет комбинировать сценарии. Используя
эту услугу, можно связать один записанный сценарий с
другими в сценарий, созданный в редакторе. Когда вы выбрали
Read, то появится приглашение, чтобы вы ввели имя сценария,
который нужно прочитать в сценарий, находящийся в данный
момент в редакторе. Вы можете набрать имя сценария, или
нажать [Enter] и выбрать сценарий из меню.
Сценарий, который вы выбрали будет копироваться в
текущий сценарий, начиная со строки непосредственно ниже
- 26 -
текущей строки (строки, где находится курсор) Строки в
первоначальном сценарии ниже строки с курсором будут
располагаться ниже записанного сценария. Чтение одного
сценария в другой не приводит к каким либо изменениям в
считанном сценарии.
GO (идти)
_________
GO выборка заканчивает текущее редактирование сценария,
сохраняя все изменения в сценарии во время редактирования и
непосредственно начинает выполнять сценарий. В
действительности, она сочетается с услугой DO_IT! из меню и
услугой Play из меню PARADOX. Услуга GO очень полезна при
отладке сценариев.
Print (печать)
______________
Выбирая Print из меню, или нажимая [Alt][F7] вы
посылаете копию вашего сценария на принтер. Длина
принтерного вывода по умолчанию равна установленной длине
страницы Отчета в обычной конфигурации программ PARADOX.
Если ваша программа слишком длинная, вы можете по желанию
установить параметр длины страницы "C" для непрерывного
вывода без разбиения на страницы. Смотрите признак "C"
"Руководства пользователя PARADOX" для получения более
подробной информации.
Ширина вывода будет определяться шириной каждой строки
сценария. Если количество символов в строке превышает
максимальную строку принтера, то В зависимости от того, как
ваш принтер работает, строка будет либо продолжаться на
следующей строке, либо отсекаться.
- 27 -
Help (помощь)
_____________
Услуга Help обеспечивает вас помощью о редакторе
сценария. Нажимая Help [F1] получите тот же самый эффект,
как если бы вы выбрали Help из меню.
DO_IT!
______
Выбирая DO_IT! из меню или нажимая [F2] вы сохраните
все изменения сделанные во время редактирования.
Редактирование закончится и вы переместитесь в главное
рабочее пространство PARADOX.
Cancel
______
Услуга Cancel заканчивает редактирование и перемещает
вас в главное рабочее пространство PARADOX`a. без
сохранений изменений, которые вы сделали в сценарии во
время редактирования. Если вы писали новый сценарий, он не
будет записываться на диске.
CЦЕНАРИИ СОХРАНЕННЫХ ЗАПРОСОВ ПРЕДЛОЖЕНИЙ
_________________________________________
Как сказанно в Главе 2, когда вы сохраняете в сценарии
предложения запросов с помощью QuerySave, наглядное
представление формы запроса записывается в сценарий. Вы
можете просматривать, редактировать и комбинировать
QuerySave сценарии так же просто как и любые другие
сценарии. Однако, если вы нуждаетесь в больших изменениях,
то лучше использовать непосредственное редактирование
запроса в рабочем поле.
- 28 -
Для использования PARADOX для редактирования QuerySave
сценариев, проигрывайте сценарии, содержащие вопросительные
выражения выбирая Scripts/Play и наберите имя сценария. На
экране появится форма запроса. Сделайте в ней необходимые
изменения и после этого используйте Scripts/QuerySave для
сохранения запроса. Используя этот метод, вы можете
получить преимущества структурной поддержки PARADOX.
.
- 29 -
Г Л А В А 4
___________________________________________________________
P A L М Е Н Ю
___________________________________________________________
Д О С Т У П Н О С Т Ь М Е Н Ю P A L
_____________________________________
PAL меню снабжает вас мощным средством для создания, и
отлаживания программных документов. Через PAL меню вы
можете записать и исполнять программы, вычислять величины
выражений и исполнять произвольные PAL команды в любом
контексте. Меню также дает возможность вам вызывать
интерактивный Отладчик, описываемый в главе 8.
Вы можете обратиться к PAL меню немедленно почти из
любой точки PAL или PARADOX посредством нажатия клавиш
[ALT] [F10]. В этом случае PAL меню идентично PARADOX меню.
Вы можете выбрать из его из любого меню посредством
использования клавиш, управляющих курсором (освещенный
квадратик) перемещая его по опций меню и выбрав
интересуемый вас нажать клавишу [ENTER]. Так же вы можете
нажать клавишу, соответствующую первой литере имени
выбранной опции.
Если вы находитесь не в отладчике или не в редакторе,
то когда вы вызываете PAL меню, можете видеть отображаемые
опции:
- Play ( исполнять, играть),
- Begin Record ( началоь записи)
- Debug ( отладкак )
- Value ( значение) величина,
- MiniScript ( мини сценарий)
Если вы отлаживаете документ, то нажав [ALT][F9],
получаете доступ в PAL Отладчик меню, который описывается в
главе 8 этой книги. Для редактирования (записи) документа
- 30 -
вы выбираете имеющуюся соответствующую опцию в PAL меню,
которая описывается в конце этой главы.
Когда вы вызываете PAL меню, вы можете выбрать ту или
иную опцию или вернуться назад, нажав клавишу [ESC].
Запросить одновременно можно одну опцию.
P l a y (проиграть)
___________________
Выбранный режим PLAY позволяет проиграть любую
программу. Когда вы выбрали режим Play, программа
выполняется.
Это действие похоже на выбор опций Scripts/Play
(Документы/Выполнение) из главного меню PARADOX. Заметьте,
что если вы находитесь в PARADOX`e обычно в таких опциях
как Edit (Редактор), Report (Отчеты), Forms (Формы), вы не
можете получить доступ к опции Scripts (Документы) меню без
возвращения из них. PAL Menu/Play позволяет вам выбрать
опцию (Play) выполнения программы из фактически любого
контекста без остановки его.
BeginRecord (начало записи)
___________________________
Выбор функции (Begin Record) Начало записи дает
возможность начать запись новой программы. Функция PAL
MENU/Begin Record дает преимущества перед PAL MENU/PLAY -
вы можете начать запись почти с любого контекста, исключая
промежуток уже вами записанный или выполненный.
Как и для функции Scripts/BeginRecord, так и для функци
и PAL MENU/Begin Record, вы указываете имя нового
документа. Если данное имя уже существует, то PARADOX
предупрежда ет об этомт и предлагает вам либо закончить
запись, либо записать под этим именем вашу новую программу,
уничтожив старую.
- 31 -
Debug (Отладчик)
________________
Функция Debug (отладка) позволяет использовать PAL
отладчик для отладки любой программы. Эта функция при
указании вами имени отлаживаемой программы позволяет быстро
войти в PAL отладчик. Если документ охраняется паролем, то
вы также указываете пароль.
Value (Значение)
_________________
Функция Value дает доступ к разным полезным
возможностям системы PAL. Это позволяет непосредственно
определить значение любого выражения системы PAL.
Функцию Value можно считать очень мощным вычислителем,
который может вычислять больше чем обычные арифметические
выражения.
Используя Value, вы можете определить текущие значения
переменных и массивов; вызывать из библиотеки PAL
математические, финансовые и ряд других функций или даже
запросить время.
Когда вы выбрали Value из PAL MENU, вас попросят
записать вычисляемое выражение. Вычисленное PAL системой
его значение высветится в окне сообщений внизу экрана.
MiniScript
__________
Функция позволяет исполнять маленькие скрипты без
обращения к редактору EDIT. Минискрипт полезен при обучении
PAL, когда при вводе различных команд можно сразу-же
просмотреть результат.
.
- 32 -
Ч А С Т Ь II
___________________________________________________________
ОПИСАНИЕ ЯЗЫКА И ТЕХНИКИ ПРОГРАММИРОВАНИЯ
___________________________________________________________
Глава 5. Взаимодействие с пользователем
Управление изображением
Канва языка PAL
Активизация канвы
Изменение внешнего вида канвы
Взаимодействие с пользователем (команда Wait)
Создание меню (команда ShowMenu)
Переключатель содержимого экрана (команда ECHO)
Вызов сценариев из DOS
Глава 6. Блоки PAL-конструкции
Команды
Последовательности команд
Синтаксис команд
Коментарии
Использование верхнего и нижнего регистра
Типы команд языка PAL
Аббревиативные меню команды
Уничтожение с подтверждением
Команды TYPEIN и SELECT
Выражения
Типы данных
Вычисление выражений
Константы
Алфавитно-цифровые константы
Обратный слэш и специальные символы
Числа
Даты
Логические константы
- 33 -
Имена переменных, массивов и процедур
Переменные
Массивы
Обьявление массивов
Элементы массива
Сохранение массивов и элементов массива в памяти
Имена полей как заголовки
Операторы
Оператор +
Оператор -
Опреаторы * и /
Операторы сравнения
Логические операторы (and, or, not)
Порядок вычисления
Ключевые коды PAL
Маска
Как определить маску
Счетчик повторений
Определение возможных частей масок
Определение альтернатив
Комбинирование различных возможностей
Функция формат
Спецификация ширины
Спецификация выравнивания
(The Alingment Specification)
Спецификация состояния
(The Case Specification)
Спецификация редактирования
(The Edit Specification)
Спецификация признака
(The Sign Specification)
Спецификация даты
(The Date Specification)
Встроенные функции
Процедуры
Определения процедур (Defining Procedurs)
Вызов процедур (Calling Procedures)
Создание и использование библиотеки процедур
- 34 -
Запись процедур в библиотеки
Чтение процедур из библиотеки
Распечатка содержания библиотеки
Отладка процедур, записанных в библиотеках
Частные и глобальные переменные
Каманда Private
Поля доступа в изображениях
Доступ к текущему изображению
Доступ к другим изображениям
Присвоение значения полю -
изменение значений полей в изображении
Запросы в языке PAL
Вычисляемые макросы
Специальные скрипты
INIT
INSTANT
Защита паролем
Глава 7 Техника программирования
Комплексный подход
Создание приложений
Методология
Время и место компромиссов в использовании процедур
Глава 8 Отладчик скриптов (Debugger)
Режим отладки
Вход в отладчик
Экран отладчика
Типы ошибок
- 35 -
Управляющие клавиши и меню
Величина (Value)
Шаг (Step) [Ctrl][S]
Следующий (Next) [Ctrl][N]
Идти (Go) [Ctrl][G]
Минискрипт (MiniScript)
Где? (Where) [Ctrl][W]
Выход (Quit) [Ctrl][Q]
Верхний уровень [Ctrl][P]
Редактор [Ctrl][E]
Использование отладчика
.
- 36 -
Г Л А В А 5
__________________________________________________________
В З А И М О Д Е Й С Т В И Е С П О Л Ь З О В А Т Е Л Е М
__________________________________________________________
В Главе 2 описывается как записать и запускать сценарии
автоматически. Являясь потенциально очень мощными, эти
сценарии едва приоткрывают завесу возможностей языка PAL.
Следующие две главы открывают перед вами возможности языка,
выходящие за грани записываемых сценариев и необходимые для
разработки различных приложений. Как вы увидите, совместное
использование этих приложений значительно упрощает работу,
т.к. язык PAL обеспечивает вам полный доступ к ресурсам
ПАРАДОКСА. Вы можете создавать запросы, входные/выходные
пользовательские заказные формы, отчеты и разрабатывать
ваше собственное меню.
В этой главе рассматриваются уникальные конструкции
экрана и входные/выходные конструкции клавиатуры.
Реализация этих возможностей позволит вам разрабатывать
сценарии, контролирующие изображения на экране в то время,
когда на заднем плане производятся операции с обьектами в
рабочем пространстве ПАРАДОКСА
В Главе, детально описываются все компоненты языка PAL
- такие, как команды, функции, выражения, операторы и
определенные пользователем процедуры, а также другие
средства, необходимые вам для разработки программ и
приложений.
У П Р А В Л Е Н И Е И З О Б Р А Ж Е Н И Е М
_____________________________________________
Разработка приложений с помощью языка PAL очень похожа
на постановку пьесы. Аудиторией при этом является, конечно,
предполагаемый пользователь. Как продьюсер и постановщик,
вы должны в полной мере представляеть себе картину, которую
- 37 -
видят зрители. Также как в ходе пьесы многое происходит за
сценой, так и в процессе выполнения операций приложения вы
можете скрыть их от зрителя (например, манипулирование
таблицами в рабочем пространстве).
Управляя процессом "высвечивания" вы можете либо скрыть
выполняемые операции, либо показать фазу процесса.
Вы также можете привлечь пользователя к участию в
процессе. Например, вы можете вызвать на экран форму,
приглащую пользователя просмотреть ее или отредактировать.
По окончании работы пользователя при нажатии им на
соответствующую клавишу управление возвращается к сценарию
для продолжения последующих операций.
Местом постановки вашего сценария является рабочее
пространство ПАРАДОКСА. Именно в нем производится настоящая
работа. В процессе выполнения сценария вы манипулируете
таблицами, формами, отчетами и запросами так, как будто вы
используете ПАРАДОКС напрямую. Единственными реальными от-
личиями являются следующие:
1. Действия чаще контролируются сценарием, чем
командами с клавиатуры;
2. У вас есть возможность скрыть происходящее в рабочем
пространстве операции от пользователя.
Имея связь со всеми режимами и функциями ПАРАДОКС, вы
можете разрабатывать комплексные приложения быстро и
просто.
К А Н В А Я З Ы К А P A L
____________________________
После того, как вы ознакомились с некоторыми моментами
постановки дейстаия на сцене, то осуществлять управление за
изображением, которое видит пользователь в процессе
исполнения сценария, является простым делом.
Представьте себе большой полупрозрачный занавес,
простирающийся от одной стороны сцены до другой. Когда в
зале загорается свет, занавес становиться непроницаемым.
При этом все, что вы можете увидеть - это нарисованное на
- 38 -
нем художниками сцены изображение. Когда же свет в зале
гаснет, а сзади занавеса загорается, происходящее на сцене
за ним становиться видимым для вас.
При работе с языком PAL возникает аналогичная картина.
Как разработчик сценария вы можете контролировать
проницаемость занавеса. Занавес называется- "канва" языка
PAL. Как художник сцены вы можете разрисовать канву PALa
так как вы хотите. Вы также можете управлять "подсветкой"
таким образом, чтобы пользователь в определенные моменты
мог взаимодействовать с рабочим пространством ПАРАДОКСА
(например, работа с таблицами) за канвою.
Важно запомнить, что в любое время в процессе отработки
сценария пользователи наблюдают на экране либо "занавес"
PALa либо рабочее пространство ПАРАДОКСА - всегда либо то,
либо другое, но никогда не одновременно. Запомните также,
что в языке PAL существует ряд операций, таких как
присвоение значений переменным или массивам, выполнение
которых пользователь никогда не видит. Для детального
рассмотрения взаимосвязи между канвой PALa и рабочим
пространством обратитесь к Главе 8 ("Использование
отладчика").
АКТИВИЗАЦИЯ КАНВЫ
При использовании ПАРАДОКСА без разыгрывания сценария
вы никогда не увидите текущее состояние рабочего
пространства. При запуске сценария (например, выбирая опцию
PLAY из меню Scripts), канва неожиданно становиться
непрозрачной. Хотя перед этим, на экране на мгновение
появляется изображение "сцены", но при этом смена
изображений происходит настолько быстро, что сидящие перед
экраном не в состоянии ощутить эту смену. У пользователей
возникает впечатление, что состояние рабочего пространства
ПАРАДОКСА как бы заморожено в том виде, в котором оно
находилось на момент начала работы сценария.
Безусловно это только иллюзия, т.к. в соответствии со
сценарием в рабочем пространстве ПАРАДОКС (РПП) за канвой
над обьектами происходят указанные операции.
- 39 -
По окончании работы сценария "занавес" поднимается,
"зажигаются огни рампы" и перед пользователем снова
предстает РПП.
В качестве примера рассмотрим следующий короткий
сценарий, который помещает таблицы "orders" и "stock" в
РПП.
"View" "orders"
"View" "stock"
(команда View является командой языка PAL, и выбирается
пользователем опцией View из главного меню ПАРАДОКСА)
В процессе работы сценария пользователь не видит
результатов выполнения заданных операций до момента
окончания сценария, после чего две таблицы магически
появляются в рабочем пространстве. В течение короткого
промежутка времени, когда разыгрывается сценарий,
пользователь смотрит на непроницаемую канву виде застывшего
на момент начала работы сценария изображение РПП.
ИЗМЕНЕНИЕ ВНЕШНЕГО ВИДА КАНВЫ
Почти во всех случаях использования PAL у вас может
возникнуть желание изменить изображение канвы на экране в
процессе выполнения сценария.
Например, у вас может появиться желание очистить канву
и высветить на экран приветствие при запуске сценария. Для
очистки и изменения вида канвы в языке PAL предусмотрены
несколько команд. При использовании команды STYLE вы можете
рисовать используя различные видеостили (такие как
негативное изображение или, при использовании палитры
цветной графики и цветного дисплея,-различные цвета)
Вы также можете контролировать положение курсора на
канве. Имея несколько команд изменения изображения экрана,
вы сначала помещаете курсор в требуемую позицию (используя
команду @), а затем, начиная от позиции курсора изображаете
все, что вам угодно.
Запомните, что при завершении сценария канва и любые
сделанные вами на ней изменения исчезают.
- 40 -
ВЗАИМОДЕЙСТВИЕ С ПОЛЬЗОВАТЕЛЕМ (команда WAIT)
В процессе выполнения операций сценария возникают
ситуации, когда вы хотели бы, чтобы пользователь временно
мог увидеть рабочее пространство и поработать с
непосредственно с ПАРАДОКСОМ. Например, вам бы хотелось,
чтобы пользователь заполнил находящуюся на экране форму. По
окончании выполнения этой операции пользователь нажимает
соответствующую клавишу и управление опять переходит к
сценарию. В качестве другого примера можно привести вывод
на экран таблицы и приглашения пользователя
проанализировать ее содержимое.
По окончании этой операции и нажатии соответствующей
клавиши управление также возвращается сценарию.
PAL располагает специальной командой, называемой WAIT,
которая делает такое взаимодействие возможным. При
выполнении этой команды на экране появляется изображение
содержимого РПП и пользователью предоставляется возможность
просматривать и воздействовать на содержимое РПП.
Вполне естественно желание иметь возможность ограничить
круг пользователей при внесении изменений в процессе
взаимодействия. Вы можете, например, предоставить им
возможность только просматривать таблицу, но не
редактировать ее. Или вам бы хотелось разрешить им вносить
изменения в определенную запись, не допуская такой операции
в отношении других записей. Команда WAIT как раз и дает вам
возможность управлять этими и другими ситуациями.
Время действия команды WAIT заканчивается после нажатия
пользователем клавиши, определенной вами, как разработчиком
сценария. В этот момент изображение РПП пропадает и снова
появляется изображение канвы. В момент начала работы
сценария последняя картина экрана на мгновение как бы
застывает. Продолжение выполнения операций, входящих в
сценарий, осуществляется с момента получения следующей за
WAIT командой. Коменда WAIT может быть использована в
- 41 -
процессе работы сценария неоднократно. Порядок выполнения
сценария не обязательно должен быть
последовательным-возможно использование циклов.
СОЗДАНИЕ МЕНЮ (команда ShowMenu)
Другая специальная команда языка PAL, называемая
ShowMenu, позволяет устанавливать режим работы с
пользователем, эквивалентный работе с меню ПАРАДОКСА. При
выполнении команды ShowMenu в верхней части экрана
появляется ряд определенных вами услуг меню. Затем
управление передается пользователю, чтобы он мог сделать
выбор.
Ваше меню работает также, как и меню ПАРАДОКСА. Вы
также можете определить содержание подсказок по одной на
каждую услугу меню, которые будут выводиться на экран во
второй строке меню.
После того, как пользователь сделал выбор (или нажал
[Esc]), указанной вами переменной присваивается значение
выбранной опции и управление возвращается к сценарию. В
этот же момент сценарий вызывает другой сценарий, определя-
ющий операции, которые соответствуют сделанному пользовате-
лем выбору.
ПЕРЕКЛЮЧАТЕЛЬ СОДЕРЖИМОГО ЭКРАНА (команда ЕСНО)
Подчас могут возникать ситуации, когда бы вам хотелось
наблюдать РПП в течение всего времени работы сценария или
выборочно в разные моменты. Это возможно с помощью команды
ЕСНО, которую можно вставить в любое место вашей программы.
Она позволит вам видеть все, что происходит в РПП во время
работы программы. Команда ЕСНО является более мощной, чем
опция Scripts/ShowPlay главного меню ПАРАДОКСА.
- 42 -
В Ы З О В С Ц Е Н А Р И Е В И З DOS
_________________________________________
Помимо возможности выполнить операции сценария,
используя услугу Scripts/Play основного меню ПАРАДОКСА, или
вызывая услугу сценария из другого с помощью команды Play,
существует возможность разыграть их из DOS, набрав
директиву:
PARADOX <имя сценария>
При этом, управляющие функции будут сразу переданы
названному сценарию, минуя этап выведения картинки на
экран, приглашающей в ПАРАДОКС.
Это свойства в совокупности с возможностью
перекодировки сценариев и таблиц позволяет разрабатывать
программы, которые полностью скрывают факт использования
ПАРАДОКСА.
Если вызванный из DOS сценарий заканчивается командой
EXIT, то по окончании его исполнения она приведет к
возвращению из PARADOX'a в DOS. Такие сценарии являются
полностью закрытыми, поскольку конечный пользователь не в
состоянии понять, что сценарий разыгрывается в операционной
среде PARADOX'a.
Если же сценарий заканчивается командой QUIT, то после
исполнения сценария пользователь окажется в операционной
среде ПАРАДОКСА. Такие сценарии, называемые "открытыми"
могут быть использованы для разработки процедур, которые
переводят PARADOX в состояние готовности поддерживать
работу пользователя с данными и другими подобными
операциями.
.
- 43 -
Г Л А В А 6
___________________________________________________________
Б Л О К И С О С Т А В Л Я Ю Щ И Е P A L
___________________________________________________________
В этой главе детально обсуждаются все компоненты PAL,
которые необходимы для работы с ним.
К О М А Н Д Ы
_____________
ПОСЛЕДОВАТЕЛЬНОСТИ КОМАНД
PAL-программа или "скрипт" (сценарий), (мы будем
пользоваться этими терминами, как взаимозаменяемыми ),
состоит из последовательности команд. Для начала или конца
скрипта не требуется специального синтаксиса. При
выполнении скрипта команды в нем исполняются
последовательно. Однако, некоторые команды, такие как IF и
WHILE могут изменять ход управления. Скрипт может также
запускать выполнение другого скрипта (используя команду
PLAY), который, в свою очередь, может запускать еще один
скрипт.
Выполнение скрипта заканчивается, когда команды в
первоначально активизированном скрипте исполнены, или когда
активизируется (вызывается) команда, которая приводит к
завершению скрипта (например, QUIT). В этих случаях
управление возвращается к ПАРАДОКСУ и экран обновляется для
отображения текущего состояния ПАРАДОКСА. Например, скрипт
VIEW "orders" EditKey
размещает таблицу "orders" в рабочем пространстве памяти.
Команда Editkey аналогична нажатию клавиши Edit [F9].
- 44 -
PARADOX останется в режиме Edit с таблицей в рабочей
области. Это верно даже в случае, если выполнение скрипта
инициировано командной строкой DOS.
Если вы хотите вернуться прямо к DOS из скрипта, вы
можете сделать это использованием команды EXIT, которая
имеет такой же эффект, как и услуга EXIT из главного меню
(набора) ПАРАДОКСА.
СИНТАКСИС КОМАНД
Синтаксис PAL'а является свободным по форме. Это озна-
чает, что за небольшими исключениями вы можете поместить
сколько угодно команд, разделенных пропусками в пределах
одной строки. Вы можете также разделить команду между двумя
строками, но будьте осторожны и не допускаете разделения
посередине ключевого слова (дискриптора), наименования
(имени) или числовой величины. Строки не могут быть длиной
более 132 кодовых знаков.
Хотя скрипты при записи создаются, как правило,
размещением нескольких команд на одной строке, вам для
удобства чтения обычно хочется поместить на каждой строчке
только одну или две команды. Для определенных команд таких
как RETURN, STYLE, SETKEY и TEXT, есть правила, содержащие
ограничения на то, что может следовать за командой на
строке. Эти правила детально рассмотрены в описании каждой
из таких команд в главе 9.
КОМЕНТАРИИ
Вы можете включить коментарии в ваши скрипты. Для этого
необходимо поставить знак ";"(точка с запятой) и PAL будет
игнорировать все что следует за ним.
Например:
BEEP BEEP ; сигнал тревоги для пользователя.
Коментарии могут использоваться на любой строке
скрипта. Они могут даже следовать за командами (такими как
RETURN), которые имеют ограничения на размещение команд на
той же самой строке.
- 45 -
ИСПОЛЬЗОВАНИЕ ВЕРХНЕГО И НИЖНЕГО РЕГИСТРА
Командные ключевые слова (дискрипторы) могут быть
составлены из букв верхнего регистра, нижнего регистра.
Например, можно печатать Add, ADD или даже aDd. Тоже самое
относится к названиям таблиц, полей, переменным масивов и
процедур. Регистра имеет значение в том случае, если в
скрипте находятся строки алфавитно-цифровых величин данных.
Например, последовательность "abc" не эквивалентна "ABC".
ТИПЫ КОМАНД ЯЗЫКА PAL
В Главе 2 обсуждаются типы команд, которые появляются в
записываемых скриптах. Они делятся на 4 категории:
-особые команды управления клавишами (например, Menu и
PgUp);
-выбора типа меню (набора альтернатив), заключаемые в
фигурные скобки (например {View});
-последовательности заключенные в кавычках(например,
"James B.Baker");
-запрсы, генерируемые с использованием QuerySave (сох-
ранение запросов).
Наиболее легкий путь включения запросов в ваши програмы
является обьединение их на рабочем поле и запись их в файл
с использованием Scripts/QuerySave, и затем слияние файла с
основным телом вашей программы в скрипт-редакторе.
Большинство других PAL-команд состоит из ключевого
слова, сопровождаемого несколькими параметрами. Команда
BEEP например, состоит из единственно ключевого слова ВЕЕР.
Команда МESSAGE, содержит ряд разделенных запятой
аргументов, как в случае:
MESSAGE "The time is ", TIME()
Одной очень полезной категорией команд являются
"аббревиативные меню-команды". Они являются сокращениями
для последовательностей выборок меню, используемых для
активизации наиболее общих операций ПАРАДОКСА.
Эти команды обсуждаются в следующем разделе.
- 46 -
АББРЕВИАТИВНЫЕ МЕНЮ-КОМАНДЫ
Ряд команд PAL являются сокращеными
последовательностями услуг меню, которые используются для
активизации более общих операций ПАРАДОКСА. Например, вы
можете сказать:
Rename "Stock" "Product" (переименовать "Stock" на
"Product")
На месте услуги записывается последовательность выборки:
Menu{Tools} {Rename} {Stock} {Products}
В таблице 6-1 перечислены команды ПАРАДОКСА для которых
обеспечивается аббревиативные услуги меню.
.
- 47 -
Таблица 6-1
Аббревиативные меню-команды
___________________________________________________________
I Команды I Меню, используемые для операций I
I I доступа через PARADOX I
I_______________________I_________________________________I
I ADD I TOOLS I
I CANCELEDIT I EDIT I
I COPY I TOOLS I
I CREATE I MAIN I
I DELETE I TOOLS I
I EDIT I MODIFY I
I EMPTY I TOOLS I
I EXIT I MAIN I
I PICKFORM I IMAGE I
I PLAY I SCRIPTS I
I PROTECT I TOOLS I
I RENAME I TOOLS I
I REPORT I REPORT I
I SETDIR I TOOLS I
I SORT I MODIFY I
I SUBTRACT I TOOLS I
I UNPASSWORD I TOOLS I
I VIEW I MAIN I
I DOS I TOOLS I
I I I
.
- 48 -
Если вы программируете скрипт в редакторе (Editor),
аббревиативные команды меню являются более легкими для
использования, чем их эквиваленты записанные в форме
скриптов. Однако, если вы моделируете прикладную задачу и
обьединяете маленькие скрипты в большой скрипт, то
программа может содержать как аббревиативные команды меню,
так и последовательности записанных меню-выборок. При
усовершенствовании задачи вы можете заменить куски в виде
записанных меню выборок на аббревиативные команды меню.
Аббревиативные меню-команды являются также более
гибкими, чем их эквиваленты в виде последовательгостей
услуг, так как они могут принимать произвольный вид в
качестве аргументов. Например, чтобы просмотреть таблицу,
имя которой соответствует текущей величине переменной х,
необходимо сказать:
VIEW X
Заметим, что последовательность из меню "Menu{View}{x}"
-это просто вызов на дисплей таблицы, имя которой
обозначено буквой "х".
Чтобы понять как работают аббревиативные команды меню,
давайте посмотрим на аббревиативные команды меню для
образования (формирования) и упорядочивания (сортировки)
таблиц. В этих случаях вы задаете список аргументов к
командам, давая полям имена и типы (в случае создания) или
порядок сортировки (в случае Sort). Закулисно PAL
активизирует режимы "Create" и "Sort", затем автоматически
запрашивает соответствующую серию ключевых строк,
необходимых для образования форм, которые вы обычно
применяете с этими подсистемами.
Вы можете наблюдать последовательность шагов,
вызываемых этими командами, если вы напишете простой
скрипт, включающий их, и затем выполните его используя
выборку Scripts/ShowPlay (cкрипты/показ выполнения) из меню
ПАРАДОКСА.
- 49 -
Так как аббревиативные команды меню воспроизводят
услуги меню, то они могут быть использованы только в
контексте, в котором эти ключевые строки осуществляют
считывание. Например, может быть допущена ошибка, если
команда:
VIEW "orders"
исполнена в контексте (таком как режим EDIT), в котором
{VIEW} не является достоверной выбору из меню.
УНИЧТОЖЕНИЕ С ПОДТВЕРЖДЕНИЕМ
Есть случаи, когда прямая выборка меню требует
подтверждения, например, когда производимый выбор может
вызвать потерю данных, такое подтверждение автоматически
обеспечивается аббревиативными меню-командами. Например,
если вы копируете таблицу "orders" в таблицу "newords"
посредством выбора последовательности из меню:
MENU {TOOLS} {COPY} {TABLE} {orders} {newords}
Однако, если таблица "newords" уже существует, то
другой выбор потребует от вас подтвердить копирование:
{Replace}
C другой стороны, если вы используете аббревиатуру меню
команды:
COPY "orders" "newords"
то подтверждения копирования в этом случае не выдается.
Чтобы по возможности избежать потерю данных в таких
ситуациях, вы можете использовать функцию ISTABLE, для того
чтобы копирование в выходную таблицу из за вашей
невнимательности без подтверждения не происходило.
КОМАНДЫ TYPEIN И SELECT
PAL имеет две команды TYPEIN И SELECT, которые
облегчают вызов из меню ПАРАДОКСА для которых сокращенные
команды не применимы. Подобно сокращенным меню командам,
- 50 -
команды TYPEIN и SELECT допускают использование
произвольных выражений в качестве параметров. Например:
VIEW x
может быть достигнуто с помощью следующего набора команд:
Menu
SELECT "View"
SELECT x
Более подробно описание команд TYPEIN и SELECT смотрите
в главе 9.
В Ы Р А Ж Е Н И Я
_________________
Аргументы PAL команд называются выражениями. Например,
команда
MESSAGE "Сегодняшняя дата ",TODAY()+1
имеет два аргумента: выражение "Сегодняшняя дата " и
выражение TODAY()+1. Выражения строятся из констант,
переменных, операторов и других элементов языка,
обсуждаемых в этой главе. Приведем несколько примеров
выражений:
5
"abcde"
"6*(3+t)
TODAY() > 5/1/60
ТИПЫ ДАННЫХ
Значением PAL выражений может быть любой тип поля ПАРА-
ДОКСА, такой как:
А1 - А255 алфавитно-цифровое
N - число
$ - доллар
D - дата
S - короткое число
Выражениям PAL тип присваивается автоматически.
Например: 5 * 5 -число, а TODAY() - дата. Дополнительно с
типом данных ПАРАДОКСА PAL также поддерживает логический
- 51 -
тип данных (True и False).
Выражение TODAY() > 5/1/60 будет True если сегодняшняя
дата больше даты 1.5.60 и False, если меньше. Логический
тип данных не может быть использован как тип данных в
таблице. Однако, он может быть использован во всех других
случаях, в которых выражение используется.
ВЫЧИСЛЕНИЕ ВЫРАЖЕНИЙ
Вы можете вычислить значение выражения в любое время,
выбрав Value из PAL меню. Применяя в качестве основного
калькулятора Value позволит вам запрашивать величины,
переменные, элементы массива или любое другое выражение
ПАРАДОКСА.
Необходимо различать Value и MiniScript. Value
используется для вычисления выражения, а MiniScript - для
выполнения последовательности команд. Если вы выбрали одно,
когда вы находитесь в другом, это приведет к ошибке в
программе.
Следуюшие пункты описывают различные элементы языка,
которые входят в выражения.
К О Н С Т А Н Т Ы
_________________
Элементы простого выражения являются
алфавитно-цифровые, числовые, дата и логические константы.
АЛФАВИТНО-ЦИФРОВЫЕ КОНСТАНТЫ
Алфавитно-цифровые константы часто называют строками. В
PAL командах строки должны быть выделены с обеих сторон
кавычками. Максимальная длина строки - 255 символов.
Пример: "Hello"
- 52 -
ОБРАТНЫЙ СЛЭШ И СПЕЦИАЛЬНЫЕ СИМВОЛЫ
Некоторые ASCII символы не могут быть напечатаны в
строке. Например, двойная кавычка ("). Для того, чтобы
можно было их использовать, применяется обратный слэш (\).
Например:
"\"Эта строка выдает двойную кавычку \" "
Строка заключена в кавычки. Если необходимо в строке
иметь обратный слэш, его надо удвоить, т.е. написать
"\\123\\". После обратного слэша может быть введено любое
трех значное число, которое воспримется как соответствующий
ASCII код.
В таблице ниже, приведены специальный слэш последова-
тельности, используемые обычно с командой PRINT.
---Последовательность-----Функция-------------------
\t Табуляция [Cntl][I]
\n Новая строка [Cntl][J]
\f Перевод строки [Cntl][L]
\r Возврат каретки [Cntl][M]
ЧИСЛА
Числовые константы записываются как последовательности
чисел. Если число отрицательное, то перед ним ставится знак
"-"(минус), если число положительное, то плюс необязателен.
Точка используется для отделения дробной части от целой.
Например: 25
3.75
-17.00000000001
5.6Е+17
Числовые константы представляются как 64 битное поле в
диапазоне от (+-10Е-307) до (+-10Е308). Это позволяет
использовать 15 знаков после запятой.
Все числовые константы имеют тип "N". Константы типа
"N" можно всегда использовать в выражениях где присутствуют
данные типа "D" или "S".
- 53 -
ДАТЫ
Даты могут быть представлены в двух формах: через слэш
и через тире.
Например: 5/1/1960
1-may-60
Для дат, чьи года начинаются с числа "19", первые два
числа могут быть опущены.
Например: 5/1/60
ЛОГИЧЕСКИЕ КОНСТАНТЫ
Это True и False. Вы можете писать их как прописными
буквами, так и строчными буквами.
ИМЕНА ПЕРЕМЕННЫХ, МАССИВОВ И ПРОЦЕДУР
______________________________________
Имена переменных, массивов и процедур пишутся по
следующим правилам:
>> первый символ должен быть буквой;
>> последующие символы должны быть буквы, числа или
следующие специальные знаки: ., $, !, _(подчеркивание);
>> верхний и нижний регистры символов игнорируются;
>> зарезервированные слова не используются;
>> имена могут быть любой длинны, но не более 132
символов;
>> имена не могут содержать пробелы.
Примеры:
foo правильно
time.period правильно
!claim неправильно
claim! правильно
This_is_a_name правильно
5a6 неправильно
abc xyz неправильно
- 54 -
П Е Р Е М Е Н Н Ы Е
___________________
Переменные используются для временного хранения данных.
Величины любого типа ПАРАДОКСА могут быть сохранены в
переменных. Для того, чтобы переменной присвоить какое либо
значение, используют команду (=).
Например: переменной х присваивается строка "tann"
х = "tann"
Если переменной х было присвоино ранее какое либо
значение, то оно теряется. Некоторые другие команды (такие
как SHOWMENU, ACCEPT и LOCATE) присваивают величины
переменным как команды с побочным эффектом. Переменные
должны быть определены перед тем, как использоваться в
выражении.
Например, если команда
MESSAGE "Величина х=", х
выполняется перед тем, как х будет присвоена величина,
программа завершится с ошибкой.
Функция ISASSIGNED может быть использована для
проверки, присвоено или нет значение переменной.
В своей программе вы можете использовать переменных
столько, сколько доступно оперативной памяти.
Заметим, что переменные имеют простые типы данных.
Например, последовательности команд:
х="tann"
х=5+5
х=1-may-60
Переменная х в первом случае-строка, во втором-число, в
третьем-дата.
Переменные сохраняют свои значения только в одном
сеансе работы ПАРАДОКСА. Вы, например, можете выделить
переменную в программе и позднее использовать ее из других
программ. Величина теряется тоько тогда, когда мы выходим
- 55 -
из среды ПАРАДОКСА или используем команду RELEASE. Если вы
хотите, вы можете сохранить с помощью команды SAVEVARS
текущие переменные (все или часть) в файле и затем
восстановить их позднее. Это свойство полезно для отладки.
Как упоминалсь выше,команда RELEASE может быть использована
для "отмены назначения" одной или нескольких перемеррых.
Эта операция возвращает их в назначенные ячейки памяти.
М А С С И В Ы
_____________
PAL поддерживает понятие описанной переменной как
массив. (или "список"). Массивы используются для временного
описания последовательности данных. Одно из наиболее частых
применений заключается в хранении и распределерии всех
данных одновременно.
Специальные команды COPYFROMARRAY и
COPYTOARRAY,поддерживаются PALом для обеспечения простоты
использования массивов.
ОБЬЯВЛЕНИЕ МАССИВОВ
Различные простые переменные, списки должны объявляться
до того, как их элементы получат значения. Массив
объявляется с использованием команды ARRAY и создает список
с размером (т.е. количеством элементов) заданным вами.
Например:
ARRAY Т(5)
объявляет список имён Т, состоящий из пяти элементов
Т(1),Т(2),........Т(5).
В принципе, массивы могут объявлять до 15000 элементов.
На практике, однако, размер и количество массивов,
описываемых вами ограничено размером памяти.
Размер списка, который вы точно определяете при
объявлении массива, может быть произвольным выражением.
- 56 -
Например, если переменная х имеет начальное значение 5,то:
ARRAY Т(x+3)
Массив Т объявлен как список из восьми элементов.
Правила обьявления массивов такие же, как для переменных.
ЭЛЕМЕНТЫ МАССИВА
Вы можете представить каждый элемент массива как
независимую переменную. Так же, как простым переменным,
элементам массива до того как они будут использованы в
программе, должны быть присвоены начальные значения.
Например, после использования следующих команд значение
выражения Т(3)+2 примет значение 12, тогда как значение
Т(4)+2 приведет к ошибке программы:
ARRAY Т(5) ; объявляет Т как массив размером 5
х=2 ;присваивает 2 переменной х
Т(х+1)=10 ;присваивает 10 Т(3)
В выражении Т(х+1), (х+1) называется "описанием
выражения". Описания выражения должно отражать количество
доступных чисел от 1 до размера массива (сключение из этого
правила объясняется далее в документации).
Как и в большинстве языков программирования PAL дает
возможность хранить в одном массиве значения данных
различных типов. Например, справедлив следующий набор
команд:
ARRAY Т(3)
Т(1)="АВС"
Т(2)=3.14
Т(3)=5/1/60
Что касается переменных, то переназначение элемента
приводит к потере предыдущего значения.
СОХРАНЕНИЕ МАССИВОВ И ЭЛЕМЕНТОВ МАССИВА В ПАМЯТИ
Так же, как переменные, массивы и их элементы сохраняют
свои значения во всем сеансе работы ПАРАДОКСА. Если массив
переобъявлен, его начальная декларация, вместе со
значениями всех элементов, изменяется. Описание массива и
его составляющих также изменяется в памяти.
- 57 -
Хранение и перенос значений.
Одна из наиболее полезных областей применения массивов
в PALе - хранение полей данных всех записей в формате
ПАРАДОКСА. Массивы при этом могут использоваться для
хранения записей временно, и переносить записи с одного
места на другое.
Две специальные команды PALа облегчают использование
массивов, это: COPYTOARRAY и COPYFROMARRAY. Каждая из этих
команд предпологает, что на экране высвечено нужное место.
Команда COPYTOARRAY создает новый массив и копирует поле
текущих записей в массив. COPYFROМARRAY копирует хранимые
параметры текущего масCOPYTOARRAY в текущую запись.
Пример:
COPYTOARRAY Т ; создает массив ,хранит текущие
записи в нем
DOWN ; переходит к следующей записи
EDITREY ; режим редактирования
COPYFROMARRAY Т ; переносит значение
DO-IT! ; окончание редактирования
Обычно COPYFROMARRAY автоматически создает массив, с
именем названным в ее аргументе и больше никаких описаний
не требуется. Также обычно ПАРАДОКС должен быть в состоянии
редактирования для использования COPYFROMARRAY.
ИМЕНА ПОЛЕЙ КАК ЗАГОЛОВКИ
Когда вы создали массив с использованием команды
COPYFROMARRAY, вы можете описать доступ к особым полям
массива имен. Например, если запись, хранимая в массиве Т
является описанием таблицы orders и если PART NO является
- 58 -
полем данной таблицы, то выражение:
Т("PART NO")
описывает параметры поля "PART NO", хранимые в описанной
записи.
Этот тип описания удобен ,т.к. каждый массив,
созданный COPYTOARRAY имеет размер на один больше, чем
количество полей в хранимых в копии. Имена текущих полей
таблицы хранится в первом элементе массива, первый элемент
массива располагается во втором элементе массива и т.д.
Пока массив имеет имя Т("PART NO), PAL смотрит в формат
имен в первом элементе массива. Затем он интерпретирует это
поле как спиок имен полей таблицы. Поле имен превращается в
поле номеров, увеличенное на один, и используется как
индекс в массиве.
Например,если "PART NO" является вторым полем
упорядоченной таблицы и Т(1) содержится в поле "оrders",то
Т("PART NO") эквивалентно: Т(2).
Команда COPYFROMARRAY пропускает первый элемент своего
аргумента и начинает перенос значений со второго элемента.
Смотрите описание команд COPYFROVARRAY и COPYTOARRAY в час-
ти 9 более подробно.
О П Е Р А Т О Р Ы
__________________
Выражения могут содержать следующие из четырех
основных операторов, используемых для работы с данными
ПАРАДОКСА:
+
-
*
/
В PALе также используются операторы сравнения:
= равно
<> не равно
< меньше
<= меньше или равно
> больше
>= больше или равно
и логические операторы (И,ИЛИ,НЕ).
- 59 -
ОПЕРАТОР +
Действие оператора зависит от типов входящих в него
операторов. Имея два оператора, оператор + возьмет их
арифметическую сумму. Имея две строки, оператор + их
"склеит". Имея дату в качестве первого аргумента и
положительное или отрицательное число N в качестве второго
аргумента, он вычислит дату N дней "в сторону " от заданной
даты.
Примеры:
45+50.2+5 ; имеет величину 100.2
"Income"+"Tax" ; имеет величину "Income Tax"
"Income"+" " ; имеет величину "Income"
" "+" " ; имеет величину " "
12/17/83+7 ; имеет величину 12/24/86
Никакие другие комбинации типов аргументов с оператором +
не применяются. Например, 7+12/17/83 приведет к ошибке,т.к.
первый аргумент месяц.
ОПЕРАТОР -
Может быть использован для обозначения отрицательного
числа или как оператор вычитания.
Для чисел, оператор используется для вычисления разницы
между ними, для даты он может использоваться как для
вычисления числа дней так и для вычисления разницы (в днях)
между двумя датами. Например:
25-17 ; имеет значение 8
-(5+3) ; имеет значение (-8)
independence-3 ; имеет значение 7/1/86
independence-7/1/86 ; имеет значение 3
Никакие другие комбинации аргументов не используются с
оператором (-).
- 60 -
ОПЕРАТОРЫ * и /
Оператор * (умножение) и / (деление) может быть
использован с числовыми аргументами. Деление на нуль дает
результат 0.
ОПЕРАТОРЫ СРАВНЕНИЯ
Выражения могут содержать следующие операторы сравнения:
= равно
<> не равно
< меньше
<= меньше или равно
> больше
>= больше или равно
Эти операторы могут использоваться для сравнения любых
типов данных, исключая логические. Действие таких
операторов, таких как <и> зависит от типов аргументов. Для
строковых величин используется нумерация ASCII; для данных
используется хронологическая нумерация; для логических
FALSE рассматривается как предшествующий TRUE.
Например:
5+1 < 6*2 ;дает TRUE
independence = 7/4/86 ;дает TRUE
Trua <> False ;дает TRUE
"abc" = "ABC" ;дает FALSE
"ab" = "ab" ;дает FALSE
"ab" < "ab" ;дает TRUE
independence
|