Мой первый отчет
Общее описание
В данном подразделе будет рассмотрен процесс создания простого отчета с помощью сервера отчетов. Для работы необходимо удостовериться, что установка сервера отчетов прошла успешно.
Первый шаблон
Для формирования отчета необходимо создать шаблон документа в формате DOCX или XLSX с помощью MS Word/Excel, LibreOffice Writer/Calc, Google Docs и т.п.
Шаблоны документов могут содержать теги, которые будут заменены входными данными из запроса. Тег задается в квадратных скобках. Пример: [задолженность]. Подробнее про создание шаблонов в формате DOCX и XLSX можно прочитать в разделе Сервис формирования отчетов из документа-шаблона.
Для первого отчета создадим простой шаблон в формате DOCX, который содержит несколько тегов: first_report_template.docx. Примеры более сложных шаблонов можно найти в архиве примеров.
Созданный шаблон размещаем на сервере в директории templates, расположенной в директории приложения сервиса.
Примечание
Шаблоны страниц в формате PDF хранятся в директории templates/pdf, расположенной в директории приложения сервиса.
Первый запрос
Далее формируем HTTP-запрос.
Запрос для первого отчета в формате JSON будет выглядеть следующим образом: first_report.json. Документ-шаблон, созданный ранее, указан в атрибуте id элемента template. Примеры более сложных запросов можно найти в архиве примеров.
Примечание. Также для запросов в формате DOCX или XLSX может быть использован формат XML.
Для получения файла отчета используем Сервис формирования отчетов из документа-шаблона.
Для получения первого отчета на основе созданного шаблона DOCX используем URI http://localhost:8886/word_report_json.
Описание
Наименование сервиса |
Сервис формирования отчетов из документа-шаблона |
Путь к сервису |
[host]:[port]/word_report_json |
Метод |
POST |
Параметры |
Тело запроса должно содержать JSON объект:
|
input-data - входные данные для подстановки в шаблон.
|
Пример запроса
curl -X POST \
'http://localhost:8886/word_report_json' \
-H 'Content-Type: application/json' \
-d '{
"template":
{
"uri": "local",
"id": "examples/docx/first_report_template"
},
"input-data":
{
"ORGANIZATION": "АО «Пример»",
"DATE": "01.01.2023",
"EMP": "Иванов Иван Иванович"
}
}'
Пример запроса для сохранения результата в файл без кодирования в base64
curl -X POST \
'http://localhost:8886/word_report_json' \
-H 'Content-Type: application/json' \
-d '{
"template":
{
"uri": "local",
"id": "examples/docx/first_report_template"
},
"input-data":
{
"ORGANIZATION": "АО «Пример»",
"DATE": "01.01.2023",
"EMP": "Иванов Иван Иванович"
},
"options":
{
"output-mode": "binary"
}
}'
-o first_report.docx
Получение первого ответа
Формат возвращаемого ответа
{
error: {
code:
message:
}
result: "[base64 encoded docx/pdf file]"
}
Пример ответа
{
"error": null,
"result": "UEsDBBQACAAIAPdKo...JwAAAAA="
}
Завершение
В итоге получаем файл документа первого отчета в формате DOCX, закодированный в base64, или сообщение об ошибке.