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

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

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

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

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

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

img

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

img

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

img

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

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

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

    • Значение - формула, с использованием операторов нотации языка Spark SQL. Для удобства редактирования формул используется полноэкранное редактирование. Для перехода к полноэкранному режиму необходимо нажать svg;

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

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

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

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

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

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

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

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

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

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

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

img

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

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

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

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

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

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

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

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

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

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

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

    Свойство Отвечает за геолокацию доступно для полей только с типом данных Строка и с неактивным свойством Является ссылкой или Является справочником.

    • Скрыто - свойство поля, которое позволяет скрыть столбец в модели.

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

img

Выйти из режима создания/редактирования также можно по кнопке svg или нажатием клавиши Esc на клавиатуре. При нажатии на кнопку/клавишу, если на форме есть несохраненные изменения, отображается окно подтверждения закрытия формы.

Для удобства редактирования формул используется полноэкранное редактирование. Для перехода к полноэкранному режиму необходимо нажать svg над полем Значение. Полноэкранный режим редактирования содержит:

img

1.Наименование вычисляемого поля. Двойным нажатием доступна форма изменения наименования. Кнопка svg позволяет закрыть полноэкранный режим с сохранением внесенных изменений.

2.Кнопки управления:

  • img Выполнить - выполняет запрос целиком или выделенную часть. Для выполнения части запроса выделите его в тексте. Результат отобразится в таблице ниже Результаты запуска.

  • img Сбросить изменения - откатывает изменения в SQL выражении до состояния перед открытием полноэкранного режима;

  • svg подсказка - позволяет отобразить/скрыть текст подсказки. В подсказке доступна ссылка на документацию о синтаксисе для выражения;

img

3.Поиск по наименованиям и алиасам полей в модели.

4.Сортировка по наименованию полей. По умолчанию установлена сортировка svg По возрастанию, при нажатии сортировка меняется на svg По убыванию.

5.Кнопка svg для сворачивания панели полей и увеличения области ввода выражения. Для разворачивания панели используйте кнопку img Структура.

6.Поле ввода выражения.

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

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

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

7.Структура поля модели. Для поля отображается наименование, алисас (в скобках) и тип данных. При нажатии на поле выполняется добавление его наименования в поле ввода выражения, в место установки курсора. Если на схему модели не добавлены объекты, то в структуре отобразится уведомление Отсутствуют поля модели.

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

Вычисляемое поле выполняет расчет процентного отношения двух других полей модели, а в случае превышения значения 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