В компоненте Blazor Designer предусмотрено два варианта сохранения отчета, которые доступны в главном меню и на главной панели дизайнера: Сохранить (Save) и Сохранить как (Save As). В свою очередь, каждый из этих вариантов сохранения имеет свои режимы и настройки.

 

Сохранение отчета на стороне сервера

Для сохранения редактируемого отчета на стороне сервера необходимо определить событие OnSaveReport, которое будет вызвано при выборе пункта Сохранить (Save) в главном меню, либо нажатии на кнопку Сохранить (Save) на главной панели дизайнера.

 

Index.razor

@using Stimulsoft.Base

@using Stimulsoft.Report

@using Stimulsoft.Report.Blazor

@using Stimulsoft.Report.Web

 

<StiBlazorDesigner Report="@Report" OnSaveReport="@OnSaveReport"/>

 

@code

{

//Report object to use in designer

private StiReport Report;

 

protected override void OnInitialized()

{

base.OnInitialized();

 

//Create empty report object

var report = new StiReport();

 

//Load report template

report.Load("Reports/TwoSimpleLists.mrt");

 

//Assing report object to designer

Report = report;

}

 

private void OnSaveReport(StiSaveReportEventArgs args)

{

args.Report.Save("Reports/TwoSimpleLists.mrt");

}

}

 

 

Событие OnSaveReport будет вызвано при нажатии на кнопку Сохранить (Save). В аргументах события будет передан редактируемый отчёт. Если необходимо, после сохранения отчета предусмотрена возможность отобразить диалоговое окно с ошибкой или текстовым сообщением. Для этого предназначены свойства ErrorCode и ErrorString в аргументах события.

 

Index.razor

...

private void OnSaveReport(StiSaveReportEventArgs args)

{

args.Report.Save("Reports/TwoSimpleLists.mrt");

 

args.ErrorString = "Some message after saving";

}

...

 

 

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

 

 

 

Если необходимо, вы можете получить доступ к оригинальному имени отчета или имени отчета из диалога сохранения.

 

Index.razor

...

private void OnSaveReport(StiSaveReportEventArgs args)

{

//Report name from designer save dialog

var savingReportName = args.FileName;

 

//Original report name from properties

var originalReportName = args.Report.ReportName;

}

...

 

 

Сохранение на стороне клиента

Для сохранения редактируемого отчета на стороне клиента в виде файла не требуется дополнительных настроек дизайнера. Достаточно выбрать пункт главного меню Сохранить как (Save As), при нажатии на который отобразится диалог сохранения файла. В данном диалоге можно изменить имя файла отчета, после чего файл будет сохранен на локальном диске компьютера.

 

 

 

Компонент Blazor Designer предоставляет возможность изменить поведение указанного варианта сохранения, для этого в настройках дизайнера предусмотрено специальное событие OnSaveReportAs. При определении этого действия сохранение отчета будет происходить на стороне сервера, работа данного действия будет аналогична событию OnSaveReport.

 

Index.razor

...

private void OnSaveReportAs(StiSaveReportAsEventArgs args)

{

args.Report.Save("Reports/TwoSimpleLists.mrt");

}

...

 

 

Настройки сохранения

 

Сохранение отчета производиться в фоновом режиме, т.е. без перезагрузки страницы в окне браузера. Если необходимо каким-либо образом визуально управлять процессом сохранения отчета, следует изменить значение опции SaveReportMode (либо SaveReportAsMode) дизайнера на одно из трех указанных значений: Hidden (значение по умолчанию), Visible или NewWindow.

 

Index.razor

@using Stimulsoft.Report

@using Stimulsoft.Report.Blazor

@using Stimulsoft.Report.Web

 

<StiBlazorDesigner Report="@Report" Options="@Options" />

 

@code

{

//Report object to use in designer

private StiReport Report;

 

private StiBlazorDesignerOptions Options;

 

protected override void OnInitialized()

{

base.OnInitialized();

 

//Init options object

Options = new StiBlazorDesignerOptions();

Options.Behavior.SaveReportMode = StiSaveMode.Visible;

Options.Behavior.SaveReportAsMode = StiSaveMode.Visible;

}

}

 

 

Если опция SaveReportMode установлена в значение Visible, то действие сохранения отчета будет вызвано в текущем окне браузера в обычном (видимом) режиме при помощи POST-запроса. Если опция SaveReportMode установлена в значение NewWindow, то событие сохранения отчета будет вызвано в новом окне браузера. По умолчанию данная опция установлена в значение Hidden, т.е. событие сохранения отчета вызывается в фоне при помощи AJAX-запроса и никак не отображается в окне браузера. Для опции SaveReportAsMode применимы те же значения и поведение.