Создание и редактирование отчета
Для запуска дизайнера без отчета не требуется никаких действий. После загрузки компонента, отобразится главное меню дизайнера. При необходимости запуска дизайнера с новым (пустым) отчетом, можно создать новый объект отчета StiReport и присвоить его дизайнеру.
Для редактирования отчета в дизайнере, достаточно создать объект StiReport, загрузить в него шаблон отчета, и присвоить полученный объект дизайнеру. Все остальные действия будут выполнены автоматически, дизайнер отобразит первую страницу шаблона:
designer.php |
<?php require_once 'vendor/autoload.php';
use Stimulsoft\Report\StiReport; use Stimulsoft\Designer\StiDesigner;
$designer = new StiDesigner(); $designer->process();
$report = new StiReport(); $report->loadFile('reports/SimpleList.mrt'); $designer->report = $report;
$designer->printHtml(); ?>
|
Полный код примера доступен на GitHub.
Дизайнер умеет работать со стандартными, упакованными и зашифрованными шаблонами. Подробное описание работы с различными форматами отчетов находится в разделе Загрузка и сохранение отчета.
Новый отчет можно создать, используя главное меню дизайнера. Для выполнения какие-либо необходимых действий с новым отчетом, предназначено событие onCreateReport. Данное событие будет вызвано при создании нового пустого отчета из главного меню, либо при создании отчета с использованием мастера. В аргументах события будет передан созданный в дизайнере объект отчета. При необходимости, его можно изменить, подключить данные, либо загрузить заранее подготовленный шаблон отчета. После завершения события, этот отчет будет автоматически загружен в дизайнер для редактирования.
Пример подключения данных и синхронизации словаря данных при создании нового отчета:
designer.php |
<?php use Stimulsoft\Report\StiReport; use Stimulsoft\Designer\StiDesigner;
$designer = new StiDesigner(); $designer->onCreateReport = 'createReport'; $designer->process();
$report = new StiReport(); $report->loadFile('reports/SimpleList.mrt'); $designer->report = $report; ?>
...
<script> function createReport(args) { let dataSet = new Stimulsoft.System.Data.DataSet("SimpleDataSet"); dataSet.readJsonFile("Data/Demo.json");
args.report.regData(dataSet.dataSetName, "", dataSet); args.report.dictionary.synchronize(); } </script>
|
Полный код примера доступен на GitHub.
При необходимости, можно контролировать процесс создания нового отчета на стороне PHP сервера. Пример изменения параметров нового отчета на стороне PHP сервера:
designer.php |
<?php use Stimulsoft\Designer\StiDesigner; use Stimulsoft\Events\StiReportEventArgs;
$designer = new StiDesigner(); $designer->onCreateReport = function (StiReportEventArgs $args) { $args->report->ReportAlias = 'New Report Alias'; };
$designer->process(); $designer->printHtml(); ?>
|
Пример загрузки предварительно подготовленного шаблона с настроенными подключениями к данным:
designer.php |
<?php use Stimulsoft\Designer\StiDesigner; use Stimulsoft\Events\StiReportEventArgs;
$designer = new StiDesigner(); $designer->onCreateReport = function (StiReportEventArgs $args) { $reportJson = file_get_contents('reports/NewTemplateWithData.mrt'); $args->setReportJson($reportJson); };
$designer->process(); $designer->printHtml(); ?>
|
Подробное описание доступных значений аргументов находится в разделе События дизайнера.