Раздел "Virtual fields"

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

В качестве источника данных для виртуального поля могут выступать:
  • Физическое поле самой карточки.

  • Физическое поле карточки другого типа, которая по каким-то признакам связана с данной.

  • Системные данные о карточке, например дата последнего изменения.

  • Результат вычислений, произведённых над любым из вышеперечисленных полей.

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

Для создания нового виртуального поля нужно перейти в раздел Virtual fields и выбрать соответствующий пункт контекстного меню.

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

  • Названия — локализованные названия виртуального поля, отображаемые у пользователя (в диалоге настройки представлений).

  • Description — словесное описание виртуального поля, будет отображаться в виде подсказки к полю в диалогах поиска и представлений.

  • Идентификатор — уникальный идентификатор виртуального поля.

  • Тип — результирующий тип данных виртуального поля.

    Доступны только простые типы:
    • int — целое.

    • bool — булевское значение.

    • datetime — дата и время.

    • uniqueid — уникальный идентификатор (GUID).

    • string — строка.

    • unistring — строка в формате Unicode.

    • float — число с плавающей точкой.

    • unitext — текст в формате Unicode.

    • decimal — десятичное число.

    • binary — двоичные данные.

  • Идентификатор секции, на основе данных которой строится виртуальное поле. Из этой секции будут выбираться физические поля для вычислений, и к ней будут последовательно присоединяться другие секции или таблицы.

  • Определение поля — источник данных для виртуального поля.

    Доступные источники:
    • Поле секции — физическое поле основной или присоединённой секции.

    • Вычисляемое поле — правила вычислений над физическим полем основной или присоединённой секции.

  • Присоединенные разделы — позволяет определить связи основной секции виртуального поля с другими секциями или таблицами. Секции связываются между собой по определённому полю (обычно — уникальному идентификатору).

Присоединение секции
Рисунок 2. Присоединение секции
При присоединении секции, необходимо указать следующие значения:
  • Alias — уникальный (в рамках определения виртуального поля) псевдоним присоединяемой секции.

  • Source section — секция, к которой производится присоединение (основная секция виртуального поля или ранее присоединенная).

  • Source field — поле оригинальной секции, по которому производится присоединение (JOIN).

  • Target section — секция другой карточки или системная таблица.

  • Target field — поле присоединяемой секции, по которому производится JOIN.

  • Conditions — условия фильтрации записей присоединённой секции.

После присоединения всех необходимых секций можно задать правила построения вычисляемых полей. Для чего кликните по кнопке Изменить в блоке настроек поля.

Свойства вычисляемого поля
Рисунок 3. Свойства вычисляемого поля

Описание вычисляемого поля по сути представляет собой совокупность атомарных операций (элементов), выполняющихся в определённом порядке, который задаётся через иерархические группы. Внутри каждой группы элементы могут объединяться арифметической операцией (+, -, *, /), логической операцией (AND, OR) или агрегацией.

Вычисления одного уровня исполняются строго последовательно, поэтому важно контролировать порядок их выполнения. Для этого можно перемещать элементы внутри группы кнопками Up и Down.

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

    Элемент вычисления вида "Simple"
    Рисунок 4. Элемент вычисления вида "Simple"
  • Switch — результат селекции, сопоставляющей конкретным данным физического поля предопределённые значения.

    Элемент вычисления вида "Switch"
    Рисунок 5. Элемент вычисления вида "Switch"
  • Conditions — условный оператор, формирующий значение элемента в зависимости от значений других элементов.

    Элемент вычисления вида "Conditions"
    Рисунок 6. Элемент вычисления вида "Conditions"

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