Одним из основных нововведений релиза 2023.1 является крупное обновление продуктов Reports.PHP и Dashboards.PHP. Подробнее об этом мы уже писали в недавней новости. При переходе на новую версию продуктов мы постарались максимально сохранить совместимость уже написанного кода, но для корректной работы продуктов всё же необходимо будет внести небольшие правки, о которых мы сегодня и расскажем.

Развертывание продукта

Для использования продукта, достаточно загрузить ZIP-архив продукта со страницы Downloads нашего сайта, распаковать его, и скопировать содержимое папки /PHP на ваш Web-сервер. Данная папка представляет собой Web-проект, который содержит все необходимые файлы и ресурсы для работы продукта, а также примеры по работе с вьювером и дизайнером.

Для установки продукта в уже существующий проект, достаточно из папки /PHP скопировать папку /vendor в корневую директорию проекта, либо воспользоваться менеджером зависимостей Composer, выполнив следующую консольную команду:

composer require stimulsoft/reports-php

либо

composer require stimulsoft/dashboards-php.

Теперь вы можете удалить следующие папки с ресурсами и скриптами предыдущих версий продуктов в корневой директории: /localization, /css, /scripts, /stimulsoft. Будьте внимательны, если указанные папки дополнительно содержат файлы вашего проекта, то удалите только файлы, связанные с нашими продуктами.

Подключение библиотек продукта

Ранее все PHP библиотеки продукта располагались в папке /stimulsoft, и для их подключения достаточно было установить зависимость для основного файла продукта:
<?php
	require_once 'stimulsoft/helper.php';
?>

В обновленном продукте была изменена папка расположения скриптов продукта, это необходимо было сделать для реализации поддержки менеджера пакетов Composer. Теперь все файлы располагаются в папке /vendor в корневом каталоге проекта. Для автоматического подключения всех зависимостей необходимо подключить загрузчик PHP-классов, который автоматически сделает всю остальную работу:
<?php
	require_once 'vendor/autoload.php';
?>

Подключение скриптов

Раньше для подключения скриптов продукта необходимо было добавить весь список в блоке <head> в зависимости от требуемых компонентов и возможностей:
<head>
	<script src="/scripts/stimulsoft.reports.js" type="text/javascript"></script>
	<script src="/scripts/stimulsoft.dashboards.js" type="text/javascript"></script>
	<script src="/scripts/stimulsoft.viewer.js" type="text/javascript"></script>
</head>

Работа указанного метода подключения скриптов сохранена, но после загрузки пакета при помощи Composer, необходимо скорректировать пути ко всем скриптам продукта:
<head>
	<script src="/vendor/stimulsoft/reports-php/scripts/stimulsoft.reports.js" type="text/javascript"></script>
	<script src="/vendor/stimulsoft/dashboards-php/scripts/stimulsoft.dashboards.js" type="text/javascript"></script>
	<script src="/vendor/stimulsoft/reports-php/scripts/stimulsoft.viewer.js" type="text/javascript"></script>
</head>

В обновленном продукте был добавлен специальный PHP-класс для более простого развертывания, мы рекомендуем использовать именно этот метод. Теперь достаточно разместить несколько строк PHP-кода в блоке <head> в том месте, где ранее были добавлены скрипты продукта:
<head>
	<?php
		$js = new \Stimulsoft\StiJavaScript(\Stimulsoft\StiComponentType::Viewer);
		$js->renderHtml();
	?>
</head>

При необходимости можно настроить процесс развертывания при помощи доступных опций класса.

Инициализация обработчика событий

Для отправки данных на сторону PHP-сервера из событий компонентов предназначен специальный обработчик событий, который состоит из клиентской JavaScript-части и серверной PHP-части. Раньше для его инициализации на HTML-странице необходимо было добавить следующий PHP-код:
<?php
	StiHelper::init('handler.php', 30);
?>

В новой версии этот код заменен на другой для соответствия остальным PHP-классам обновленных продуктов. Достаточно вместо старого кода добавить обновленный, всё остальное должно работать как прежде:
<?php
	$handler = new \Stimulsoft\StiHandler();
	$handler->renderHtml();
?>

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

Работа с компонентами

Весь ранее написанный код по работе с отчетами и компонентами не требует каких-либо изменений, но теперь вы можете обновить и оптимизировать его. В обновленном продукте были добавлены PHP-классы для работы с основными возможностями компонентов, что упрощает работу с ними при помощи PHP-кода. Например, для работы со вьювером отчетов, вместо JavaScript-кода воспользуйтесь следующим PHP-кодом:
<script type="text/javascript">
	<?php
		$options = new \Stimulsoft\Viewer\StiViewerOptions();
		$options->appearance->fullScreenMode = true;
		$options->appearance->scrollbarsMode = true;
 
		$viewer = new \Stimulsoft\Viewer\StiViewer($options);
 
		$report = new \Stimulsoft\Report\StiReport();
		$report->loadFile('reports/SimpleList.mrt');
		$viewer->report = $report;
 
		$viewer->renderHtml('viewerContent');
	?>
</script>

Работа с событиями

Также, как и компоненты, все их события будут работать без изменений кода. В обновленном продукте работа с событиями была упрощена. Теперь для работы с событием на стороне PHP-сервера достаточно указать, что выбранное событие должно быть обработано. Например, чтобы добавить событие получения SQL-данных, достаточно одной строки кода:
<script type="text/javascript">
	<?php
		$viewer = new \Stimulsoft\Viewer\StiViewer($options);
		$viewer->onBeginProcessData = true;
		$viewer->renderHtml('viewerContent');
	?>
</script>

При необходимости предварительной обработки аргументов события на стороне JavaScript-клиента, нужно просто указать имя функции для события, всё остальное будет сделано автоматически:
<script type="text/javascript">
	<?php
		$viewer = new \Stimulsoft\Viewer\StiViewer($options);
		$viewer->onBeginProcessData = 'onBeginProcessData';
		$viewer->renderHtml('viewerContent');
	?>
	
	function onBeginProcessData(args) {
	}
</script>

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

Раньше для экспортирования отчета нужно было написать достаточно большой блок JavaScript-кода. Например, для экспорта отчета в PDF, нужно было добавить следующий код на HTML страницу:
var report = new Stimulsoft.Report.StiReport();
report.loadFile("reports/SimpleList.mrt");
report.renderAsync(function() {
	report.exportDocumentAsync(function (data) {
		Stimulsoft.System.StiObject.saveAs(data, "Report.pdf", "application/pdf");
	}, Stimulsoft.Report.StiExportFormat.Pdf);
});

Этот код остался полностью рабочим, но теперь те же действия можно выполнить гораздо проще при помощи PHP-кода:
<?php
	$report = new \Stimulsoft\Report\StiReport();
	$report->loadFile('reports/SimpleList.mrt');
	$report->render();
	$report->exportDocument(\Stimulsoft\StiExportFormat::Pdf);
	$report->renderHtml();
?>

Еще больше возможностей

Более подробно про рассмотренные выше, а также и другие возможности, вы можете прочитать в обновленной документации, которая будет доступна совсем скоро. Мы обновили все примеры по работе с продуктом, они доступны на GitHub для Reports.PHP и Dashboards.PHP продуктов. В данный момент мы ведем подготовку обновленных видео по работе с продуктами, которые будут доступны на нашем YouTube канале.
By using this website, you agree to the use of cookies for analytics and personalized content. Cookies store useful information on your computer to help us improve efficiency and usability. For more information, please read the privacy policy and cookie policy.