/
Создание индикатора

Создание индикатора

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

Сделать это можно двумя способами:

  • с помощью виджета Текст;

  • посредством создания соответствующего пользовательского виджета.

Создание индикатора с помощью виджета Текст

Для реализации данного сценария необходимо выполнить несколько шагов:

  1. Добавить виджет Текст на дашборд;

  2. Вывести нужное значение и отформатировать его:

    • округлить;

    • изменить цвет значения и фона;

    • разделить разряды значения для удобного восприятия.

  3. Изменить цвет значения и фона.

Шаг 1. Добавление виджета Текст на дашборд

  1. Откройте Visiology Designer.

  2. Создайте новый дашборд или откройте существующий.

  3. Добавьте виджет Текст, нажав на его иконку:

     

  4. Перетащите данные в поле Столбцы. В нашем примере мы будем использовать данные из столбца calendarmonthlable (названия месяцев), и Продажи, т.к. мы хотим отображать данные по продажам по месяцам:

    add-data(2)(1).png

     

  5. Теперь для дальнейшей настройки виджета необходимо перейти на вкладку Оформление:

     

  6. Для завершения создания индикатора озаглавим его. Можно также изменить фон заголовка:

Шаг 2. Вывод нужного значения и его форматирование

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

  • вывести данные, например, по февралю (вторая строка таблицы);

  • округлить значение;

  • добавить слово руб.;

  • разделить разряды значения для удобного восприятия.

Все это можно выполнить одной командой, введенной в поле Текст:

Math.round(@col[1][1]).toLocaleString('ru') + " руб."

Где
Math.round – функция округления;
@col[1][1] – ячейка с необходимым нам значением. В таблице это вторая строка во втором столбце, но мы указали 1, так как первая строка и первый столбец имеют индекс 0.
toLocaleString('ru') – преобразует числовое значение в строковое и возвращает это значение, используя указанный языковой стандарт;
+ " руб." – добавленный текст.

То же самое можно сделать и другими способами:

Math.round(@col[1][1]).toString().replace(/(?!^)(?=(?:\d{3})+(?:.|$))/gm, '')+ " руб."
или
Math.round(@col[1][1]).toString().replace(/\B(?=(\d{3})+(?!\d))/g, " " )+ " руб."

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

Шаг 3. Изменение цвета значения и фона

Теперь мы можем изменить цвет выведенного значения и фона, изменить форму и цвет рамки, добавить тень. Для этого можно воспользоваться стандартными настройками на вкладке Оформление:

Создание индикатора на базе пользовательского виджета

Подробную информацию о том, как создавать пользовательский виджет см. в разделе Создание пользовательского виджета.

В нашем примере индикатор будет визуально сравнивать два значения (фактическое и плановое) и выводить фактическое значение в числовом формате.

Для выполнения этого сценария необходимо сделать следующее:

  1. На вкладке Виджет нажмите кнопку с тремя точками и щелкните Создать виджет. Откроется окно Создание виджета:

  2. В поле Название укажите имя виджета (например, “Индикатор”).

  3. Добавьте поля в секции Поля виджета (должно быть минимум два поля). Мы добавим поля План и Факт.

  4. В окне JavaScript код введите следующий код:

    //Первое значение в данных будет фактом и будет выступать в качестве значения для более тёмной части окружности. Второе значени в данных выступает в качестве плана //и задаёт максимальное значение на окружности (более светлая часть). w.props = { text: 'Факт', //Текст в центре круга outerRadius: '60%', //Внешний радиус круга innerRadius: '40%', //Внутренний радиус круга chartMarginTop: -100 //Отступ окружности от верхнего края } //Формируем серии const series = [{ name: 'Conversion', data: [{ color: Highcharts.getOptions().colors[0], radius: w.props.outerRadius, innerRadius: w.props.innerRadius, y: w.data.primaryData.items[0].values[0] }], }] const trackColors = Highcharts.getOptions().colors.map(color => new Highcharts.Color(color).setOpacity(0.3).get() ); Highcharts.chart(w.general.renderTo, { chart: { type: 'solidgauge', marginTop: w.props.chartMarginTop, width: null, events: { render: function () { //формирование центральной надписи. Первое значение в данных берётся как Факт. var chart = this, center = chart.series[0].center, totalText = chart.renderer.text( `<span style="font-size: 3em">${w.props.text}</span>`, chart.chartWidth/2.4, //Смещение ширины значения в центре chart.chartHeight/2 - 70 //Смещение высоты надписи в центре ).attr({ zIndex: 10 }).add(), valueText = chart.renderer.text( `<span style="font-size: 3em; color: ${w.colors[0]}; font-weight: bold; margin-top: 10px">${chart.series[0].yData[0]}</span>`, chart.chartWidth/2.3, //Смещение ширины значения в центре (chart.chartHeight/2+33) - 65 //Смещение высоты значения в центре ).attr({ zIndex: 10 }).add(); } } }, //настройки тултипа, если он включен tooltip: { enabled: false, borderWidth: 0, backgroundColor: 'none', shadow: false, style: { fontSize: '16px' }, valueSuffix: '%', pointFormat: '{series.name}<br>' + '<span style="font-size: 2em; color: {point.color}; ' + 'font-weight: bold">{point.y}</span>', positioner: function (labelWidth) { return { x: this.chart.chartWidth / 2.5, y: this.chart.plotHeight / 2.3 }; } }, pane: { startAngle: 0, endAngle: 360, background: [{ // Track for Conversion outerRadius: w.props.outerRadius, innerRadius: w.props.innerRadius, backgroundColor: trackColors[0], borderWidth: 0 }] }, yAxis: { min: 0, max: w.data.primaryData.items[0].values[1], lineWidth: 0, tickPositions: [] }, plotOptions: { solidgauge: { dataLabels: { enabled: false }, linecap: 'round', stickyTracking: false, rounded: true } }, series: series });

     

  5. Задайте в коде требуемые настройки (см. комментарии в коде) и нажмите Готово.

  6. Теперь достаточно перетащить необходимые колонки из панели Данные в поле виджета для визуализации данных. В нашем примере это salesamount и salesamountplan:

  7. Для создания эффектной визуализации вы можете прибегнуть к визуальным настройкам виджета на вкладке Оформление. Подробную информацию о том, как настраивать виджеты см. в разделе Визуальные настройки виджетов.


Смотрите также

Продвинутое форматирование свойств виджетов
Визуальные настройки виджетов

 

Related content

Создание картосхемы
Создание картосхемы
Read with this
Создание индикатора
Создание индикатора
More like this
Создание индикатора
Создание индикатора
More like this
Создание индикатора
Создание индикатора
More like this
Создание индикатора
Создание индикатора
More like this
Создание индикатора
Создание индикатора
More like this