What-if анализ
What-if анализ помогает быстро сравнивать сценарии без правки каждого запроса вручную: вы двигаете ползунок или вводите число — связанные диаграммы и показатели пересчитываются с новым значением переменной.
Ниже вы узнаете как настроить визуал What-if анализ*, и подключить его к другим визуализациям через SQL.
Убедитесь что у вас открыт конструктор проекта, на странице есть модель данных и визуализации с SQL, которые должны реагировать на подстановку значения.
Добавление на страницу
Разместите виджет на макете там, где пользователю удобно менять параметр сценария.

Вкладка «Данные»
На вкладке «Данные» в правой панели настроек задайте имя переменной, модель данных.

На вкладке «Данные» нет секции «Реальные данные» — параметры задаются настройках.
Название переменной
Раскрывающаяся секция с полем ввода. По умолчанию подставляется «Параметр».
Имя должно быть уникальным среди всех виджетов What-if на этой странице проекта. Его же увидят пользователи на опубликованном дашборде и в редакторе SQL других визуализаций.
Модель данных
Выберите модель, в которую будет добавлен виртуальный столбец What-if. Список моделей — стандартный выпадающий список; по умолчанию выбрана Модель 1.
Столбец появится в редакторе SQL выбранной модели — оттуда переменную можно подставить в запросы других визуализаций на странице.
Тип данных
Задайте тип и диапазон значений, между которыми пользователь будет переключать сценарий:

«Целое число» / «Десятичное число» - Тип значений: только целые (Int64) или дробные (Float64). По умолчанию — «Целое число».
«Мин» - Нижняя граница диапазона (по умолчанию 0).
«Макс» - Верхняя граница (по умолчанию 100).
«Шаг» - Шаг между допустимыми значениями (по умолчанию 1).
Система строит последовательность от «Мин» с шагом «Шаг», пока не превысит «Макс» или не наберётся 10 000 значений — что наступит раньше. Эти границы же действуют для поля ввода и ползунка на самом виджете.
Вкладка «Вид»
Секции «Параметры контейнера», «Стиль контейнера» и «Инфо» работают так же, как у медиаблока — они влияют только на контейнер виджета.
Оформление
Секция «Оформление» расположена над «Инфо» и задаёт внешний вид названия переменной и ползунка.

«Ползунок»
-
«Размер ползунка» — целое число от 0 до 100 % от базовой высоты; значение больше 100 автоматически сбрасывается на 100.
-
«Цвет ползунка» — один цвет из палитры для дорожки и бегунка одновременно.
«Свойства текста»
Стандартные параметры начертания, размера в пикселях, локального шрифта и цвета (только «Вручную»). Они применяются только к названию переменной, не к числу в поле ввода.
Вкладка «События»
Секции «Управление триггерами», «Управление видимостью», «Переход к объекту» и «Переход по гиперссылке» — стандартные; влияют на контейнер виджета так же, как у других визуализаций.
Работа виджета на странице
На опубликованном дашборде и в режиме просмотра конструктора виджет показывает:
-
название переменной (текст, без редактирования на месте);
-
поле ввода числа (по умолчанию — минимум диапазона);
-
ползунок на всю ширину контейнера (с учётом отступов).
Поле и ползунок синхронизированы: изменение одного сразу меняет другое. Значение не может быть меньше «Мин» или больше «Макс» — после снятия фокуса с поля число автоматически приводится к допустимой границе.
Любое изменение (ввод или перетаскивание) пересчитывает связанные визуализации в реальном времени: в SQL подставляется текущее значение переменной вместо её имени в кавычках.
Параметры What-if действуют только на той странице проекта, где создан виджет.
Подключение в редакторе SQL
У визуализаций с реальными данными на той же странице в редакторе SQL (для всего виджета и для отдельных разрезов/показателей) доступна системная таблица переменных What-if.
- Раскройте список переменных What-if на странице.
- Отметьте чекбокс у нужного имени — в код вставится имя переменной в двойных кавычках.
- При выполнении запроса вместо
"Имя переменной"подставится текущее число, выбранное на виджете.
Имя можно ввести вручную в кавычках — редактор распознает его как переменную What-if и синхронизирует с настройками.
Пример: В показателе указано count(Income.name) * "Модификатор", на виджете «Модификатор» = 5. Итоговый SQL для виджета:
SELECT
Income.name as "Разрез 0",
count(Income.name) * 5 as var
FROM
"Income" as "Income"