Перейти к основному содержимому

What-if

What-if (Анализ чувствительности) - это оценка влияния изменения исходных параметров проекта (инвестиционные затраты, приток денежных средств, ставка дисконтирования, операционные расходы и т. д.) на его конечные характеристики. В ходе анализа чувствительности проекта, сначала определяются исходные параметры (показатели), по которым производят расчет чувствительности инвестпроекта. Затем осуществляют последовательно-единичное изменение каждого выбранного показателя.

Пример дэша what if

В этой версии переменные можно использовать в lpe заголовках и в выражениях для фактов.

Логика работы с дэшем

Для дэша what-if была добавлена иерархия переменных. Самыми старшими по иерархии являются переменные, указанные в ds_res. Переменные родительского атласа наследуются дочерними (в parent_guid указывается guid родительского атласа). Переменные текущего атласа переопределяют переменные родительского если имена переменных совпадают. Для создания локальных переменных требуется создать дэш what-if (для этого нужно перетащить дэш из конструктора), открыть конструктор, кликнуть “Настроить переменные”, в открывшемся модальном окне кликнуть “Добавить переменную”.

Модальное окно

Можно использовать 5 типов переменных: integer (целочисленное значение), string (строка), double (число с плавающей точкой), boolean и color. У каждой переменной указывается:

  • имя переменной (первый символ - только латинские буквы без пробела, далее можно использовать латинские буквы, цифры, символ нижнего подчеркивания),
  • описание (не обязательно),
  • тип (integer, string, double, boolean, color),
  • значение (данное значение будет указано по умолчанию)

Для integer и double указывается минимальное и максимальное значение целых чисел (если не указать от будет размах 0-100). Для указания размаха необходимо нажать соответствующую кнопку (1) и ввести диапазон (2):

Ввод диапазона значений для численной переменной

Для переменных типа string - указывается строка по умолчанию, либо набор доступных значений из выпадающего списка. Для создания выпадающего списка необходимо нажать соответствующую кнопку (1), нажать кнопку “Добавить значение” (2) и ввести необходимое значение (3):

Указание выпадющего списка переменных

Для изменения сортировки списка необходимо зажать левую кнопку мыши на (4) и потянуть в необходимом направлении. В случае необходимости удаления значения нажмите (5).

Для переменных типа boolean указывается два варианта значения по-умолчанию: True/False,

Для переменных типа color - указывается цвет по-умолчанию в colorPicker.

Все изменения переменных в модальном окне хранятся в базе в таблице ds_name.vars.
Для сохранения изменений нажать кнопку “Сохранить”, для отмены - “Сбросить”. В самом дэше значения переченных указываются согласно тому, как было сохранено в модальном окне.

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

Настройка отображения в конструкторе

В конструкторе можно указать Заголовок дэша, выбрать опции (Скрыть виджет, Показать меню дэша, Показать верхнюю панель), выбрать переменные (кликнуть на +). При клике на “+” в блоке “Переменные” списком выводятся все переменные, к которым есть доступ, включая переменные атласа ds_res, родительских и текущего атласа. Переменные можно добавить накликиванием, удалить (для этого можно откликать переменные в выпадающей панели, перетащить в корзину или кликнуть правой кнопкой, затем Удалить). Кроме того, в блоке “Переменные” можно менять переменные местами с помощью drag and drop - таким образом меняется порядок отображения переменных в самом дэше what-if.

Конструктор дэша what if

По умолчанию переменные на дэше располагаются вертикально. Но расположение переменных можно изменить на горизонтальное, для этого кликнуть на горизонтальную стрелку справа от поля для ввода значения отступов. В поле отступы настраивается расстояние в px между переменными на дэше. Чек-бокс “Растянуть” позволяет расположить переменные по всей длине/высоте дэша.

Натройка отображения переменных

Ниже в блоке “Отображение переменных” можно настроить стили (шрифт, размер, цвет, толщина) для Имени (Заголовка), Описания переменнной, а так же переопределить заголовок и описание. Переключатель чек-бокс позволяет скрыть/показать заголовок/описание переменной. В конфиге изменения сохраняются в блоке dataDisplay{}.

Использование переменных

Значение переменных можно отображать в заголовке дэша. Для этого в конструкторе в поле Заголовок или в JSON конфиге указать lpe-выражение, например:


title: 'lpe:"Перечень переменных. " + bold("Показатель 1 (строчка): ") + displayVar("test_string") + bold(". Показатель 2 (число): ") + displayVar("test_integer") + " " + displayVar("color") ',

displayVar() - функция для отображения переменной в заголовке.

Для настройки фактов можно использовать созданные переменные, для этого нужно указать lpe-выражение в JSON конфиге другого дэша. Пример выражения:

  measures: [
"if($test_bool, $test_integer * avg(numberofboys), avg(numberofboys)):fact1",

],

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

Использование переменных в фактах, чек бокс отключен (test_bool в состоянии false)
Использование переменных в фактах, чек бокс отключен (test_bool в состоянии true)

Пример настройки

Рассмотрим пример.
1) Перетащить дэш “What-if” в рабочее окно. Открыть модальное окно “Настроить переменные”. Рассмотрим случай, когда переменные в текущем атласе отсутсвуют.

Модальное окно, в текущем атласе переменных нет

2) Добавить переменную string, integer, boolean в модальном окне.

Модальное окно, переменные созданы

Дэш What-if выглядит следующим образом:

3) Создать дэш пирог. Добавить lpe-выражение для заголовка и для факта для дэша пирог. Конфиг дэша пирог:

{
frame: {
h: 3,
w: 6,
x: 5,
y: 0,
},
dataSource: {
koob: 'koob_name.koob_name',
style: {},
yAxis: 'measures',
measures: [
'if($bool_var, $number_var * avg(numberofbirthcertificatesforboys), avg(numberofbirthcertificatesforboys)):fact1',
'avg(numberofbirthcertificatesforboys):avg_numberofbirthcertificatesforboys',
],
},
view_class: '1I1.pie',
title: 'lpe:"Перечень переменных. " + bold("Показатель 1 (строчка): ") + displayVar("string_var") + bold(". Показатель 2 (число): ") + displayVar("number_var") + " " + displayVar("bool_var") ',
}
Дэш what if и дэш пирог

4) Поменять значение переменных. Заголовок и тайтл меняются в зависимости от указанных переменных

Использование переменных в дэше пирог

JSON-конфигурация

Ключи title (глава 1.2.1), description (глава 1.2.2), frame (глава 1.2.3), bgImage работают аналогично описанию в руководстве по конфигурации дэшлетов в соответствующих блоках.

options

Описывает различные дополнительные настройки при отображении деша.

Пример указания:

"options": ["Fixed"].
Название ключаОписание
FixedПри включенной опции дэш закреплен на экране при скроллировании
!TopBarMenuСкрыть меню визеля
!TopBarСкрыть заголовок дэша
HiddenСокрытие дэша
TransparentФон дэша соответствует фону подложки дэшборда

vars

В массиве vars указываются созданные в рамках текущего дэша переменные.

vars:[
'ds_XXXX:number_var',
'ds_XXXX:string_var',
'ds_XXXX:bool_var',
....
]

В объекта dataDisplay{} настраивается отображение переменных в дэше. В этом блоке используются следующие объекты:
vars - настройка стилей, переопределение заголовка (title) и описания (description)
layout - вертикальное/горизонтальное отображение и отступы
stretch - растягивает список переменных по длине/высоте

 dataDisplay: {
vars: {
'ds_21357:test_bool': {
title: {
style: {
fontSize: 20,
},
title: 'Переменная - bool',
},
},
'ds_9773:test_color': {
title: {
style: {
color: 'rgba(205,68,36,1)',
fontSize: 20,
fontFamily: 'Georgia',
},
title: 'Переменная - color',
},
description: {
show: false,
style: {
color: 'rgba(159,21,21,1)',
},
title: 'edited_\n',
},
},

'ds_9773:test_string': {
title: {
style: {
color: 'rgba(126,122,179,1)',
fontSize: 20,
fontFamily: 'Comic Sans MS',
fontWeight: 'bold',
},
title: 'Переменная - строчка',
},
description: {
show: true,
style: {
color: 'rgba(48,132,130,1)',
fontFamily: 'Georgia',
},
title: 'текст описания',
},
},
'ds_9773:test_integer': {
title: {
style: {
color: 'rgba(197,136,136,1)',
fontFamily: 'Arial Black',
},
title: 'Переменная - число',
},
description: {
show: true,
title: 'Текст описания',
},
},
},
layout: {
gap: 32,
direction: 'column',
},
stretch: false,
},