Информация

 

В следствие того, что для панелей индикаторов (дашбордов) и отчетов используется одинаковый унифицированный формат шаблона MRT, методы для загрузки шаблона и работы с данными, то в тексте документации будет использоваться слово «отчет».

 

 

 

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

 

Сохранение отчета или дашборда на стороне сервера

 

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

 

Index.cshtml

...

@Html.StiNetCoreDesigner(new StiNetCoreDesignerOptions() {

Actions =

{

SaveReport = "SaveReport"

}

})

...

 

Index.cshtml.cs

...

public IActionResult OnPostSaveReport()

{

StiReport report = StiNetCoreDesigner.GetReportObject(this);

 

// Save the report template

// ...

 

return StiNetCoreDesigner.SaveReportResult(this);

}

...

 

 

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

 

Index.cshtml.cs

...

public IActionResult OnPostSaveReport()

{

StiReport report = StiNetCoreDesigner.GetReportObject(this);

 

// Save the report template

// ...

 

// Completion of the report saving with message dialog box

return StiNetCoreDesigner.SaveReportResult(this, "Some message after saving");

//return Content("{"infoMessage":"Some info message after saving"}");

//return Content("{\"warningMessage\":\"Some info message after saving\"}");

}

...

 

 

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

 

Index.cshtml.cs

...

public IActionResult OnPostSaveReport()

{

StiRequestParams requestParams = StiNetCoreDesigner.GetRequestParams();

StiReport report = StiNetCoreDesigner.GetReportObject();

 

//Report name from designer save dialog

string savingReportName = requestParams.Designer.FileName;

 

//Original report name from properties

string originalReportName = report.ReportName;

 

return StiNetCoreDesigner.SaveReportResult(this, "Some message after saving");

}

...

 

 

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

 

 

 

Сохранение отчета или дашборда на стороне клиента

 

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

 

 

 

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

 

Index.cshtml

...

@Html.StiNetCoreDesigner(new StiNetCoreDesignerOptions() {

Actions =

{

SaveReportAs = "SaveReportAs"

}

})

...

 

Index.cshtml.cs

...

public IActionResult OnPostSaveReportAs()

{

StiReport report = StiNetCoreDesigner.GetReportObject(this);

 

// Save the report template

// ...

 

return StiNetCoreDesigner.SaveReportResult(this);

}

...

 

 

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

 

Index.cshtml.cs

 

public IActionResult OnPostSaveReportAs()

{

StiReport report = StiNetCoreDesigner.GetReportObject(this);

var requestParams = StiNetCoreDesigner.GetRequestParams(this);

var reportName = requestParams.Designer.FileName;

                 

return StiNetCoreDesigner.SaveReportResult(this);

}

 

 

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

 

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

 

Index.cshtml

...

@Html.StiNetCoreDesigner(new StiNetCoreDesignerOptions() {

Actions =

{

SaveReportAs = "SaveReportAs"

},

Behavior =

{

SaveReportAsMode = StiSaveMode.Visible

}

})

...

 

 

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