Редактор выражений

С помощью редактора формул можно создать поля (по одному или несколько сразу) и обработать условия, как на калькуляторе.

Создание поля
  • Чтобы создать поле:
    1. Введите формулу в области теста в верхней части панели. Доступны следующие функции справки по вводу.
      • Дважды щелкните имя функции в рамке Функции или имя переменной (поле, подсказка или предварительно определенный набор полей) в рамке Переменные, чтобы вставить их в местоположение подсказки. В случае функции вставляется шаблон с информацией об используемых параметрах.
      • Чтобы вставить эти элементы в выбранное место, также можно перетащить их из дерева в область текста.
      • При вводе имени переменной (поле, подсказка или набор) нажмите сочетание клавиш CTRL + ПРОБЕЛ, чтобы просмотреть список имен переменных, начинающихся с вводимого текста.

        Цвет индикатора над областью Сообщения обозначает состояние формулы.

        Индикатор Формула
        Красный Содержит ошибку, которая описана в области сообщений. Не может быть подтверждена (кнопка "Дальше" неактивна).
        Желтый Может быть подтверждена, но возможны противоречия, которые описаны в области сообщений.
        Зеленый Действительна.

        При наличии ошибки или предупреждения область Сообщения в нижней части панели содержит подробные данные причины.

    2. Чтобы подтвердить формулу, нажмите кнопку Дальше.
    3. Введите имя нового поля в поле Имя.
    4. Нажмите кнопку OK.
Расширенные функции

Наборы полей

Зачастую требуется создать несколько полей путем применения одного вычисления к разным существующим полям. Редактор формул выполняет это с помощью наборов полей.

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

Именованные наборы полей

  • Чтобы создать именованный набор полей:
    1. В разделе Переменные дважды щелкните опцию Наборы полей. Будет отображена ветвь со списком существующих наборов полей.
    2. Дважды щелкните опцию Создать набор полей... Будет открыто окно со списком всех доступных полей.
    3. В поле Маска псевдонима введите маску для фильтрации полей по имени. Маска состоит из общей части имени для всех полей, которые требуется отобразить, и символа звездочки (*), который заменяет различающиеся части имен полей. Звездочку можно вставлять в любое место маски и использовать многократно.
    4. Отмените выбор полей, которые не требуются в наборе данных.
    5. В поле Установить имя введите имя нового набора полей.
    6. Нажмите кнопку OK. Окно будет закрыто, а в списке под элементом Наборы полей будет отображен новый набор полей.
  • Чтобы изменить именованный набор полей:
    1. Выберите набор полей для обработки.
    2. Щелкните выбранный набор полей правой кнопкой мыши. Будет открыто контекстное меню.
    3. Выберите команду "Обработать". Будет открыто окно обработки набора полей.
      Примечание

      Изменение имени набора полей означает создание его дубликата.

  • Удаление именованного набора полей
    1. Выберите набор полей для обработки.
    2. Щелкните выбранный набор полей правой кнопкой мыши. Будет открыто контекстное меню.
    3. Выберите команду Удалить.

Динамически создаваемые наборы полей

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

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

  • Чтобы создать динамический набор полей:
    • В поле текста формулы введите маску, соответствующую полям, к которым требуется применить вычисление (например, income_@), и используйте ее как обычное поле.
  • Чтобы использовать несколько наборов полей:
    1. Введите формулу, используя наборы полей, как описано выше. Число создаваемых полей будет указано в области Сообщения в нижней части панели.
    2. При использовании нескольких наборов полей в одной формуле необходимо выбрать в раскрывающемся списке Ассоциация полей способ ассоциации полей из этих наборов.
      • По позиции: поля из каждого набора ассоциируются в зависимости от их позиции в таблице базы данных.
      • По значению: поля из каждого набора ассоциируются в зависимости от значения, представленного подстановочными знаками в определении наборов полей.
      • Декартово произведение: все поля из одного набора ассоциируются со всеми полями в другом наборе.

      Пример: допустим, таблица базы данных содержит следующие поля в приведенном порядке:

      income_january

      income_april

      income_february

      income_march

      expenses_march

      expenses_january

      expenses_april

      Формула income_@ - expenses_# использует два набора полей, один из которых группирует все поля, начинающиеся с income_ , а второй — все поля, начинающиеся с expenses_ :

      income_@

      expenses_#

      income_january

      expenses_march

      income_april

      expenses_january

      income_february

      expenses_april

      income_march

      Вариант ассоциации По позиции приводит к следующим вычислениям:

      Вычисление

      Позиция

      income_january - expenses_march

      1

      income_april - expenses_january

      2

      income_february - expenses_april

      3

      При выборе варианта ассоциации По значению приложение будет сопоставлять значения, представленные символами @ и # , в результате вычисления будут следующими:
      Вычисление Значения @ и #

      income_january - expenses_january

      january

      income_april - expenses_april

      april

      income_march - expenses_march

      march

      Вариант Декартово произведение приводит к следующим вычислениям:

      Вычисление

      income_january - expenses_march

      income_january - expenses_january

      income_january - expenses_april

      income_april- expenses_march

      income_april - expenses_january

      income_april - expenses_april

      income_february - expenses_march

      income_february - expenses_january

      income_february - expenses_april

      income_march - expenses_march

      income_march - expenses_january

      income_march - expenses_april

    3. Нажмите кнопку Дальше, чтобы подтвердить создание полей. Будет открыто диалоговое окно, позволяющее присвоить имена новым полям.
    4. Введите общий корень для всех создаваемых полей.
    5. Если формула использует только именованные наборы полей или если дальнейший контроль присвоения имен не требуется, перейдите к следующему шагу. Если использован один или несколько подстановочных знаков, их можно использовать в псевдониме для создания шаблона именования. Подстановочные знаки заменяются соответствующими частями имени.
    6. Нажмите кнопку ОК, чтобы создать поля.

Использование набора полей в качестве списка переменных для N-арной функции

Наборы полей могут использоваться для определения списков аргументов n-арных функций, то есть функций с неопределенным числом аргументов. При использовании набора полей в качестве аргумента n-арной функции, и только в этом случае, необходимо заключить имя набора должно в фигурные скобки { }, чтобы задать его обработку как списка аргументов.

В качестве примера рассмотрим таблицу базы данных, поля которой income_april, income_may, income_june содержат значения месячного дохода. Если требуется создать поле, содержащее наибольший месячный доход за квартал, необходимо использовать формулу greatestN({income_@}), в которой поле income_@ используется как список переменных, то есть идентично формуле greatestN(income_april ,income_may ,income_june). Однако при использовании набора полей как в формуле greatestN(income_@) создается три поля тремя следующими формулами: greatestN(income_april), greatestN(income_may) и greatestN(income_june), что неприменимо.

  • Чтобы использовать набор полей как список переменных:
    1. Создайте набор полей (именованный или динамический), как описано выше.
    2. В поле текста формулы введите формулу, содержащую n-арную функцию.
    3. В качестве аргумента функции введите имя набора полей в фигурных скобках { }. Например, формула greatestN({incomes}) создаст поле, значением которого является наибольшее из значений полей набора с именем incomes.