| ||||
|
Выражения, используемые при записи макроса
| ||||
|
Для записи макроса можно использовать логические выражения, которые позволят Вам более гибко подходить к заполнению форм. Логические выражения оперируют понятиями "истина" и "ложь". Здесь значению "истина" будет соответствовать символьное значение '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)"? | ||||
|