Загрузка и сохранение отчета
Информация |
Файл формата Stimulsoft MRT и MDC - это описание отчетов с разметкой XML или JSON. Вы можете использовать MRT и MDC файлы, созданные в других дизайнерах Stimulsoft.
|
Отчет может храниться в виде шаблона отчета (MRT файл), либо в виде построенного отчета (MDC документ), предназначенного для последующего просмотра либо экспортирования. Для загрузки отчета при помощи Python кода можно использовать один из перечисленных ниже методов у объекта StiReport. Каждый из методов принимает на вход имя файла отчета либо сам отчет в виде строки:
Наименование |
Описание |
loadFile(filePath: str, load: bool = False) |
Загружает шаблон отчета из MRT файла на стороне клиента, путь к которому указан в аргументах функции. Если параметр load установлен в значение True, файл отчета будет загружен на стороне сервера и передан на сторону клиента в виде упакованной Base64 строки. |
load(data: str, fileName: str = 'Report') |
Загружает шаблон отчета из XML или JSON строки и передает его на сторону клиента в виде упакованной Base64 строки. Параметр fileName устанавливает имя файла, которое будет использоваться для последующего сохранения и экспорта отчета. |
loadPacked(data: str, fileName: str = 'Report') |
Загружает и передает на сторону клиента шаблон отчета в виде упакованной Base64 строки, заданной в параметре data. Параметр fileName устанавливает имя файла, которое будет использоваться для последующего сохранения и экспорта отчета. |
loadDocumentFile(filePath: str, load: bool = False) |
Загружает построенный отчет из MDC файла на стороне клиента, путь к которому указан в параметрах функции. Если параметр load установлен в значение True, файл документа будет загружен на стороне сервера и передан на сторону клиента в виде упакованной Base64 строки. |
loadDocument(data: str, fileName: str = 'Report') |
Загружает построенный отчет из XML или JSON строки и передает его на сторону клиента в виде упакованной Base64 строки. Параметр fileName устанавливает имя файла, которое будет использоваться для последующего сохранения и экспорта отчета. |
loadPackedDocument(data: str, fileName: str = 'Report') |
Загружает и передает на сторону клиента построенный отчет в виде упакованной Base64 строки, заданной в параметре data. Параметр fileName устанавливает имя файла, которое будет использоваться для последующего сохранения и экспорта отчета. |
Пример загрузки отчета из файла на стороне сервера из приватной директории и передача его на сторону клиента в виде упакованной строки для последующего построения:
app.py |
from stimulsoft_reports.report import StiReport
report = StiReport() report.loadFile(url_for('static', filename='reports/SimpleList.mrt'), True) report.render()
|
В режиме построения отчета на стороне JavaScript клиента, генератор отчетов Python на стороне сервера не имеет доступа к объекту отчета. В этом случае, для сохранения шаблона отчета или документа необходимо воспользоваться событиями и JavaScript функциями. Более подробно про это указано в разделе События генератора отчетов.
Пример сохранения построенного отчета в виде строки для последующего использования:
app.py |
from stimulsoft_reports.report import StiReport
report = StiReport() report.onAfterRender += 'afterRender' report.loadFile(url_for('static', filename='reports/SimpleList.mrt'), True) report.render()
|
report.html |
<script> function afterRender(args) { let json = args.report.saveDocumentToJsonString(); } </script>
|
Полный код примера доступен на GitHub.
В режиме построения отчета на стороне сервера, для сохранения отчета предназначен один из перечисленных ниже методов:
Наименование |
Описание |
saveDocument(filePath: str = None) |
Сохраняет построенный отчет в виде MDC файла, путь к которому указан в аргументах функции. Если параметр filePath не указан, то вместо сохранения файла метод вернет отчет в виде JSON строки. |
savePackedDocument(filePath: str = None) |
Сохраняет построенный отчет в виде упакованного MDZ файла, путь к которому указан в аргументах функции. Если параметр filePath не указан, то вместо сохранения файла метод вернет отчет в виде упакованной Base64 строки. |
Например, требуется сохранить построенный отчет в виде файла на стороне сервера:
app.py |
from stimulsoft_reports.report import StiReport from stimulsoft_reports.report.enums import StiEngineType
report = StiReport() report.engine = StiEngineType.SERVER_NODE_JS report.loadFile(url_for('static', filename='reports/SimpleList.mrt'), True) report.render() report.saveDocument(url_for('static', filename='reports/SimpleList.mdc'))
|
Полный код примера доступен на GitHub.
Информация |
Генератор отчетов Stimulsoft Reports.PYTHON и аналитические панели Stimulsoft Dashboards.PYTHON поддерживают сохранение MRT- и MDC-файлов только в JSON формат. MRT-файлы в формате XML поддерживаются только в режиме загрузки, и при сохранении будут автоматически преобразованы в JSON формат.
Так как для аналитических панелей всегда нужны данные, они не могут быть сохранены в виде документа. Stimulsoft Dashboards.PYTHON поддерживает сохранение панелей только в виде шаблона с использованием JavaScript события и функций.
При сохранении документа из меню вьювера, файл также сохраняется в JSON формате, и имеет расширение MDC для стандартного документа, MDZ для упакованного документа, MDX для зашифрованного документа.
|