AGG Software
В начало  Назад  Дальше

Выражения, используемые при записи макроса

Для записи макроса можно использовать логические выражения, которые позволят Вам более гибко подходить к заполнению форм. Логические выражения оперируют понятиями "истина" и "ложь". Здесь значению "истина" будет соответствовать символьное значение 'Y', а значению "ложь" - 'N'. Во всех выражениях на строками выполняется регистронезависимое операции. Т.е. y=Y.

Можно использовать следующие выражения:

XXX + YYY
в данном выражении производится сложение двух параметров XXX и YYY. Автоматически + заменяется пробелом между параметрами XXX и YYY.

(XXX)?YYY:ZZZ

где XXX - логическое выражение, в случае если оно истинно, то выполняется выражение YYY, иначе выполняется ZZZ

XXX == YYY
в данном выражении производится сравнение двух элементов, результатом этого выражения является значение "истина" если XXX равен YYY или "ложь" если XXX не равен YYY.

XXX != YYY
в данном выражении производится сравнение двух элементов, результатом этого выражения является значение "истина" если XXX не равен YYY или "ложь" если XXX равен YYY.

XXX && YYY
в данном выражении выполняется операция "логическое И" для двух элементов, результатом этого выражения является значение "истина" если XXX и YYY являются значениями "истина" и результат будет "ложь" во всех остальных случаях.

XXX OR YYY
в данном выражении выполняется операция "логическое ИЛИ" для двух элементов, результатом этого выражения является значение "ложь" если XXX и YYY являются значениями тира "ложь" и результат будет "истина" во всех остальных случаях.

XXX || YYY
в данном выражении в случае, если строка или выражение XXX строка нулевой длины будет вычислено и возвращено в качестве результата выражение YYY. В случае, если строка XXX не нулевой длины, то результат будет равен XXX.

XXX IN YYY
результатом этого выражения будет "истина" если подстрока XXX присутствует в строке YYY и результат будет "ложь" во всех остальных случаях.

XXX@YYY
результатом этого выражения будет элемент в позиции YYY (счет начинается с 0) из массива элементов XXX. Элементы массива могут разделяться любыми символами разделителями (пробел, табуляция, запятая, точка и т.п.)
Пример: Win95 Win98 WinMe@2
Результат: Win98

Выражения могут сложными и вложенными. При этом необходимо следить за следованием открывающихся и закрывающихся скобок.
Пример: (XXX1==(YYY2&&XXX2))?YYY1:ZZZ1

##VALUE##
- значением этого выражения является значение элемента формы, заполнение которого производится.
Пример: Предположим происходит заполнение формы в которой значение "включенного" чекбокса равно win95 (при составлении макроса удерживая клавишу Alt можно увидеть значение заполняемого элемента формы). Тогда написанное нами выражение ##VALUE## IN Win95,Win98,WinMe вернет в качестве результата логическое значение "истина". В результате чего галочка в чекбоксе будет выставлена. Поскольку в качестве строки Win95,Win98,WinMe может использоваться вычисляемое выражение, то можно обрабатывать сложные условия.

В качестве параметров выражений могут выступать значения из PAD описания Вашего проекта. Коды полей приведены в следующей секции.

Примеры формирования выражений для заполнения полей некоторых типов.

Как заполнить "чекбокс (checkbox)"?

Галочка чекбокса выставляется в том случае, если значению этого чекбокса присваивается значение "истина". Поскольку в Fast Submit для обозначения значения истина используется текстовая строка 'Y', то необходимо в результате выражения получить значение 'Y'.

Допустим, что включенный чекбокс в форме означает, что программа поддерживает ОС Wondows 95. Поскольку список операционных систем в PAD описании проекта представлен в виде списка Win32bit,PC,Win95,Win98,WinME,WinNT 3.x,WinNT 4.x,WinXP,Windows2000, то нам необходимо проверить лишь наличие строки Win95 в параметре Program_OS_Support. Для этого воспользуемся выражением вида XXX IN YYY. В результате наш скрипт для заполнения чекбокса будет иметь вид: Win95 IN Program_OS_Support. Поскольку сравнение текстовых строк происходит регистронезависимо, то верна будет также запись вида win95 IN program_os_support.

Как заполнить "поле ввода (edit,memo)"?

Самый простой случай, это когда полю ввода просто присваивается значение из PAD описания. В этом случае выражение будет иметь вид XXX, где XXX один из параметров PAD. Если нам в поле ввода необходимо поместить, например значение нозвания программы и ее версии, то выражение пример вид XXX + YYY, XXX = Program_Name, а YYY = Program_Version.

Более сложный вариант позволяет создавать учитывать несколько значений. Предположим программы могут распространяться как одним человеком, так и компанией. Тогда в качестве автора можно укзать выражение вида: Company_Name||Author_First_Name + Author_Last_Name
В этом случае, если поле с название компании в PAD ек заполнено, то будет вычеслено выражение Author_First_Name + Author_Last_Name и результат этого выражения будет присвоен элементу формы.

Для заполнения некоторых полей (например некоторые сайты требуют внесения ключевых слов из описания в отдельные поля) может потребоваться выделять элемент из списка значений. В следующем примере показано как выделяются первые 4 ключевых слова из английского описания продукта. Если строка ключевых слов имеем вид "hardware, com, rs232, RS232, sniffer, developer, serial, spy", то:
_English_Keywords@1 = hardware
_English_Keywords@2 = com
_English_Keywords@3 = rs232
_English_Keywords@4 = RS232

Как заполнить "переключатель (radiobutton)"?



Copyright © 1999-2005, AGG Software.
All rights reserved.