Файл опиÑÐ°Ð½Ð¸Ñ Ð¾Ñ‚Ñ‡ÐµÑ‚Ð° - Ñто Ñкрипт Ñ json-Ñодержимым. Сохраните файл в формате *.rep.
Объект json должен Ñодержать полÑ:
'id'
- идентификатор отчёта. Строка. ОбÑзательный параметр.
'description'
- Ðазвание отчёта, которое будет отображатьÑÑ Ð² ÑпиÑке. Строка. ОбÑзательный параметр.
'params'
- JSON-объект, Ñодержит ÑпиÑок параметров Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¼. Введенные пользователем параметры подÑтавлÑÑŽÑ‚ÑÑ Ð² 'query
'. ÐеобÑзательный параметр.
'query'
- SQL запроÑ, выполнÑемый Ð´Ð»Ñ Ñ„Ð¾Ñ€Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… отчёта. ЯвлÑетÑÑ Ð¾Ð±Ñ‹Ñ‡Ð½Ñ‹Ð¼ запроÑом MySQL, Ñ Ð¾Ð³Ñ€Ð°Ð½Ð¸Ñ‡ÐµÐ½Ð¸ÐµÐ¼ на выполнение запроÑов изменÑющих БД (UPDATE, INSERT
и т.п. запрещены), параметры указанные в params
подÑтавлÑÑŽÑ‚ÑÑ ÐºÐ°Ðº ":<param_id>
"
'lang'
- JSON-объект, Ñодержит Ñтроки локализации Ð´Ð»Ñ description
и name
параметров, еÑли не указан, или отÑутÑтвует Ð»Ð¾ÐºÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ Ñзыка - иÑпользуютÑÑ Ð·Ð°Ð´Ð°Ð½Ð½Ñ‹Ðµ выше Ñтроки. ÐеобÑзательный параметр.
формат Ð¿Ð¾Ð»Ñ 'params':
{
"<id параметра1>":{
"name": "<Ð¸Ð¼Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° в интерфейÑе>",
"default": "<значение по умолчанию>"
},
"<id параметра2>":{
"name": "<Ð¸Ð¼Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° в интерфейÑе>",
"default": "<значение по умолчанию>"
},
...
}
формат Ð¿Ð¾Ð»Ñ 'lang' повторÑет оÑновной формат Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸ÐµÐ¼ локализации, например:
{
"ru":{
"description":"ОпроÑÑ‹",
"params":{
"confroom":{
"name": "JID конференции"
}
}
}
}
Готовый файл опиÑÐ°Ð½Ð¸Ñ Ð¾Ñ‚Ñ‡ÐµÑ‚Ð° выглÑдит так:
"id": "user_creator",
"description":"confs",
"params": {
"dateFrom": {
"name": "From",
"default": "2016-01-01"
},
"dateTo": {
"name": "Until",
"default": "2017-12-31"
},
"llogin": {
"name": "User login field (login)",
"default": "test"
}
},
"query": "SELECT confroom_id FROM `appointments` JOIN users u USING (uid) WHERE u.login = :llogin AND startTime BETWEEN :dateFrom and :dateTo ",
"lang": {
"ru": {
"description": "Конференции пользователÑ",
"params": {
"dateFrom": {
"name": "Дата начала"
},
"dateTo": {
"name": "Дата окончаниÑ"
},
"llogin": {
"name": "User login field (login)"
}
}
}
}
}