Перейти к содержанию

Работа с вычисляемыми полями

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

Добавление вычисляемых полей

Добавить вычисляемое поле можно одним из способов:

  • нажмите на кнопку svg напротив блока Вычисляемые поля. Откроется форма добавления поля.

img

  • нажмите на кнопку img Вычисляемое поле на панели кнопок в области просмотра данных модели. Откроется форма добавления поля.

img

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

img

  • на вкладке Описание:

    • Алиас - наименование поля в том виде, в каком оно будет отображаться в пользовательском интерфейсе окон (можно использовать кириллицу и пробелы). Обязательно для заполнения;

    • Наименование - краткое наименование поля (латинскими буквами, цифрами 0-9 и символом _, одним словом, без пробелов), которое может быть использовано в формулах и фильтрах. Значение при сохранении приводится к нижнему регистру. Обязательно для заполнения;

    • Значение - формула, с использованием операторов нотации языка Spark SQL, в качестве переменных используйте наименования других столбцов данной строки. Названия столбцов должны содержать префикс, включающий:

      • название таблицы в базе данных-источнике;
      • название и номер листа, если поле из источника excel-файла, например, List1;
      • Jsql. - для поля из SQL запроса;

      В поле ввода SQL-запроса при вводе первых букв отображаются значения справочников (IntelliSense) и подсветка синтаксиса. Справочники реализованы по полям модели, ключевым словам (select, from и др.), алиасам, таблицам. При выборе алиаса в выпадающем списке в формуле указывается код выбранного поля для корректной работы запроса. При выборе листов или таблиц файловых источников в выпадающем списке в запросе прописывается его название в обратных кавычках для корректной работы запроса.

    • Тип - выбор типа данных:

      • Логическое;
      • Дата;
      • Число (дробное);
      • Число (целое);
      • Строка;
    • Единицы измерения - строка для указания единицы измерения. Если значение поля пусто, то единицы измерения не отображаются;

    • Число знаков после запятой;

    • Разделитель дробной части;

    • Разделитель тысяч;

    Поля Единицы измерения, Число знаков после запятой, Разделитель дробной части и Разделитель тысяч доступны для типа данных Число (дробное).

    Поля Единицы измерения и Разделитель тысяч доступны для типа данных Число (целое).

    • Формат - поле выбора формата даты или даты и времени.

    Поле Формат доступно для типа данных Дата.

img

  • на вкладке Параметры задайте:

    • Базовый цвет - при нажатии открывается окно с палитрой цветов. Доступны два способа выбора цвета:

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

      • Расширенная - позволяет выбрать цвет из палитры, также есть возможность указать цвет с помощью его HEX, RGBA или HSLA кода.

    • Итоговая агрегация:

      • Количество - количество значений;
      • Количество уникальных - количество уникальных значений;
      • Минимум - минимальное среди значений;
      • Максимум - максимальное среди значений;
    • Промежуточная агрегация:

      • Количество - количество значений;
      • Количество уникальных - количество уникальных значений;
      • Минимум - минимальное среди значений;
      • Максимум - максимальное среди значений;
    • Выравнивание текста:

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

    Свойство Является справочником недоступно для полей с типом данных Дата и Число (дробное).

    • Является ссылкой - свойство поля, которое позволяет отобразить значения поля ссылкой. В виджетах поле будет визуально отличаться от основного текста и будет содержать ссылку для перехода на другую страницу:

      • Ссылка - все значения поля ссылки;
      • Текст - поле ввода текста, который будет указан как ссылки;
      • Значение - выбор поля, значения которого будут указаны как наименования ссылки.
    • Скрыто - свойство поля, которое позволяет скрыть столбец в модели.

Нажмите на кнопку img Сохранить, вычисляемое поле с заданными параметрами отобразится в таблице модели.

Пример создания вычисляемого поля

Вычисляемое поле выполняет расчет процентного отношения двух других полей модели, а в случае превышения значения 100% устанавливает значение - 100.

В поле Значение используется формула:

CASE
    WHEN (jsql.kolicestvo_20 >=List1.kolicestvo_obektov_v_reestre) THEN 100
    ELSE 100 * jsql.kolicestvo_20 / List1.kolicestvo_obektov_v_reestre
END

где:

  • jsql.kolicestvo_20 - поле числовых значений количества из SQL запроса к источнику типа База данных;

  • List1.kolicestvo_obektov_v_reestre - поле числовых значений количества из другого источника - Excel-файла.

Редактирование вычисляемых полей

Для перехода к редактированию ранее созданного вычисляемого поля выполните одно из действий:

  • в области просмотра данных модели нажмите на кнопку контекстного меню действий svg рядом с наименованием выбранного поля. В открывшемся выпадающем списке выберите пункт Редактировать;

img

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

img

Окно редактирования вычисляемого поля аналогично окну его добавления. Внесите изменения и нажмите на кнопку img Сохранить.

Удаление вычисляемых полей

Для удаления вычисляемого поля выполните одну из последовательностей действий:

  • в области просмотра данных модели нажмите на кнопку контекстного меню действий svg рядом с наименованием выбранного столбца. В открывшемся выпадающем списке выберите пункт Удалить;

img

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

img

Откроется окно для подтверждения удаления вычисляемого поля. Чтобы подтвердить действие, нажмите на кнопку img Удалить, для отмены - нажмите на кнопку img Отмена.

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

img

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

img

Клонирование вычисляемых полей

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

img

Интерфейс клонирования вычисляемого поля аналогичен интерфейсу его добавления. В открывшемся окне клонирования вычисляемого поля все поля заполнены. К полю Наименование по умолчанию приписано _copy. Остальные поля клонируются без изменений.

Чтобы сохранить изменения, нажмите кнопку img Сохранить. Окно клонирования вычисляемого поля закроется - в списке вычисляемых полей и в таблице модели появится клон вычисляемого поля. Чтобы отменить клонирование вычисляемого поля, нажмите кнопку img Отменить.

Особенности функций

AWCastInterval

Данная функция возвращает количество времени time, прошедшее между датами date1 и date2. Параметр time может возвращать:

  • ms - миллисекунды;
  • sec - секунды;
  • hours - часы;
  • days - дни;
AWCastInterval  (
                 date1, 
                 date2, 
                 'time'
                )

TO_DATE

Данная функция приводит строку date к типу данных дата в заданном формате format.

TO_DATE  (
            date, 
            'format'
         )

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

CASE 
    WHEN data IS NULL OR data= '' then '1900-01-01'
    ELSE TO_DATE (data, 'dd.MM.yyyy') 
end