Информация

 

Файл формата 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 для зашифрованного документа.