Работа с календарем

Функционал сортировки по другому столбцу, описанный на этой странице, не работает для виджета Сводная таблица

Разбиение данных по датам

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

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

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

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

     

  2. Теперь необходимо заполнить поля Х и Y, перетащив в них необходимые столбцы. Для оси X выберем столбец datakey из таблицы Календарь (он содержит даты), для оси Y – столбец Выручка таблицы factonlinesales:

    Как видите, данные отсортировались по датам.

Сортировка календарных значений в виджете

Некоторые значения, добавленные из таблицы календаря, сортируются в виджете по алфавиту. Например, при разбиении данных по месяцам, первым месяцем будет Август, затем Апрель, а завершающим будет Январь. Чтобы изменить такое поведение, администратору платформы необходимо произвести дополнительные настройки.

Во-первых, необходимо добавить в таблицу календаря, используемую в источнике данных, столбец с буквенными индексами каждого месяца, расположенными в алфавитном порядке. То есть, месяцу Январь в столбце Название месяца должен соответствовать индекс А в столбце Индекс месяца, февралю – B, марту - C и т.д.:

Наличие индексов позволит отсортировать месяцы нужным образом.

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

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

  1. Откройте дашборд, на котором находится виджет с данными, разбитыми по месяцам:

    Как видно на скриншоте, месяцы отсортированы по алфавиту. Теперь мы отсортируем их таким образом, чтобы первым месяцем был январь, а последним - декабрь.

  2. Нажмите клавишу F12, чтобы открыть консоль разработчика, и перейдите на вкладку Network:

  3. В секции Name выберите запрос с названием model, перейдите на вкладку Response и скопируйте полученный JSON-код ответа в какой-нибудь редактор кода:

     

  4. Извлеките из JSON-кода следующую информацию (она понадобится для отправки HTTP-запроса):

    • Идентификатор используемой TOM модели. Это значения поля id на самом верхнем уровне кода JSON. Например:

    • Идентификатор таблицы календаря. В массиве tables найдите таблицу загруженного календаря и скопируйте ее id. Например:

       

    • Идентификатор колонки, которую вы будете сортировать. В массиве columns таблицы загруженного календаря, найдите значение id колонки, которую вы будете сортировать (Месяц). Например:

       

    • Идентификатор колонки, по которой вы будете сортировать. В массиве columns таблицы загруженного календаря найдите значение id колонки, по которой вы будете сортировать (Индекс месяца). Например:

       

  5. В консоли разработчика перейдите на вкладку Network > Headers, и в секции Request Headers скопируйте Bearer токен, указанный в Authorization. Он также будет использован в HTML-запросе:

  6. Откройте какое-нибудь приложение, используемое для отправки HTTP-запросов, например, Postman.

  7. Отправьте PATCH запрос по адресу:
    http://<platform-ip>/v3/formula-engine/api/v1/workspaces/4DE8029C-7E04-4F6B-9C46-D02B4F493192/datasets/<model-ID>/tables/<table-ID>/columns/<column-ID>
    где:
    <platform-ip> – домен или IP-адрес сервера платформы;
    <model-ID> – идентификатор используемой TOM модели, скопированный ранее (см. пример выше);
    <table-ID> – идентификатор таблицы календаря, которая содержит колонку, данные которой вы хотите отсортировать (см. пример выше);
    <column-ID> – идентификатор колонки, данные которой вы хотите отсортировать (см. пример выше).

Пример запроса в Postman:
PATCH http://192.168.44.23/v3/formula-engine/api/v1/workspaces/4DE8029C-7E04-4F6B-9C46-D02B4F493192/datasets/5e3650be-8079-4810-975a-0349167d9ebf/tables/ddf5c2ae-c3f4-46f9-a1b8-1f5264afd6fa/columns/7776fe46-15c5-4458-9329-8ca0d55ead5a

Параметры запроса:

 

Key

Value

 

Key

Value

Headers

Accept

*/*

Authorization

Bearer Token, полученный из консоли разработчика (см. пункт 5).

Content-Type

application/json

Body

 

Введите следующую строку в качестве raw JSON data. Она указывает колонку, по которой необходимо проводить сортировку:

{ "sortByColumnId" : "323eef3e-elb6-404d-b5fc-6384d6a9182d" }

где 323eef3e-elb6-404d-b5fc-6384d6a9182d – идентификатор колонки, который был скопирован в пункте 4 (Индекс месяца).



В случае успешного выполнения запроса сервер возвращает ответ с кодом 200 OK.

7. После отправки запроса необходимо обновить страницу дашборда. Если все действия были выполнены правильно, виджет отсортирует поле Месяц по полю Индекс месяца и названия месяцев отобразятся корректно:


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

Загрузка календаря

На этой странице


Время чтения: 3 мин.


Видео


Нужна дополнительная помощь?

Свяжитесь с технической поддержкой