Платформа 3V/Формы/Компоненты/Графики/Датчик Спидометр: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
Строка 192: Строка 192:
  
 
== Пример использования ==
 
== Пример использования ==
Кейс: Вывести гистограмму, показывающую количество шагов, пройденных за день
+
Кейс: Вывести датчик спидометра, показывающую процент выполнения, где по плану процент выполнения должен быть 42, а фактический процент выполнения 54.
[[Файл:Гистограмма3.png|1600px|никакой|центр]]
+
[[Файл:датчик спидометра.png|1000px|центр]]
  
====== Создать отчёт с данными, на которых будет строиться гистограмма ======
+
====== Создать отчёт с данными, на которых будет строиться датчик спидометра ======
[[Файл:Пивот кол-во шагов.png|мини|слева]]  
+
Все значения необходимые для отстройки отчёта должны быть в строке, в которой обязательно заданы минимум и максимум спидометра.
<br><br><br><br><br><br><br><br><br><br><br><br><br>
+
[[Файл:отчёт спидометр.png|600px|слева]]
 +
<br><br><br><br>
  
 
====== Создать форму ======
 
====== Создать форму ======
Строка 224: Строка 225:
 
</div></div>
 
</div></div>
  
====== Добавить элемент - диаграмма ======
+
====== Добавить элемент - датчик ======
Добавить в "элементы" диаграмму и задать у нее источник данных - ранее добавленный отчет
+
Добавить элемент "Датчик" и задать у него источник данных - ранее добавленный отчет
  
[[Файл:источник данный.png|700px|мини|слева]]
+
[[Файл:источник данных датчик.png|700px|мини|слева]]
  
 
<br><br><br><br><br>
 
<br><br><br><br><br>
Строка 243: Строка 244:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
</div></div>
 
</div></div>
 +
 +
====== Настроить тип датчика ======
 +
В поле ''"Тип датчика(type)"'' выбрать значение ''"Спидометр(solidgauge)"''.
 +
[[Файл:тип датчика спидометр.png|слева]]
 +
<br><br><br><br><br><br><br><br><br><br><br><br><br>
 +
 +
 +
 +
 +
 +
 +
  
 
====== Настроить вывод данных ======
 
====== Настроить вывод данных ======
 +
 
Для того, чтобы данные отображались в виде столбцов, обозначающими кол-во шагов и подписями с датами, необходимо в поле "Расположение рядов" выбрать "столбец" и задать номер строки с подписями
 
Для того, чтобы данные отображались в виде столбцов, обозначающими кол-во шагов и подписями с датами, необходимо в поле "Расположение рядов" выбрать "столбец" и задать номер строки с подписями
 
[[Файл:Расположение рядов.png|мини|слева]]
 
[[Файл:Расположение рядов.png|мини|слева]]
Строка 269: Строка 283:
 
</div></div>
 
</div></div>
  
====== Настроить заголовок диаграммы ======
+
 
Для того, чтобы создать заголовок достаточно написать его в поле "Главный заголовок".  
+
 
[[Файл:Настройка заголовка.png|мини|слева]]
+
 
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
+
 
Настройка стиля заголовка производится с помощью полей "Размер шрифта" и "Цвет заголовка"
+
 
[[Файл:цвет заголовка.png|мини|слева]]
+
 
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
+
 
Настройка расположения заголовка производится с помощью полей "Отступ сверху",  "Выравнивание по горизонтали" и "Выравнивание по вертикали".
+
 
[[Файл:Расположение заголовка.png|мини|слева]]
+
 
<br><br><br><br><br><br><br><br><br><br>
+
 
 +
====== Настроить заголовок датчика ======
 +
Для того, чтобы создать заголовок достаточно написать его в поле ''"Заголовок(title)"''. Настройка расположения заголовка производится с помощью полей ''"Расположение заголовка(titleAlign)"'',  ''"Отступ заголовка(titleMargin)"''. Настройка стиля заголовка производится с помощью полей ''"Цвет заголовка(titleColor)"'' и ''"Размер заголовка(fontSizeTitle)"''.
 +
[[Файл:заголовок спидометр.png|мини|слева]]
 +
<br><br><br><br><br><br><br><br><br><br><br><br><br>
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;">
<div style="font-weight:bold;line-height:1.6;"> Пример JSON гистограммы</div>
+
<div style="font-weight:bold;line-height:1.6;"> Пример JSON настройки заголовка </div>
 
<div class="mw-collapsible-content mw-collapsed-content">
 
<div class="mw-collapsible-content mw-collapsed-content">
 
<syntaxhighlight lang="JSON" line>
 
<syntaxhighlight lang="JSON" line>
Строка 290: Строка 308:
 
             ...
 
             ...
  
             "title": "Количество шагов",
+
             "title": "Процент выполнения",
            "fontSizeTitle": "20",
 
            "titleColor": "#9ed8ed",
 
            "titleMargin": 5,
 
 
             "titleAlign": "center",
 
             "titleAlign": "center",
             "titleVerticalAlign": "bottom",
+
             "titleMargin": 100,
 
+
            "titleColor": "#ff8686",
             ...
+
             "fontSizeTitle": 60
 
           },
 
           },
 
 
         ...
 
         ...
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
</div></div>
 
</div></div>
 
+
====== Настроить лейблы ======
====== Настроить сетку ======
+
Для того, чтобы настроить подписи на графике нужно поставить отметку в поле ''"Включить лейблы(yLabelEnabled)"''. Для задания жирности шрифта нужно использовать поле "Начертание лейблов(yLabelFontWeight)", размер шрифта задаётся в поле "Размер шрифта(yLabelFontSize)", а отступ подписей от границы графика задаётся в поле "Отступ лейблов(yLabelTickDistance)".
Для того, чтобы отобразить сетку требуется поставить отметку в "Показать сетку".  
+
[[Файл:включить лейблы спидометр.png|слева]]
[[Файл:отображение сетки.png|мини|слева]]
+
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br>
+
Для того, чтобы настроить штрихи на графике нужно поставить отметку в поле ''"Включить тики(yTickEnabled)"''. Настройка стиля тиков задаётся с помощью полей ''"Цвет тиков(yLabelTickColor)"'', ''"Длина тика(yLabelTickLength)"'' и''"Ширина тика(yLabelTickWidth)"''. Для того, чтобы задать тики на максимуме и на минимуме требуется установить флаг ''"yTickAddMinMax": true''.
После этого следует настроить цвета отображения сетки. Для того, чтобы одна линия сетки не отображалась нужно настроить ей цвет фона.
+
[[Файл:включить тики спидометр.png|слева]]
[[Файл:цвет сетки.png|мини|слева]]
+
<br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
 
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;">
<div style="font-weight:bold;line-height:1.6;">Пример JSON</div>
+
<div style="font-weight:bold;line-height:1.6;">Пример JSON настройки лейблов и тиков</div>
 
<div class="mw-collapsible-content mw-collapsed-content">
 
<div class="mw-collapsible-content mw-collapsed-content">
 
<syntaxhighlight lang="JSON" line>
 
<syntaxhighlight lang="JSON" line>
Строка 322: Строка 335:
  
 
             ...
 
             ...
 +
            "yLabelEnabled": true,
 +
            "yTickEnabled": true,
 +
            "yLabelColor": "#e5596d",
 +
            "yLabelFontWeight": 5,
 +
            "yLabelFontSize": 20,
 +
            "yLabelTickDistance": 18,
 +
            "yLabelTickColor": "#c67579",
 +
            "yLabelTickLength": 10,
 +
            "yLabelTickWidth": 2,
 +
            "yTickAddMinMax": true
  
            "axisGridLines": true,
 
            "dashStyleAxisGridLines": "Dash",
 
            "xGridLineColor": "#ffffff",
 
            "xLineColor": "#ffffff",
 
            "yGridLineColor": "#6a6a6a",
 
            "yLineColor": "#ffffff",
 
 
            ...
 
 
           },
 
           },
 +
}
  
 
</syntaxhighlight>
 
</syntaxhighlight>
 
</div></div>
 
</div></div>
  
====== Настроить легенду ======
 
  
Для того, чтобы отобразить сетку следует поставить отметку в "Отображать легенду". Легенду можно расположить сверху и снизу регулируется это полем "Положение". Границу легенды можно задать путем обозначение ее ширины в поле "Граница", её цвет можно настроbть в "Цвет границы". По умолчанию символ в легенде обозначающий цвет данных на диаграмме квадратный, изменить его форму можно в поле "Радиус скругления углов".
 
[[Файл:Легенда.png|мини|слева]]
 
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
 
  
 +
 +
 +
=== Дополнительные настройки chartOptions  ===
 +
Иногда требуются дополнительные настройки диаграммы для этого используется поле ''"Редактирование конфигурации(chartOptions)"''.
 +
 +
[[Файл:конфигурация.png|слева]]
 +
</br></br></br></br></br></br></br></br>
 +
Например, для того, чтобы задать отстройку размера диаграммы по количеству строк в отчёте следует задать статичную ширину колонки staticScale.
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;">
 +
<div style="font-weight:bold;line-height:1.6;"> Пример JSON отстройки размера диаграммы по количеству строк </div>
 +
<div class="mw-collapsible-content mw-collapsed-content">
 +
<syntaxhighlight lang="JSON" line>
 +
{
 +
    "yAxis":
 +
        {
 +
            "staticScale": 10
 +
        }
 +
}
 +
</syntaxhighlight>
 +
</div></div>
 +
Для того, чтобы задать всплывающее при наведении окно следует задать "tooltip".
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; overflow:auto;">
<div style="font-weight:bold;line-height:1.6;"> Пример JSON гистограммы</div>
+
<div style="font-weight:bold;line-height:1.6;"> Пример JSON настройка всплывающих окон </div>
 
<div class="mw-collapsible-content mw-collapsed-content">
 
<div class="mw-collapsible-content mw-collapsed-content">
 
<syntaxhighlight lang="JSON" line>
 
<syntaxhighlight lang="JSON" line>
 
{
 
{
          ...
+
  "tooltip": {
 
+
    "pointFormat": '{point.name}<br/>Дата начала:{point.date1}<br/>Дата окончания:{point.date2}<br/>В статусе:{point.status}<br/>',      
          "templateOptions": {
+
        "valueSuffix": '',
            ...
+
        "shared": false
 
+
    }
            "showLegend": true,
 
            "positions": "bottom",
 
            "bgColorLegend": "#ffffff",
 
            "bdWidthLegend": "1",
 
            "bdColorLegend": "#d2f3ff",
 
            "shadowLegend": false,
 
            "symbolRadiusLegend": "6",
 
            "colorLegend": "#3381be",
 
 
 
            ...
 
        }
 
      ...
 
 
}
 
}
       
 
 
</syntaxhighlight>
 
</syntaxhighlight>
 
</div></div>
 
</div></div>
 +
[[Файл:хинт гант.png|900px|слева]]
 +
</br></br></br></br></br></br></br></br>
 +
Дополнительную информацию по chartOptions можно узнать [https://api.highcharts.com/gantt/# по ссылке].

Версия 10:29, 9 августа 2021

При настройке дашборда можно создать Датчик "Спидометр". Датчик "Спидометр" - способ графического отображения данных, которая выглядит как спидометр в автомобилях, использующий иглу для отображения информации в виде показаний на циферблате.

Описание свойств templateOptions


Пример JSON гистограммы
 1 {
 2       "key": "key1626685094654",
 3       "type": "trv-highcharts-speed",
 4       "dataSourceId": 1,
 5       "templateOptions": {
 6         "title": "Фиксированная ширина и высота",
 7         "fontSizeTitle": 25,
 8         "titleAlign": "center",
 9         "titleMargin": 40,
10         "titleColor": "#000",
11         "chartWidth": 800,
12         "chartHeight": 600,
13         "bgColor": "white",
14         "type": "solidgauge",
15         "rowSolidData": 1,
16         "fill": "#00f0c9",
17         "colMin": 1,
18         "colMax": 2,
19         "solidSize": 90,
20         "yLabelColor": "black",
21         "yLabelEnabled": true,
22         "yTickEnabled": true,
23         "yTickAddMinMax": true,
24         "yLabelFontWeight": 900,
25         "yLabelFontSize": 20,
26         "yLabelTickColor": "blue",
27         "yLabelTickLength": 10,
28         "yLabelTickWidth": 3,
29         "yLabelTickDistance": 20,
30         "seriesData": [
31           {
32             "col": 3,
33             "name": "test2",
34             "type": "solidgauge",
35             "colColor": 86,
36             "customColor": "",
37             "label": {
38               "textAlign": "center"
39             }
40           },
41           {
42             "col": 4,
43             "type": "gauge",
44             "name": "test",
45             "label": {
46               "format": "<div style='text-align:center'><span style='font-size:25px;color: 'black'>{series.name}</span><br/> <span style='font-size:12px;color:silver'>km/h</span></div>",
47               "fontSize": 20,
48               "textAlign": "left",
49               "color": "purple",
50               "margin": 30
51             },
52             "arrow": {
53               "radius": 100,
54               "backgroundColor": "red",
55               "baseWidth": 3,
56               "topWidth": 3,
57               "baseLength": 3,
58               "rearLength": 0,
59               "point": {
60                 "radius": 6,
61                 "color": "red"
62               }
63             }
64           }
65         ],
66         "chartOptions": "{\n    \"pane\": [{\n        \"startAngle\": -90,\n    \"endAngle\": 90,\n    \"center\": [\"50%\", \"85%\"]\n    },\n    {\n        \"startAngle\": -90,\n    \"endAngle\": 90,\n    \"center\": [\"50%\", \"85%\"]\n    }]\n}",
67         "tooltipEnabled": true,
68         "bdColor": "#942cc6"
69       }
70 }

Пример использования

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

датчик спидометра.png
Создать отчёт с данными, на которых будет строиться датчик спидометра

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

отчёт спидометр.png





Создать форму

В форму следует добавить источник данных и элемент.

Добавить источник данных - отчет

В форму добавить источник данных - отчет, где "pivotId" - это идентификатор отчета в навигаторе.

Пример JSON источника - отчета
 1 {
 2       "pivotId": 100,
 3       "parameters": null,
 4       "focusOnFirstCell": true,
 5       "id": 1,
 6       "name": "Отчет",
 7       "isReadOnly": true,
 8       "dataEditRuleIds": [],
 9       "beforeSaveDataActions": [],
10       "afterSaveDataActions": [],
11       "discriminator": "PivotDataSource"
12     }
Добавить элемент - датчик

Добавить элемент "Датчик" и задать у него источник данных - ранее добавленный отчет

источник данных датчик.png






Пример JSON
1 {      
2       ...   
3 
4       "dataSourceId": 309
5      
6       ...
7 }
Настроить тип датчика

В поле "Тип датчика(type)" выбрать значение "Спидометр(solidgauge)".

тип датчика спидометр.png


















Настроить вывод данных

Для того, чтобы данные отображались в виде столбцов, обозначающими кол-во шагов и подписями с датами, необходимо в поле "Расположение рядов" выбрать "столбец" и задать номер строки с подписями

Расположение рядов.png











Пример JSON гистограммы
 1 {
 2           ...
 3 
 4           "templateOptions": {
 5            ...
 6 
 7             "rowCol": "row",            
 8             "nameSing": "1",
 9 
10            ...
11           },
12 
13           ...
14 }






Настроить заголовок датчика

Для того, чтобы создать заголовок достаточно написать его в поле "Заголовок(title)". Настройка расположения заголовка производится с помощью полей "Расположение заголовка(titleAlign)", "Отступ заголовка(titleMargin)". Настройка стиля заголовка производится с помощью полей "Цвет заголовка(titleColor)" и "Размер заголовка(fontSizeTitle)".

заголовок спидометр.png














Пример JSON настройки заголовка
 1 {
 2           ...
 3 
 4           "templateOptions": {
 5             ...
 6 
 7             "title": "Процент выполнения",
 8             "titleAlign": "center",
 9             "titleMargin": 100,
10             "titleColor": "#ff8686",
11             "fontSizeTitle": 60
12           },
13         ...
14 }
Настроить лейблы

Для того, чтобы настроить подписи на графике нужно поставить отметку в поле "Включить лейблы(yLabelEnabled)". Для задания жирности шрифта нужно использовать поле "Начертание лейблов(yLabelFontWeight)", размер шрифта задаётся в поле "Размер шрифта(yLabelFontSize)", а отступ подписей от границы графика задаётся в поле "Отступ лейблов(yLabelTickDistance)".

включить лейблы спидометр.png


















Для того, чтобы настроить штрихи на графике нужно поставить отметку в поле "Включить тики(yTickEnabled)". Настройка стиля тиков задаётся с помощью полей "Цвет тиков(yLabelTickColor)", "Длина тика(yLabelTickLength)" и"Ширина тика(yLabelTickWidth)". Для того, чтобы задать тики на максимуме и на минимуме требуется установить флаг "yTickAddMinMax": true.

включить тики спидометр.png














Пример JSON настройки лейблов и тиков
 1 {
 2           ...
 3 
 4           "templateOptions": {
 5 
 6             ...
 7             "yLabelEnabled": true,
 8             "yTickEnabled": true,
 9             "yLabelColor": "#e5596d",
10             "yLabelFontWeight": 5,
11             "yLabelFontSize": 20,
12             "yLabelTickDistance": 18,
13             "yLabelTickColor": "#c67579",
14             "yLabelTickLength": 10,
15             "yLabelTickWidth": 2,
16             "yTickAddMinMax": true
17 
18           },
19 }



Дополнительные настройки chartOptions

Иногда требуются дополнительные настройки диаграммы для этого используется поле "Редактирование конфигурации(chartOptions)".

конфигурация.png









Например, для того, чтобы задать отстройку размера диаграммы по количеству строк в отчёте следует задать статичную ширину колонки staticScale.

Пример JSON отстройки размера диаграммы по количеству строк
1  {
2     "yAxis": 
3         {
4             "staticScale": 10
5         }
6 }

Для того, чтобы задать всплывающее при наведении окно следует задать "tooltip".

Пример JSON настройка всплывающих окон
1 {
2   "tooltip": {
3     "pointFormat": '{point.name}<br/>Дата начала:{point.date1}<br/>Дата окончания:{point.date2}<br/>В статусе:{point.status}<br/>',       
4         "valueSuffix": '',
5         "shared": false
6     }
7 }
хинт гант.png









Дополнительную информацию по chartOptions можно узнать по ссылке.