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

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
Метка: новое перенаправление
 
(не показано 80 промежуточных версий этого же участника)
Строка 1: Строка 1:
При настройке [[Платформа 3V/Формы/Дашборд|дашборда]] можно создать диаграмму Ганта. диаграмму Ганта - способ графического отображения данных в виде иллюстрации плана или графика работ.
+
#redirect [[Платформа 3V/Формы/Компоненты/Графики/Диаграмма Ганта]]
 
 
== Описание свойств templateOptions ==
 
{| class="wikitable"
 
|-
 
! Наименование !! Свойство !! Тип !! Описание
 
|-
 
| Тип диаграммы || '''type''' || строковый || Выбор типа диаграммы
 
|-
 
! colspan="4" style="text-align:center;"| '''Общие настройки'''
 
|-
 
| Ширина || '''width''' || числовой || Настройка ширины области диаграммы
 
|-
 
| Высота || '''height''' || числовой || Настройка высоты области диаграммы
 
|-
 
| Заливка || '''backgroundColor''' || строковый || Настройка цвета фона диаграммы
 
|-
 
| Ширина бордюра || '''borderWidth''' || строковый || Настройка толщины границы области диаграммы
 
|-
 
| Цвет бордюра || '''borderColor''' || строковый || Настройка цвета границы области диаграммы
 
|-
 
! colspan="4" style="text-align:center;"| '''Формат шапки'''
 
|-
 
| Ключ|| '''key''' || строковый || Ключ
 
|-
 
| Формат || '''format''' || строковый || Настройка формата
 
|-
 
| Вывести текущую дату || '''currentDateIndicator''' || логический || Флаг, при включении которого выводится линия на текущей дату
 
|-
 
| Ширина линии текущей даты || '''currentDateIndicatorWidth''' || числовой || Настройка ширины линии текущей даты
 
|-
 
| Тип линии || '''currentDateIndicatorDashStyle''' || строковый || Настройка типа линии графика
 
|-
 
| Цвет линии || '''currentDateIndicatorColor''' || строковый || Настройка цвета линии текущей даты
 
|-
 
| Формат || '''currentDateIndicatorFormat''' || строковый || Настройка формата линии текущей даты
 
|-
 
| Анимация || '''animation''' || логический || Флаг, при включении которого диаграмма будет строиться с анимацией
 
|-
 
| Включить подпись || '''enableDataLabels''' || логический || Флаг, при включении которого будет выводится подпись
 
|-
 
| Выводимая колонка || '''enableDataLabelsFormat''' || строковый || 
 
|-
 
| Цвет выводимой колонки || '''enableDataLabelsColor''' || строковый || Настройка цвета выводимой колонки
 
|-
 
! colspan="4" style="text-align:center;"| '''Настройка заголовка'''
 
|-
 
| Заголовок || '''title.text''' || строковый || Задание заголовка диаграммы
 
|-
 
| Отступ || '''title.margin''' || числовой || Отступ заголовка диаграммы сверху
 
|-
 
| Цвет заголовка || '''title.color''' || строковый || Настройка цвета заголовка
 
|-
 
| Размер шрифта || '''title.fontSize''' || строковый || Размер шрифта заголовка диаграммы
 
|-
 
| Выравнивание по вертикали || '''title.align''' || строковый || Выравнивание заголовка по вертикали
 
|-
 
! colspan="4" style="text-align:center;"| '''Настройка подзаголовка'''
 
|-
 
| Заголовок || '''subtitle.text''' || строковый || Задание заголовка диаграммы
 
|-
 
| Отступ || '''subtitle.margin''' || числовой || Отступ заголовка диаграммы сверху
 
|-
 
| Цвет заголовка || '''subtitle.color''' || строковый || Настройка цвета заголовка
 
|-
 
| Размер шрифта || '''subtitle.fontSize''' || строковый || Размер шрифта заголовка диаграммы
 
|-
 
| Выравнивание по вертикали || '''subtitle.align''' || строковый || Выравнивание заголовка по вертикали
 
|-
 
! colspan="4" style="text-align:center;"|'''Данные'''
 
|-
 
| Использовать несколько серий || '''moreSeries''' || логический || Флаг, при включении которого будет возможно использование нескольких серий данных
 
|-
 
| Колонка с данными || '''columnName''' || числовой || Задание номера колонки с данными
 
|-
 
| Колонка начала времени || '''startDate''' || числовой || Задание номера колонки с датой начала периода
 
|-
 
| Колонка завершения времени || '''endDate''' || числовой || Задание номера колонки с датой завершения периода
 
|-
 
| Колонка цвета || '''color''' || строковый || Задание цвета периода
 
|-
 
! colspan="4" style="text-align:center;"|'''Выводимые колонки'''
 
|-
 
| Название || '''nameColumns.label''' || строковый || Задание названия колонки
 
|-
 
| Колонка || '''nameColumns.column''' || числовой || Задания номера столбца из отчёта
 
|-
 
! colspan="4" style="text-align:center;"|'''Настройка выводимых колонок'''
 
|-
 
| Заголовок || '''gridColumns.title''' || строковый || Задание названия колонки
 
|-
 
| Формат || '''gridColumns.format''' || числовой || Задания номера столбца из отчёта
 
|}
 
 
 
 
 
== Пример использования ==
 
=== Одна серия данных без уникальности ===
 
 
 
[[Файл:76642.png|слева]]
 
<br><br><br><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><br><br>
 
 
 
====== Создать форму ======
 
В форму следует добавить источник данных и элемент.
 
 
 
====== Добавить источник данных ======
 
В форму добавить источник данных - отчет, где "pivotId" - это идентификатор отчета в навигаторе.
 
 
 
<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>
 
  {
 
      "pivotId": 55547,
 
      "parameters": [],
 
      "focusOnFirstCell": false,
 
      "id": 55547,
 
      "name": "План загрузки по договорам",
 
      "isReadOnly": false,
 
      "dataEditRuleIds": [],
 
      "dataEditExpressionIds": [],
 
      "beforeSaveDataActions": [],
 
      "beforeSaveActions": [],
 
      "afterSaveDataActions": [],
 
      "afterSaveActions": [],
 
      "discriminator": "PivotDataSource"
 
  }
 
</syntaxhighlight>
 
</div></div>
 
 
 
====== Добавить элемент - диаграмма ======
 
Добавить в "элементы" диаграмму и задать у нее источник данных - ранее добавленный отчет
 
<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>
 
{     
 
      ... 
 
 
 
      "dataSourceId": 309
 
   
 
      ...
 
}
 
</syntaxhighlight>
 
</div></div>
 
 
 
====== Настроить вывод данных ======
 
Для отображения данных требуется добавить обязательные источники данных - номера столбцов отчёта: "columnName" - наименование периода, "startDate" - дата начала периода, "endDate" - окончание периода, "color" - цвет периода(опционально).
 
<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>
 
  {
 
          ...
 
          "templateOptions": {
 
            ...
 
              "columnName": 3,
 
              "startDate": 6,
 
              "endDate": 7,
 
              "color": 5
 
            }
 
            ...
 
  }
 
</syntaxhighlight>
 
</div></div>
 
 
 
Для отображения таблицы в nameColumns есть возможность задать некоторые названия для вытащенных колонок, в дальнейшем в gridColumn нужно задать заголовки и объявить названия колонок, которые были заданы в nameColumns в формате {point.label}, где label - объявленное название.
 
<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>
 
        "data": {
 
          "columnName": 2,
 
          "startDate": 3,
 
          "endDate": 4,
 
          "color": null,
 
          "nameColumns": [
 
            {
 
              "label": "step",
 
              "column": 2,
 
              "percent": false,
 
              "colorPercentColumn": null
 
            },
 
            {
 
              "label": "date",
 
              "column": 5,
 
              "percent": false,
 
              "colorPercentColumn": null
 
            }
 
          ]
 
        },       
 
        "gridColumns": [
 
          {
 
            "format": "{point.step}",
 
            "title": "Этап"
 
          },
 
          {
 
            "format": "{point.date}",
 
            "title": "Дата старта"
 
          }
 
        ]
 
</syntaxhighlight>
 
</div></div>
 
 
 
====== Настройка текущей даты ======
 
Для того, чтобы на графике показать текущую дату следует отметить флаг "Вывести текущую дату", после этого следует указать формат даты "currentDateIndicatorFormat": "%a, %b %d %Y, %H:%M"
 
 
 
====== Настройка шапки ======
 
Для настройки отображения шапки-календаря диаграммы необходимо настроить formatHeader. Для более точной работы следует явно указывать свойство tickInterval - количество миллисекунд в нужном интервале
 
<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>
 
{
 
        "formatHeader": [
 
              {
 
                "key": "year",
 
                "format": "%Y",
 
                "tickInterval": null
 
              },
 
{
 
                "key": "month",
 
                "format": "%b",
 
                "tickInterval": 2592000000
 
              },
 
              {
 
                "key": "month",
 
                "format": "%m",
 
                "tickInterval": 2592000000
 
              }
 
            ],
 
}
 
</syntaxhighlight>
 
</div></div>
 
 
 
====== Уникальность и серии данных ======
 
 
 
 
 
 
 
 
 
 
 
====== Настроить заголовок диаграммы ======
 
Для того, чтобы создать заголовок достаточно написать его в поле "Заголовок". Настройка стиля заголовка производится с помощью полей "Размер шрифта" и "Цвет заголовка". Настройка расположения заголовка производится с помощью поля "Отступ".
 
[[Файл:Гант заголовок подзаголовок.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>
 
<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>
 
"title": {
 
              "text": "Test",
 
              "margin": 20,
 
              "fontSize": 16,
 
              "color": null
 
            },
 
            "subtitle": {
 
              "fontSize": 12,
 
              "text": null,
 
              "margin": null,
 
              "color": null
 
            }
 
</syntaxhighlight>
 
</div></div>
 
 
 
=== Одна серия данных с уникальностью ===
 
[[Файл:1 серия + уникальность.png|слева]]
 
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
 
Отличие данного типа диаграммы Ганта в использовании уникальности данных. Уникальность проверяется по наименованию(columnName), каждое повторяющееся значение в columnName будет объединено в одну строку в диаграмме.
 
<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>
 
  {
 
    "moreSeries": false,
 
    "uniqueNames": true
 
  }
 
</syntaxhighlight>
 
</div></div>
 
Иногда требуются дополнительные настройки диаграммы для этого используется свойство chartOptions. Например, для того, чтобы задать отстройку размера диаграммы по количеству строк в отчёте следует.....
 
<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>
 
{
 
  "chartOptions": "{\n    \"yAxis\":\n        {\n            \"staticScale\": 50\n        }\n        \n}\n\n\n "
 
}
 
</syntaxhighlight>
 
</div></div>
 
=== Несколько серий без уникальности ===
 
[[Файл:несколько серий без уникальности.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>
 
Отличие данного типа диаграммы Ганта в использовании нескольких серий данных.
 
Для этого в отчёте следует настроить столбец с сериями. В нём обязательно должна быть сортировка по наименованию. Столбец включает в себя название серии, после которой идут пустые строки столбца, так определяется серия данных, блок данных с названием серии и пустыми строками под ней и будут являться серией данных. Обязательно нужно настроить в конструкторе отчёта пропуск дубликатов, иначе диаграмма отстроится на разных сериях данных с одинаковым названием(вставить скрин)
 
[[Файл:отчёт для нескольких серий.png|мини]]
 
<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>
 
  {
 
    "moreSeries": true,
 
    "uniqueNames": false
 
  }
 
</syntaxhighlight>
 
</div></div>
 
=== Несколько серий с уникальностью ===
 
[[Файл:несколько серий + уникальность.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>
 
<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>
 
  {
 
    "moreSeries": true,
 
    "uniqueNames": true
 
  }
 
</syntaxhighlight>
 
</div></div>
 

Текущая версия на 08:33, 16 сентября 2021