Примеры

 

Полный код примера можно найти на GitHub по данной ссылке.

 

 

 

Генератор отчетов, а также вьювер и дизайнер отчетов, умеют вызывать события на стороне клиента, передавать их на сторону PHP сервера для последующей обработки, и принимать подготовленный ответ со стороны PHP сервера. Всё необходимое для работы событий находится в классе StiHandler, который нужно добавить в блок <script> перед остальными компонентами:

 

index.php

 

<?php

$handler = new \Stimulsoft\StiHandler();

$handler->renderHtml();

?>

 

 

 

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

 

index.php

 

<?php

$handler = new \Stimulsoft\StiHandler();

$handler->options->url = 'handler.php';

$handler->options->timeout = 30;

$handler->renderHtml();

?>

 

 

 

После выполнения функции renderHtml(), на PHP страницу будет добавлен JavaScript код, необходимый для работы с событиями. Для передачи данных на сторону сервера, необходимо включить обработку необходимого события. Для этого достаточно установить в true соответствующее свойство компонента:

 

index.php

 

<?php

$report = new \Stimulsoft\Report\StiReport();

$report->onBeginProcessData = true;

$report->renderHtml();

?>

 

 

 

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

 

index.php

 

<?php

$report = new \Stimulsoft\Report\StiReport();

$report->onBeginProcessData = 'onBeginProcessData';

$report->renderHtml();

?>

 

function onBeginProcessData(args) {

 

}

 

 

 

В обработчике событий на стороне PHP сервера, в одноименном событии в аргументах можно прочитать все доступные параметры, переданные из генератора отчетов, проверить их, и при необходимости внести корректировки. Например, в данном случае будет вызвано событие onBeginProcessData в файле handler.php:

 

handler.php

 

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

...

 

return \Stimulsoft\StiResult::success();

};

 

 

 

После обработки события на стороне PHP сервера, обработчик должен вернуть ответ на сторону клиента о результате выполнения события. Для этого предусмотрены две статические функции: StiResult::success() - событие выполнено успешно, и StiResult::error() - в момент выполнения произошла какая-либо ошибка. Вы сами контролируете этот процесс, и принимаете решение о необходимом ответе. В качестве параметра функции можно передать строковое сообщение, которое будет отображено на стороне клиента после выполнения события, например:

 

handler.php

 

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

...

 

// You can send a successful result

return \Stimulsoft\StiResult::success();

 

// You can send an informational message

//return \Stimulsoft\StiResult::success('Some warning or other useful information.');

// You can send an error message

//return \Stimulsoft\StiResult::error('A message about some error.');

};

 

 

Информация

 

При возникновении критических ошибок на стороне PHP сервера, предусмотрена автоматическая отправка информации об ошибке на сторону клиента. Если указанный функционал не требуется, его можно отключить, передав значение false для параметра $registerErrorHandlers в конструкторе обработчика событий на стороне сервера:

 

$handler = new \Stimulsoft\StiHandler(false);

 

 

 

Шифрование данных, передаваемых на сторону PHP сервера

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

 

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

 

index.php

 

<?php

$handler = new \Stimulsoft\StiHandler();

$handler->encryptData = false;

$handler->renderHtml();

?>

 

 

 

Передача значений GET параметров в PHP обработчик событий

Предусмотрена возможность автоматической передачи всех значений параметров GET запроса в обработчик событий, во всех событиях которого можно будет получить их значения. Для включения этой возможности, достаточно установить опцию passQueryParameters в значение true, после этого все параметры GET запроса будут переданы при каждом запросе к обработчику событий. По умолчанию данная опция отключена.

 

index.php

 

<?php

$handler = new \Stimulsoft\StiHandler();

$handler->options->passQueryParameters = true;

$handler->renderHtml();

?>