Чтобы выполнить отчет, нужно использовать команду report/exec_report:
svc=report/exec_report¶ms={"reportResourceId":<long>, "reportTemplateId":<long>, "reportObjectId":<long>, "reportObjectSecId":<long>, "interval":{ "from":<uint>, "to":<uint>, "flags":<uint> }, "tzOffset":<uint>, "lang":<text>}
Внимание! Одновременно в сессии может быть выполнен только один отчет, поэтому если в сессии содержаться результаты выполнения предыдущего отчета, то перед выполнением следующего отчета их следует удалить командой report/cleanup_result.
Использование данного запроса рассмотрено в примере Отчеты.
| Название | Описание |
|---|---|
| reportResourceId | ID ресурса |
| reportTemplateId | ID шаблона |
| reportObjectId | ID элемента |
| reportObjectSecId | ID подэлемента, например геозоны или уведомления, если у элемента нету подэлементов, то 0 |
| interval | настройки интервала отчета |
| from | начало интервала, UNIX-время |
| to | окончание интервала, UNIX-время |
| flags | флаги интервала |
| tzOffset | часовой пояс (см. Часовые пояса) |
| lang | язык (двухбуквенный код) |
Флаги интервала:
| Флаг | Описание |
|---|---|
| 0x00 | указанный интервал |
| 0x01 | начиная 'От' до сегодня |
| 0x02 | за предыдущие n дней |
| 0x04 | за предыдущие n недель |
| 0x08 | за предыдущие n месяцев |
| 0x10 | за предыдущие n лет |
| 0x20 | включая текущее |
| 0x40 | за предыдущие n часов |
{ "reportResult":{ /* результат отчета */ "msgsRendered":<int>, /* загружены сообщения: 0 - нет, 1 - да */ "stats":[ /* массив статистических параметров */ [<text>,<text>] /* [название параметра, значение] */ ], "tables":[ /* массив таблиц */ { "nm":<text>, /* тип таблицы */ "text":<text>, /* название */ "f":<uint>, /* флаги таблиц (см. ниже) */ "r":<uint>, /* количество строк */ "c":<uint>, /* количество колонок */ "h":[<text>], /* массив названий столбцов таблицы */ "t":[<text>] /* итого */ } ], "attachments":[ /* массив приложений (графиков, фотографий) */ { "n":<text>, /* название */ "t":<text> /* тип: chart - график, photo - фотография */ } ] }, "reportLayer":{ /* графический слой */ "name":<text>, /* название слоя */ "bounds":[ <double>, /* минимальная широта */ <double>, /* минимальная долгота */ <double>, /* максимальная широта */ <double> /* максимальная долгота */ ], "units": [{ /* объекты */ "id": <long>, /* ID объекта */ "msgs":{ /* сообщения */ "count":<uint>, /* количество сообщений */ "first":{ /* первое сообщение из интервала */ "time":<uint>, /* время */ "lat":<double>, /* широта */ "lon":<double> /* долгота */ }, "last":{ /* последнее сообщение из интервала */ "time":<uint>, /* время */ "lat":<double>, /* широта */ "lon":<double> /* долгота */ } }, "mileage":<double>, /* пробег */ "max_speed":<double> /* максимальная скорость */ }] }, "layerCount":<uint> /* количество слоев, которые объединены в слой отчета */ }
Чтобы получить все доступные типы таблиц нужно выполнить запрос report/get_report_tables.
Флаги таблиц:
| Флаг | Описание |
|---|---|
| 0x1 | Группировка: по дням |
| 0x2 | Ограничение по времени |
| 0x4 | Группировка: по неделям |
| 0x8 | Группировка: по месяцам |
| 0x10 | Итого |
| 0x20 | Графики: разделять датчики |
| 0x100 | Детализация: частичная |
| 0x200 | Графики: отсчет с нуля |
| 0x800 | Детализация: полная |
| 0x1000 | Нумерация строк |
|