EMPTY() | Определяет, является ли результат выполнения выражения пустым. |
IF() | Вычисляет одно из двух выражений в зависимости от заданного условия. |
IIF() | Return the result of an expression based on a condition |
QOUT() | Выводит список выражений на консоль. |
TRANSFORM() | Преобразует заданное выражение в форматированную строку символов. |
TYPE() | Определяет тип выражения. |
VALTYPE() | Определяет тип данных выражения. |
IF(<лог. условие>, <выражение 1>, <выражение 2>) --> вычисленное значение выражения
<лог. условие> | - это логическое выражение, управляющее выбором |
выражения для расчета. | |
<выражение 1> | - выражение любого типа, значение которого |
возвращается, если <лог. условие> - "истина" (.Т.). | |
<выражение 2> | - выражение любого типа, значение которого |
возвращается, если <лог. условие> - "ложь"(.F.). Этот аргумент | |
необязательно должен быть того же типа, что и <выражение 1>. |
IF() возвращает результат вычисления аргумента <выражение 1>, если <лог. условие> оценивается как "истина" (.Т.), или аргумента <выражение2>, если <лог. условие> оценено как "ложь"(.F.). Тип данных возвращаемого значения зависит от типа данных вычисляемого аргумента.
IF() - это логическая функция преобразования, одна из наиболее мощных и гибких функций в xClipper. Она обеспечивает механизм оценки условия внутри выражения. С помощью нее можно преобразовать логическое выражение в другие типы данных.
Следующий пример демонстрирует преобразование логических данных в арифметические: lPaid = .T. ? IF(lPaid, 1, 0) //Результат: 1 В этом примере логическое поле принимает различные значения в зависимости от того, заплатил Заказчик или нет: @ ROW() + 1, 25 SAY IF(lPaid, SPACE(10), "Нет оплаты") Вы можете менять номер колонки печати в зависимости от значения логической переменной, как показано в примере: @ ROW(), IF(InHospital, 10,12) SAY "X" Вы можете использовать также IF(), чтобы заставить LABEL FORM печатать пустые строки при вводе следующего выражения, когда создается метка с помощью RL.EXE: IF(EMPTY(Company), CHR(255), Company)
[I]IF(<lCondition>, <expTrue>, <expFalse>) --> Value
IIF() returns the evaluation of <expTrue> if <lCondition> evaluates to true (.T.) and <expFalse> if it evaluates to false (.F.). The value returned is the data type of the valid condition-expression.
IIF() is a logical conversion function. It is one of the most powerful and versatile functions in xClipper. It provides a mechanism to evaluate a condition within an expression. With this ability you can convert a logical expression to another data type.
This example converts a logical data value to a numeric data value: lPaid = .T. ? IIF(lPaid, 1, 0) // Result: 1 In this example a logical field is formatted depending on whether the Customer is past due or not: @ ROW() + 1, 25 SAY IIF(lPaid, SPACE(10), "Go get 'em") If you are printing forms, you can print an indicating symbol in different columns depending on the value of a logical field: @ ROW(), IIF(InHospital, 10, 12) SAY "X" You can also use IIF() to force the LABEL FORM to print blank lines. Enter the following expression when you create the label with RL.EXE: IIF(EMPTY(Company), CHR(255), Company)
TRANSFORM(<выражение>,<SAY-шаблон> --> строка символов
TRANSFORM() форматирует <выражение> в символьную строку, определенную при помощи шаблона, заданного аргументом <SAY-шаблон>.
TRANSFORM() - функция преобразования, которая форматирует CHARACTER, DATE, LOGICAL и NUMERIC значения в соответствии со строкой шаблона, включающей комбинацию форматных функций и шаблонов. TRANSFORM() форматирует таким же образом, как и предложение PICTURE в команде @...SAY. TRANSFORM() используется для форматирования данных при выводе на экран или печатающее устройство.
Строка функций. Строка функций определяет правила форматирования, которые в общем использовать предпочтительнее, чем особые символы внутри аргумента <выражение>. Строка функций состоит из символа @ и следующих за ним одного или более дополнительных символов, каждый из которых имеет особое назначение (смотрите таблицу ниже). В строке функций символ @ должен быть крайним левым.Строка функций не должна содержать пробелов. Строка функций может быть задана одна или со строкой шаблона. В последнем случае строка функций должна предшествовать строке шаблона и они должны разделяться одним пробелом.
Строка шаблона. Строка шаблона определяет правила форматирования по принципу символ за символом. Строка шаблона состоит из серии символов, некоторые из которых имеют специальное назначение (смотри таблицу ниже). Каждая позиция в строке шаблона соответствует позиции аргумента <выражение>. Символы в строке шаблона, которые не имеют специального назначения, непосредственно копируются в результирующую строку. Если используется функция шаблона @R, эти символы вставляются между символами возвращаемого значения, в противном случае они записываются вместо соответствующих символов возвращаемого значения. Строка шаблона может быть задана одна или со строкой функции. В этом случае строка функций должна предшествовать строке шаблона и они должны разделяться одним пробелом.
Функции TRANSFORM() ------------------------------------------------------------------- Функция Действие ------------------------------------------------------------------- B Выводит числа, выравненные слева C Выводит CR после положительных чисел D Выводит дату в формате SET DATE E Выводит дату в формате BRITISH (английском) R Вставляет символы, не относящиеся к шаблону X Выводит DB после отрицательных чисел Z Выводит пробелы вместо нулей ( Заключает отрицательные числа в скобки ! Переводит алфавитные символы в верхний регистр -------------------------------------------------------------------
Шаблоны TRANSFORM() ------------------------------------------------------------------- Шаблон Действия ------------------------------------------------------------------- A.N.X.9.# Выводит цифры для данных любого типа | Выводит логические величины: "Т" или "F" Y Выводит логические величины: "Y" или "N" ! Переводит алфавитные символы в верхний регистр $ Выводит знак доллара вместо ведущего пробела в числах * Выводит звездочку вместо ведущего пробела в числах . Указывает позицию десятичной точки , Указывает позицию запятой -------------------------------------------------------------------
Следующий пример форматирует число в денежный формат, используя шаблон: ? TRANSFORM(123456, "$999,999") // Результат: $123,456 Следующий пример преобразует символьную строку, используя функцию: ? TRANSFORM("to upper", "@!") // Результат: TO UPPER
Пред. | Начало | След. |
ARRAY | Уровень выше | ENVIRONMENT |