This example shows how to send and save an exported report on the PHP 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 report. The
loadFile()
method does not load the report object on the server side, it only generates the necessary JavaScript code. The report will be loaded into a JavaScript object on the client side:
$report = new \Stimulsoft\Report\StiReport();
$report->loadFile('reports/SimpleList.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.');
};
In the screenshot below you can see the result of the sample code: