Информация

 

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

 

 

 

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

 

Метод GetReportObject()

 

Возвращает объект отчета, с которым в данный момент работает вьювер. Допускается производить с ним необходимые манипуляции - регистрировать новые наборы данных, изменять свойства отчета, присваивать параметры либо загружать в объект другой отчет. Затем отчет можно вернуть вьюверу, указав его в качестве параметра в результирующем методе действия.

 

Index.cshtml.cs

...

public IActionResult OnPostViewerInteraction()

{

StiReport report = StiNetCoreViewer.GetReportObject(this);

report.ReportName = "MyReportName";

 

return StiNetCoreViewer.InteractionResult(this, report);

}

...

 

 

Метод GetFormValues()

 

Возвращает значения формы, которая инициировала (открыла POST-запросом) страницу вьювера. Таким образом предоставляется возможность получить коллекцию параметров формы в любом действии вьювера.

 

Index.cshtml.cs

...

public IActionResult OnPostViewerInteraction()

{

NameValueCollection formValues = StiNetCoreViewer.GetFormValues(this);

 

return StiNetCoreViewer.InteractionResult(this);

}

...

 

 

По умолчанию данная возможность отключена в целях оптимизации запросов клиентской стороны вьювера на сервер. Для включения достаточно установить свойство PassFormValues в значение true.

 

Index.cshtml

...

@Html.StiNetCoreViewer(new StiNetCoreViewerOptions() {

Server =

{

PassFormValues = true

}

})

...

 

 

Метод GetRequestParams()

 

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

 

Index.cshtml.cs

...

public IActionResult OnPostExportReport()

{

StiRequestParams requestParams = StiNetCoreViewer.GetRequestParams(this);

if (requestParams.ExportFormat == StiExportFormat.Pdf)

{

StiReport report = StiNetCoreViewer.GetReportObject(this);

 

// Some action with report for the PDF export

// ...

 

return StiNetCoreViewer.ExportReportResult(this, report);

}

 

return StiNetCoreViewer.ExportReportResult(this);

}

...

 

 

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

 

Index.cshtml.cs

...

public IActionResult OnPostViewerInteraction()

{

StiRequestParams requestParams = StiNetCoreViewer.GetRequestParams(this);

if (requestParams.Action == StiAction.Variables)

{

requestParams.Interaction.Variables["Variable1"] = "MyValue";

return StiNetCoreViewer.InteractionResult(this, requestParams);

}

 

return StiNetCoreViewer.InteractionResult(this);

}

...

 

 

Метод GetExportSettings()

 

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

 

Index.cshtml.cs

...

public IActionResult OnPostExportReport()

{

StiExportSettings settings = StiNetCoreViewer.GetExportSettings(this);

if (settings.GetExportFormat() == StiExportFormat.Pdf)

{

StiPdfExportSettings pdfSettings = (StiPdfExportSettings)settings;

pdfSettings.EmbeddedFonts = true;

pdfSettings.AllowEditable = StiPdfAllowEditable.No;

return StiNetCoreViewer.ExportReportResult(this, settings);

}

 

return StiNetCoreViewer.ExportReportResult(this);

}

...

 

 

Методы MapPath() и MapWebRootPath()

 

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

 

Index.cshtml.cs

...

public IActionResult OnPostGetReport()

{

StiReport report = new StiReport();

report.Load(StiNetCoreHelper.MapPath(this, "Reports/SimpleList.mrt"));

 

return StiNetCoreViewer.GetReportResult(this, report);

}

...