Report Manager ожидает бэкенд сервер для загрузки данных. Передайте ссылку на сервер через параметр url:
webix.ui({
view: "reports",
url:"https://docs.webix.com/reports-backend/"
});
Report Manager загружает и сохраняет данные, используя следующие URL:
Вы можете скачать готовый бэкенд для Report Manager.
Если у вас нет бэкенд сервера, вы можете кастомизировать методы сервиса Backend и предоставлять клиентские данные в виде промиса.
Сервис Backend это серверная модель, у которой есть методы для запросов на сервер. Они вызываются сервисом Local при необходимости загрузки или сохранения данных.
Ниже вы найдёте полный список методов.
Чтобы менять запросы, получать и обрабатывать ответные данные вы можете:
class MyBackend extends reports.services.Backend {
// новые методы
}
webix.ui({
view: "reports",
url:"https://docs.webix.com/reports-backend/",
override: new Map([[reports.services.Backend, MyBackend]]),
});
Вы можете отправлять AJAX запросы на ваш сервер с помощью необходимых URL, напр.:
Сохраняем модуль
class MyBackend extends reports.services.Backend {
saveModule(id, data) {
return webix.ajax("//localhost:3200/modules", {id, data})
.then(res => res.json());
}
}
Возвращаем промис с отчётами
class MyBackend extends reports.services.Backend {
getModules() {
return webix.promise.resolve(modules);
}
}
Related sample: Report Manager: Local Data
Смотрите требуемый формат входящих данных.
В этой секции вы найдёте детальное описание следующих методов:
Вызывается при инициализации виджета.
Returns: промис с массивом модулей (отчётов).
Request:
GET http://localhost:3000/api/modules
Response:
Сервер возвращает массив объектов модулей.
[
{
id: 22,
name: "Company per region",
text: "{
"desc":"Created on 10/28/2020",
"data":"companies",
"joins":[...],
"query":"",
"columns":[{"id":"companies.region_id","name":"Region",...],
"group":{"by":[{"id":"companies.region_id"}],"columns":[...]},
"meta":{"freeze":1},"sort":null}",
updated: "2020-10-29T12:38:14Z"
},
// другие модули
]
Добавляет новый модуль.
Parameters:
Returns: промис с объектом ID модуля.
Request:
POST http://localhost:3000/api/modules
Form data
name: New report
text: {/* настройки отчёта */}
Response:
Сервер возвращает объект с ID модуля.
{"id":193}
Обновляет указанный модуль.
Parameters:
Returns: промис с объектом ID модуля.
Request:
PUT http://localhost:3000/api/modules/193
Form data
name: Updated report
text: {/* настройки отчёта */}
Response:
Сервер возвращает объект ID модуля.
{"id":193}
Удаляет указанный модуль.
Parameters:
Returns: промис с объектом ID модуля.
Request:
DELETE http://localhost:3000/api/modules/193
Response:
Сервер возвращает объект ID модуля.
{"id":193}
Вызывается, когда пользователь переходит во вкладку запросов фильтрации.
Returns: промис с массивом запросов дял фильтрации.
Request:
GET http://localhost:3000/api/queries
Response:
Сервер возвращает массив с объектами запросов.
[
{
"id":20,
"text":"{...query config}",
"name":"My Filter"
},
{
"id":29,
"text":"{...query config}",
"name":"Copy of My Filter"
},
// другие запросы
]
Добавляет новый запрос.
Parameters:
Returns: промис с объектом ID запроса.
POST http://localhost:3000/api/queries
Form data
name: My query
text: {/* настройки запроса */}
Response:
Сервер возвращает объект с ID запроса.
{"id":14}
Обновляет указанный запрос.
Parameters:
Returns: промис с объектом ID запроса.
Request:
PUT http://localhost:3000/api/queries/14
Form data
name: Updated query
text: {/* настройки запроса */}
Response:
Сервер возвращает объект ID запроса.
{"id":14}
Удаляет указанный запрос.
Parameters:
Returns: промис с объектом ID запроса.
Request:
DELETE http://localhost:3000/api/queries/id
Response:
Сервер возвращает объект ID запроса.
{"id":14}
Вызывается, когда пользователь открывает настройки отчёта.
Returns: промис с хэшем источников данных.
Request:
GET http://localhost:3000/api/objects
Response:
Сервер возвращает объект с источниками данных для отчётов.
{
companies: {id: "companies", name: "Companies",…}
persons: {id: "persons", name: "Persons",…},
products: {id: "products", name: "Products",…},
sales: {id: "sales", name: "Sales",…}
}
Загружает данные отчёта. Метод вызывается, когда пользователь выбирает какой-либо отчёт.
Parameters:
Returns: промис с массивом данных отчёта.
Request:
POST http://localhost:3000/api/objects/api/objects/sales/data
Form data
query:
columns: ["companies.name","sum.products.price",...]
joins: [{"sid":"sales","tid":"products",...]
limit:
group: ["companies.name","year.sales.when"]
Response:
Сервер возвращает данные отчёта.
[
{
"companies.name":"Beatty Group",
"sum.products.price":"199884",
"year.sales.when":"1900"
},
{
"companies.name":"Beatty Group",
"sum.products.price":"133256",
"year.sales.when":"1901"
},
// другие объекты
]
Вызывается, когда пользователь выбирает источник данных.
Parameters:
Returns: промис с массивом объектов опций.
Request:
GET http://localhost:3000/api/fields/persons.company_id/options
Response:
Сервер возвращает массив объектов опций.
[
{"id":"1","value":"South"},
{"id":"2","value":"North"},
// другие опции
]
Вызывается, когда пользователь выбирает поле запроса.
Parameters:
Returns: промис с массивом опций поля.
Request:
GET http://localhost:3000/api/fields/persons.phone/suggest
Response:
Сервер возвращает массив опций поля.
["1042288384","1053082574",...]
Наверх