Содержание

Выполнение отчета

Чтобы выполнить отчет, нужно использовать команду report/exec_report:

svc=report/exec_report&params={"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 Группировка по типу нарушения