This example shows how to handle data requests and set SQL parameters on the server side using
Stimulsoft Viewer for PHP. First, include the Stimulsoft libraries:
<?php
require_once '../vendor/autoload.php';
use Stimulsoft\Events\StiDataEventArgs;
use Stimulsoft\Report\StiReport;
use Stimulsoft\Viewer\StiViewer;
?>
Next, create a
Viewer object and configure JavaScript-related options:
$viewer = new StiViewer();
$viewer->javascript->relativePath = '../';
$viewer->javascript->appendHead('<link rel="shortcut icon" href="/../favicon.ico" type="image/x-icon">');
Define viewer events before processing. You can assign a PHP function, the name of a JavaScript function, or a JavaScript function as a string. Multiple event handlers can be added using the
append() method. In this example, the
onBeginProcessData event is used to modify data requests:
$viewer->onBeginProcessData = function (StiDataEventArgs $args) {
if ($args->connection == 'MySQL')
$args->connectionString = 'Server=localhost; Database=northwind; UserId=root; Pwd=;';
if ($args->dataSource == 'customers' && count($args->parameters) > 0) {
$args->parameters['Country']->value = "Germany";
}
};
Process the request on the server side using
process():
$viewer->process();
Create a report object and load a report template. The
loadFile() method does not load the report on the server side; it only generates JavaScript code to load the report on the client side:
$report = new StiReport();
$report->loadFile('../reports/SimpleListSQLParameters.mrt');
Assign the report to the viewer:
$viewer->report = $report;
Finally, render the viewer as a complete HTML page using
printHtml():
$viewer->printHtml();
In the screenshot below you can see the result of the sample code: