Одним из основных нововведений релиза 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 канале.
Используя этот сайт, вы соглашаетесь на использование файлов Cookie для аналитики и персонализированного контента. Файлы Cookie хранят полезную информацию на вашем компьютере, чтобы помочь нам повысить эффективность и удобство использования. Для получения дополнительной информации, пожалуйста, прочтите Конфиденциальность и Использование Cookie.