Вьювер позволяет экспортировать отображаемый отчет либо дашборд в различные форматы. Для работы экспорта не требуется дополнительных настроек вьювера. В таблице ниже перечислены все доступные форматы экспорта для отчетов и дашбордов:

 

Наименование

Отчеты

Дашборды

Document (Snapshot)

+

+

Adobe PDF

+

+

Microsoft XPS

+

-

Microsoft PowerPoint (.pptx)

+

-

HTML

+

+

HTML5

+

-

Text

+

-

Microsoft Word (.docx)

+

-

Microsoft Excel (.xlsx)

+

+

OpenDocument Writer (.odt)

+

-

OpenDocument Calc (.ods)

+

-

Comma Separated Value (.csv)

+

+

Scalable Vector Graphics (.svg)

+

+

 

 

Событие начала экспорта

При необходимости выполнения каких-либо действий перед экспортированием отчета, предназначено событие onBeginExportReport. Событие будет вызвано после отображения диалогового окна экспорта с настройками. В аргументах события будут переданы тип экспорта отчета, сам отчет, а также все настройки выбранного экспорта. Допускается изменение отчета либо его параметров, настроек экспорта и название файла.

 

app.py

 

from stimulsoft_reports.report.enums import StiExportFormat

from stimulsoft_reports.viewer import StiViewer

from stimulsoft_reports.events import StiExportEventArgs

 

def beginExportReport(args: StiExportEventArgs):

  if args.format == StiExportFormat.PDF:

       args.settings['imageQuality'] = 0.90

       args.settings['imageResolution'] = 200

 

viewer = StiViewer()

viewer.onBeginExportReport += beginExportReport

viewer.onBeginExportReport += 'beginExportReport'

 

 

viewer.html

 

<script>

  function beginExportReport(args) {

      if (args.format == Stimulsoft.Report.StiExportFormat.Pdf) {

           args.settings.imageQuality = 0.90;

           args.settings.imageResolution = 200;

       }

   }

</script>

 

 

 

Подробное описание доступных значений аргументов находится в разделе События вьювера.

 

 

Событие завершения экспорта

При необходимости выполнения каких-либо действий после экспортирования отчета перед его сохранением, предназначено событие onEndExportReport. В аргументах события будут переданы тип экспорта отчета, а также имя и байтовые данные экспортированного файла. Допускается изменение имени и байтовых данных экспортированного файла.

 

app.py

 

from stimulsoft_reports.report.enums import StiExportFormat

from stimulsoft_reports.viewer import StiViewer

from stimulsoft_reports.events import StiExportEventArgs

 

def endExportReport(args: StiExportEventArgs):

  if args.format == StiExportFormat.HTML:

       htmlText = args.data

 

viewer = StiViewer()

viewer.onEndExportReport += endExportReport

viewer.onEndExportReport += 'endExportReport'

 

 

viewer.html

 

<script>

  function endExportReport(args) {

      if (args.format == Stimulsoft.Report.StiExportFormat.Html) {

           htmlText = args.data

       }

   }

</script>

 

 

 

Подробное описание доступных значений аргументов находится в разделе События вьювера.

 

 

Настройки экспорта

Иногда требуется отключить неиспользуемые форматы экспорта отчета, и оставить только нужные. Это позволяет разгрузить интерфейс и упростить использование вьювера. Для отключения неиспользуемых форматов экспортов достаточно установить значение False для соответствующих свойств вьювера, например:

 

app.py

 

from stimulsoft_reports.viewer import StiViewer

 

viewer = StiViewer()

viewer.options.exports.showExportToDocument = False

viewer.options.exports.showExportToWord = False

viewer.options.exports.showExportToCsv = False

 

 

 

Также, при необходимости, можно полностью убрать отображение диалоговых окон экспорта, экспортирование всегда будет осуществляться с настройками по умолчанию. В этом случае, настройками можно управлять в событии экспорта. Для отключения диалоговых окон достаточно установить значение False для свойства showExportDialog:

 

app.py

 

from stimulsoft_reports.viewer import StiViewer

 

viewer = StiViewer()

viewer.options.exports.showExportDialog = False

 

 

 

Полный список доступных опций находится в разделе Настройка вьювера.

 

 

Экспортирование отчета из кода

Также доступен экспорт отчета при помощи кода. Для этого предназначен специальный метод exportDocument() у объекта отчета. Подробное описание находится в разделе Экспортирование отчета из кода.