Информация

 

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

 

 

 

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

 

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

 

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

 

Index.cshtml

...

@Html.Stimulsoft().StiMvcDesigner("MvcDesigner1",

new StiMvcDesignerOptions() {

Actions =

{

SaveReport = "SaveReport"

}

})

...

 

HomeController.cs

...

public ActionResult SaveReport()

{

StiReport report = StiMvcDesigner.GetReportObject();

 

// Save the report template

// ...

 

return StiMvcDesigner.SaveReportResult();

}

...

 

 

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

 

HomeController.cs

...

public ActionResult SaveReport()

{

StiReport report = StiMvcDesigner.GetReportObject();

 

// Save the report template

// ...

 

// Completion of the report saving with message dialog box

return StiMvcDesigner.SaveReportResult("Some message after saving");

}

...

 

 

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

 

HomeController.cs

...

public ActionResult SaveReport()

{

var requestParams = StiMvcDesigner.GetRequestParams();

var report = StiMvcDesigner.GetReportObject();

 

//Report name from designer save dialog

var savingReportName = requestParams.Designer.FileName;

 

//Original report name from properties

var originalReportName = report.ReportName;

 

return StiMvcDesigner.SaveReportResult();

}

...

 

 

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

 

 

 

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

 

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

 

 

 

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

 

Index.cshtml

...

@Html.Stimulsoft().StiMvcDesigner("MvcDesigner1",

new StiMvcDesignerOptions() {

Actions =

{

SaveReportAs = "SaveReportAs"

}

})

...

 

HomeController.cs

...

public ActionResult SaveReportAs()

{

StiReport report = StiMvcDesigner.GetReportObject();

 

// Save the report template

// ...

 

return StiMvcDesigner.SaveReportResult();

}

...

 

 

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

 

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

 

Index.cshtml

...

@Html.Stimulsoft().StiMvcDesigner("MvcDesigner1",

new StiMvcDesignerOptions() {

Actions =

{

SaveReportAs = "SaveReportAs"

},

Behavior =

{

SaveReportAsMode = StiSaveMode.Visible

}

})

...

 

 

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