This example shows how to send an exported dashboard to the server-side. First, you need to add the Stimulsoft libraries and scripts, required for the component to work. All code should be added in the
<head>
block of the HTML page:
<?php
require_once 'vendor/autoload.php';
?>
...
<?php
$js = new \Stimulsoft\StiJavaScript(\Stimulsoft\StiComponentType::Viewer);
$js->renderHtml();
?>
Next, in the
<script>
block, create and configure an event handler:
<script type="text/javascript">
<?php
$handler = new \Stimulsoft\StiHandler();
$handler->renderHtml();
Next, create the viewer with the necessary options and define the
onEndExportReport
event. If value set to true, this event will be passed to the server-side event handler:
$options = new \Stimulsoft\Viewer\StiViewerOptions();
$options->appearance->fullScreenMode = true;
$viewer = new \Stimulsoft\Viewer\StiViewer($options);
$viewer->onEndExportReport = true;
Next, create and load a dashboard. The
loadFile()
method does not load the report object on the server side, it only generates the necessary JavaScript code. The dashboard will be loaded into a JavaScript object on the client side:
$report = new \Stimulsoft\Report\StiReport();
$report->loadFile('reports/Christmas.mrt');
$viewer->report = $report;
?>
Next, render the necessary JavaScript code and visual HTML part of the component, and close the
</script>
block. The rendered code will be placed inside the specified HTML element:
function onLoad() {
<?php
$viewer->renderHtml('viewerContent');
?>
}
</script>
...
<body onload="onLoad();">
<div id="viewerContent"></div>
</body>
Finally, process the exported report on the server-side in the
onEndExportReport()
method. By default, all server-side events are located in the
handler.php
file:
$handler->onEndExportReport = function ($args)
{
// Getting the file name with the extension
$reportName = $args->fileName . '.' . $args->fileExtension;
// By default, the exported file is saved to the 'reports' folder
// You can change this behavior if required
file_put_contents('reports/' . $reportName, base64_decode($args->data));
//return StiResult::success();
return StiResult::success("The exported report is saved successfully as $reportName");
//return StiResult::error('An error occurred while exporting the report.');
};
На скриншоте ниже Вы можете увидеть результат выполнения данного кода: