Калькулятор-переменные Калькулятор (переменные)

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

Важно: Расчет значений выражений осуществляется в том порядке, в котором они следуют в списке выражений, т.е. сначала вычисляются выражения, находящиеся выше в списке. В формуле выражения возможно использовать только выражения, находящиеся выше по списку. В связи с этим неверная позиция в списке может приводить к ошибке.

Порты

Вход

  • Входные переменные Входные переменные — список переменных, которые можно использовать в узле.

Выход

  • Выходные переменные Выходные переменные — входные переменные и новые переменные, вычисленные узлом.

Мастер настройки

Окно настроек содержит области:

  1. Список выражений
  2. Область кода выражений
  3. Переменные
  4. Список функций

Список выражений

Область предназначена для ввода Выражений — вычисляемых переменных, которыми в результате обработки дополняется входной набор данных или изменяются исходные. Значение Выражения в каждой строке набора данных будет вычислено по формуле, заданной в области кода выражения.

Новое Выражение можно создать при помощи панели инструментов области или контекстного меню. Операции панели инструментов:

  • Добавить выражение Добавить выражение — добавляет новое Выражение с параметрами по умолчанию.
  • Клонировать выражение Клонировать выражение — добавляет новое Выражение с типом данных, описанием и формулой, как у текущего выражения.
  • Редактировать Редактировать параметры выражения... (F2) — задание параметров Выражения.
  • Заменять переменную Заменять переменную — включает режим замены исходного значения переменной на вычисленное в Выражении.
  • Переместить вверх Переместить вверх (Ctrl+Up) — поднять Выражение на одну позицию вверх по списку.
  • Переместить вниз Переместить вниз (Ctrl+Down) — опустить Выражение на одну позицию вниз по списку.
  • Удалить выражение Удалить выражение (Delete) — удаляет текущее Выражение.
  • Удалить все выражения Удалить все выражения… (Shift+Delete) — удаляет все имеющиеся Выражения.

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

  • Перейти к выражению (Enter) — выбор Выражения и отображение его кода.
  • Вставить в текст выражения Вставить в текст выражения — вставляет Имя выражения в область кода.

При добавлении и редактировании Выражения отображается диалог редактирования параметров. Следующие параметры Выражений доступны для изменений:

  • Имя — имя переменной в выходном наборе данных.
  • Метка — метка переменной в выходном наборе данных.
  • Типтип данных переменной в выходном наборе данных.
  • Промежуточное — при установке этого флага выражение может использоваться в расчетах, но не включается в список переменных выходного набора данных.
  • Описание — поясняющая информация.

Важно: Имя должно быть уникальным, начинаться с заглавной или строчной латинской буквы или с символа подчеркивания. Для последующих символов имени помимо перечисленных можно использовать цифры.

При первом открытии мастера настройки список Выражений содержит один элемент с именем Expr1 вещественного типа. По умолчанию для нового выражения назначается метка ВыражениеN и имя ExprN, где N — номер, обеспечивающий уникальность.

После настройки параметров Выражения в область кода требуется ввести рассчитываемую формулу.

Область кода выражения

В области кода задается формула расчета Выражения. Ссылки на входящие переменные и синтаксические конструкции функций можно вставлять в код выражения ручным вводом, выбрав их двойным кликом мыши в соответствующих областях или перетащив мышкой. Ссылки на созданные в Калькуляторе выражения задаются в области кода ручным вводом или перетаскиванием мышкой. Так же, ссылки на Выражения или Переменные можно добавить в Область кода через контекстное меню.

Важно: Из текущего Выражения можно ссылаться только на Выражения выше по списку.

Если у входящей Переменной и Выражения совпадают имена, то в коде выражения по умолчанию будет использоваться Переменная. В таком случае к Выражению можно обращаться только через префикс Expr..

Формула Выражения может содержать:

  • ссылки на другие переменные набора данных в виде наименования переменных или ранее вычисленных выражений;
  • ссылки на переменные входного порта;
  • скобки, определяющие порядок выполнения операций;
  • знаки математических операций и отношений;
  • логические операции (AND, OR, NOT, XOR) и значения (TRUE или 1, FALSE или 0);
  • функции в соответствии с синтаксическим описанием (см. далее Список функций);
  • строковые выражения в кавычках, например, "строковое выражение";
  • целые и вещественные числа;
  • однострочные и многострочные комментарии.

Важно: вещественные числа записываются с использованием десятичной точки, например, 2.71.

Для выхода из области кода и возврата к предыдущей активной области возможно использовать клавишу [Esc].

Панель быстрого доступа

На панели расположена кнопка вызова окна Предпросмотр Предпросмотра и кнопки, по нажатию на которые в область кода выражения вставляются шаблоны или части выражения.

Предпросмотр Предпросмотр — позволяет оценить корректность расчетов, отображая до 100 первых строк результирующей таблицы. Горячая клавиша вызова — F3.

Логические операции:

  • AND — операция Логическое "И".
  • OR — операция Логическое "ИЛИ".
  • NOT — операция Логическое "НЕ".
  • XOR — операция Логическое "исключающее ИЛИ".

Операторы сравнения:

  • = — равно;
  • <> — не равно;
  • < — меньше;
  • > — больше;
  • <= — меньше или равно;
  • >= — больше или равно.

Шаблоны:

  • Вещественное число — для ввода вещественного числа, будет вставлено 0.0;
  • Строка — для ввода строки, будет вставлено "";
  • Дата — для ввода даты, будет вставлено StrToDate("____-__-__", "YYYY-MM-DD");
  • Время — для ввода времени, будет вставлено StrToDate("__:__:__", "HH:NN:SS").

Логические значения:

  • FALSE — Ложь.
  • TRUE — Истина.

Комментарии

Однострочный комментарий начинается символами // (два слеша) и продолжается до конца строки. Многострочным комментарием считаются все символы, содержащиеся между /* (слеш-звездочка) и */ (звездочка-слеш).

В области кода поддерживается комбинация клавиш Ctrl+/ — закомментировать/раскомментировать код.

Пример комментария:

// Пример однострочного комментария.

IF(IsNull(var_one),var_two,var_one) // однострочный комментарий продолжается до конца строки

/* Многострочным комментарием
считаются все символы,
содержащиеся между (слеш-звездочка)
 и (звездочка-слеш). */

Переменные

Область содержит список переменных, передаваемых на вход узла. Перечень и параметры переменных определяются при настройке входных портов узла.

Двойной клик мыши по позиции списка вводит имя переменной в область кода Выражения. То же самое можно сделать при помощи Drag-and-Drop или контекстного меню.

Контекстное меню содержит команды:

  • Заменить вычисляемым выражением Заменить вычисляемым выражением — для выбранной Переменной добавлет новое Выражение и включает режим замены исходного значения Переменной на вычисленное в Выражении.
  • Вставить в текст выражения Вставить в текст выражения — вставляет имя Переменной в область кода.
  • Перейти к выражению — становится активной, если к Переменной был применен пункт Заменять вычисляемым выражением. Выбирает Выражение, заменяющее данную Переменную, и делает активной Область кода.

Важно: при применении к Переменной пункта Заменить вычисляемым выражением, метка переменной становится ссылкой, нажатие на которую выбирает Выражение, заменяющее данную Переменную, и делает активной Область кода (действие аналогично выполнению пункта контекстного меню Перейти к выражению).

Список функций

Наименование, входные аргументы и описание доступных для использования функций.

Возможна фильтрация по категории и названию функции.

Двойной клик мыши по позиции выбранной функции вставляет ее синтаксис в область кода выражения. То же самое можно сделать при помощи Drag-and-Drop.


Примечание: узел "Калькулятор(переменные)" использует механизм ленивых вычислений, это означает, что расчет производится только тогда, когда значение выражения отображается или используется другим узлом сценария.