Чтобы выполнить отчет, нужно использовать команду report/exec_report:
svc=report/exec_report¶ms={"reportResourceId":<long>, "reportTemplateId":<long>, "reportObjectId":<long>, "reportObjectSecId":<long>, "interval":{ "from":<uint>, "to":<uint>, "flags":<uint> }, "reportTemplate":<object>}
Внимание! Одновременно в сессии может быть выполнен только один отчет, поэтому если в сессии содержаться результаты выполнения предыдущего отчета, то перед выполнением следующего отчета их следует удалить командой report/cleanup_result. Так же данный запрос не может одновременно выполняться со следующими запросами:
Использование данного запроса рассмотрено в примере Отчеты.
Название | Описание |
---|---|
reportResourceId | ID ресурса |
reportTemplateId | ID шаблона |
reportObjectId | ID элемента |
reportObjectSecId | ID подэлемента, например геозоны или уведомления, если у элемента нету подэлементов, то 0 |
interval | настройки интервала отчета |
from | начало интервала, UNIX-время |
to | окончание интервала, UNIX-время |
flags | флаги интервала |
reportTemplate | JSON шаблона отчета, который можно получить выполнив запрос get_report_data (необязательный параметр, используется только если reportTemplateId равен 0) |
reportResourceId является обязательным параметром, от имени создателя данного ресурса будет выполняться отчет если reportTemplateId равен 0.
Флаги интервала:
Флаг | Описание |
---|---|
0x00 | указанный интервал |
0x01 | начиная 'От' до сегодня |
0x02 | за предыдущие n дней |
0x04 | за предыдущие n недель |
0x08 | за предыдущие n месяцев |
0x10 | за предыдущие n лет |
0x20 | включая текущее |
0x40 | за предыдущие n часов |
{ "reportResult":{ /* результат отчета */ "msgsRendered":<int>, /* загружены сообщения: 0 - нет, 1 - да */ "stats":[ /* массив статистических параметров */ [<text>,<text>] /* [название параметра, значение] */ ], "tables":[ /* массив таблиц */ { "name":<text>, /* тип таблицы */ "label":<text>, /* название */ "grouping": { "type":<text> /* тип группировки */ }, "flags":<uint>, /* флаги таблиц (см. ниже) */ "rows":<uint>, /* количество строк */ "level":<uint>, /* максимальное уровень в таблице */ "columns":<uint>, /* количество колонок */ "header":[ <text> /* массив названий столбцов таблицы */ ], "total":[ /* итого */ <text> /* массив ячеек */ ] } ], "attachments":[ /* массив приложений (графиков, видео, фотографий) */ { /* для графиков */ "name":<text>, /* название */ "type":<text>, /* тип: chart - график, photo - фотография */ "datasets":[<text>] /* массив с названиями кривых графика */ }, { /* для фотографий и видео */ "name":<text>, /* название и нижеописанные параметры через ";" */ "ftm":<text>, /* форматированная дата */ "uid":<text>, /* ID объекта */ "tm":<text>, /* время в UNIX формате */ "idx":<text>, /* индекс однотипных вложений зарегистрированных единовременно */ "lat":<text>, /* широта */ "lon":<text>, /* долгота */ "type":<text> /* тип вложения */ } ] }, "reportLayer":{ /* графический слой */ "name":<text>, /* название слоя */ "bounds":[ <double>, /* минимальная широта */ <double>, /* минимальная долгота */ <double>, /* максимальная широта */ <double> /* максимальная долгота */ ] }, "layerCount":<uint> /* количество слоев, которые объединены в слой отчета */ }
Чтобы получить все доступные типы таблиц нужно выполнить запрос report/get_report_tables.
Флаги таблиц:
Флаг | Описание |
---|---|
0x1 | Группировка: по дням |
0x2 | Ограничение по времени |
0x4 | Группировка: по неделям |
0x8 | Группировка: по месяцам |
0x10 | Итого |
0x20 | Графики: разделять датчики |
0x100 | Детализация: частичная |
0x200 | Графики: отсчет с нуля |
0x800 | Детализация: полная |
0x1000 | Нумерация строк |
0x200000 | Группировка по поездкам |
0x400000 | Группировка по типу нарушения |