Вьювер позволяет экспортировать отображаемый отчет в PDF, XPS, PowerPoint, HTML, Text, Word, ODT, Excel, ODC, CSV, JSON, SVG форматы. Дашборд может быть преобразован в PDF, Excel, HTML форматы. Для работы экспорта не требуется дополнительных настроек вьювера.

 

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

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

 

viewer.php

 

<?php

$viewer = new \Stimulsoft\Viewer\StiViewer();

$viewer->onBeginExportReport = 'onBeginExportReport';

$viewer->renderHtml();

?>

 

function onBeginExportReport(args) {

var format = args.format;

var fileName = args.fileName;

var settings = args.settings;

}

 

 

 

Свойство format содержит тип выбранного в меню экспорта, может принимать одно из значений перечисления Stimulsoft.Report.StiExportFormat. Подробное описание доступных значений находится в разделе Экспортирование отчета из кода.

 

Свойство fileName содержит имя файла для сохранения после завершения экспорта. Свойство settings содержит все доступные настройки для текущего типа экспорта. Настройки экспорта и имя сохраняемого файла могут быть изменены, новые значения автоматически будут использованы для экспортирования отчета. Например, требуется для PDF экспорта изменить качество и разрешение изображения:

 

viewer.php

 

<?php

$viewer = new \Stimulsoft\Viewer\StiViewer();

$viewer->onBeginExportReport = 'onBeginExportReport';

$viewer->renderHtml();

?>

 

function onBeginExportReport(args) {

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

args.settings.imageQuality = 0.90;

args.settings.imageResolution = 200;

}

}

 

 

 

Для доступа к настройкам экспорта на стороне PHP сервера, необходимо на стороне клиента добавить вызов обработчика событий, а на стороне сервера определить одноименное событие onBeginExportReport в файле обработчика событий. Подробное описание работы событий находится в разделе Обработчик событий PHP.

 

viewer.php

 

<?php

$viewer = new \Stimulsoft\Viewer\StiViewer();

$viewer->onBeginExportReport = true;

$viewer->renderHtml();

?>

 

 

handler.php

 

$handler->onBeginExportReport = function ($args) {

$fileName = $args->fileName;

$format = $args->format;

$settings = $args->settings;

 

return \Stimulsoft\StiResult::success();

};

 

 

 

Настройки экспорта и имя сохраняемого файла могут быть изменены, новые значения автоматически будут переданы на сторону клиента и использованы для экспортирования отчета. Например, требуется для имени файла добавить префикс, а для PDF экспорта изменить качество и разрешение изображения:

 

handler.php

 

$handler->onBeginExportReport = function ($args) {

$args->fileName = 'PHP–' . $args->fileName;

 

if ($args->format == \Stimulsoft\StiExportFormat::Pdf) {

$args->settings->imageQuality = 0.90;

$args->settings->imageResolution = 200;

}

 

return \Stimulsoft\StiResult::success();

};

 

 

 

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

 

 

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

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

 

viewer.php

 

<?php

$viewer = new \Stimulsoft\Viewer\StiViewer();

$viewer->onEndExportReport = 'onEndExportReport';

$viewer->renderHtml();

?>

 

function onEndExportReport(args) {

var format = args.format;

var fileName = args.fileName;

var data = args.data;

}

 

 

 

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

 

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

 

viewer.php

 

viewer.onEndExportReport = function (args) {

 

// Calling the server-side handler

Stimulsoft.Helper.process(args);

}

 

 

handler.php

 

$handler->onEndExportReport = function ($args) {

$fileName = $args->fileName;

$format = $args->format;

$data = $args->data;

 

return \Stimulsoft\StiResult::success();

};

 

 

 

В этом случае, после экспортирования полученные байтовые данные будут переданы на сторону PHP сервера, сохранение на локальном компьютере будет отключено. Например, требуется сохранять все экспортированные файлы на стороне сервера в папку reports, и отображать сообщение после успешного сохранения файла:

 

handler.php

 

$handler->onEndExportReport = function ($args) {

$reportName = $args->fileName . '.' . $args->fileExtension;

file_put_contents('reports/' . $reportName, base64_decode($args->data));

 

return \Stimulsoft\StiResult::success("The exported report is saved successfully as $reportName");

};

 

 

Информация

 

Байтовые данные передаются на сторону сервера в кодировке Base64, поэтому перед сохранением их необходимо преобразовать в исходный байтовый поток, используя, например, стандартную PHP функцию base64_decode().

 

 

 

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

 

 

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

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

 

viewer.php

 

<?php

$options = new \Stimulsoft\Viewer\StiViewerOptions();

$options->exports->showExportToDocument = false;

$options->exports->showExportToWord = false;

$options->exports->showExportToCsv = false;

?>

 

 

 

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

 

viewer.php

 

<?php

$options = new \Stimulsoft\Viewer\StiViewerOptions();

$options->exports->showExportDialog = false;

?>

 

 

 

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

 

 

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

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