Содержание

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

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

svc=report/exec_report&params={"reportResourceId":<long>,
			       "reportTemplateId":<long>,
			       "reportObjectId":<long>,
			       "reportObjectSecId":<long>,
			       "reportObjectIdList":[<uint>, ...]},
			       "interval":{
			       		"from":<uint>,
			       		"to":<uint>,
			       		"flags":<uint>
			       },
                               "remoteExec":<uint>,
 
			       "reportTemplate":<object>}

:!: Внимание! Одновременно в сессии может быть выполнен только один отчет, поэтому если в сессии содержаться результаты выполнения предыдущего отчета, то перед выполнением следующего отчета их следует удалить командой report/cleanup_result. Так же данный запрос не может одновременно выполняться со следующими запросами:

:!: Использование данного запроса рассмотрено в примере Отчеты.

Параметры

Название Описание
reportResourceId ID ресурса
reportTemplateId ID шаблона
reportObjectId ID элемента
reportObjectSecId ID подэлемента, например геозоны или уведомления, если у элемента нету подэлементов, то 0
reportObjectIdList массив ID дополнительных элементов (для отчета по группам объектов)
interval настройки интервала отчета
from начало интервала, UNIX-время
to окончание интервала, UNIX-время
flags флаги интервала
remoteExec1 - выполнение отчета на сервере(необязательный параметр, используется только с последующим выполнением запроса report/get_report_status);в ответ приходит пустой json, значит сервер принял отчет для обработки
reportTemplate JSON шаблона отчета, который можно получить выполнив запрос get_report_data (необязательный параметр, используется только если reportTemplateId равен 0)

:!: reportResourceId является обязательным параметром, от имени создателя данного ресурса будет выполняться отчет если reportTemplateId равен 0.

Флаги интервала:

Флаг Описание
0x00 указанный интервал
0x01 начиная 'От' до сегодня
0x02 за предыдущие n дней
0x04 за предыдущие n недель
0x08 за предыдущие n месяцев
0x10 за предыдущие n лет
0x20 включая текущее
0x40 за предыдущие n часов
0x80 за предыдущие 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>			/* массив ячеек */
				],
				"header_type" [<text>],		/* массив типов столбцов таблицы */
				"totalRaw" [				/* Массив значений для строки Итого */
				{		
				"v":<double>,	/* исходное значение ячейки */
				"vt":<double>,	/* тип значения */
				}
				...
				] 
			}
		],
		"attachments":[			/* массив приложений (графиков, видео, фотографий) */
			{		/* для графиков */
				"name":<text>,		/* название */
				"type":<text>,		/* тип: chart - график, photo - фотография */
				"datasets":[<text>]	/* массив с названиями кривых графика */
				"axis_y":[<text>],	/* Массив наименований для оси Y */
				"axis_x": <text>, /* Наименование оси X */
				"flags": <uint>, /* Формат оси, описание ниже */
				"p":<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 Нумерация строк
0x4000 Группировка: по сменам
0x200000 Группировка по поездкам
0x400000 Группировка по типу нарушения
0x10000000 Группировка: по дням недели
0x20000000 Группировка: по дням месяца
0x40000000 Группировка: по году

Флаги графиков:

Флаг Добавочный флаг Описание
0x4 Корректируемый максимум для оси Y
0x10 Формат заданный в настройках шаблона
0x2 Добавочный для 0x10
0x4 Добавочный для 0x10
0x80 Общий тип
0x100 24х часовой формат
0x20 24х часовой формат (добавочный для 0x100)
0x2 12ти часовой формат (добавочный для 0x20)
0x40 Отображение дней недели (добавочный для 0x100)