Using Viewer Parameters
Our sample projects and report templates can help you learn the basics of working with our products.This example is outdated, you can check out the many other new examples in this category.This example shows how to use viewer parameters. First, import scripts:
Define properties:
Then, create selector with items:
Next, define URL template to server controller, initial action, properties and viewer height:
Then, create
After that, load a report:
Finally, process other viewer requests:
In the screenshot below you can see the result of the sample code:

...
import { StimulsoftViewerModule } from 'stimulsoft-viewer-angular';
...
imports: [
...
StimulsoftViewerModule,
...
],
...
Define properties:
...
properties = { reportName: this.reports[0] };
...
Then, create selector with items:
<select (change)="updateProps($event.target.value)">
<option *ngFor="let item of reports" [value]="item">{{ item }}</option>
</select>
Next, define URL template to server controller, initial action, properties and viewer height:
<stimulsoft-viewer-angular
[requestUrl]="'http://localhost:60801/Viewer/{action}'"
[action]="'InitViewer'"
[height]="'600px'"
[properties]="properties"
></stimulsoft-viewer-angular>
Then, create
ViewerController. Next, initialize the viewer:
...
[HttpPost]
public IActionResult InitViewer()
{
var requestParams = StiAngularViewer.GetRequestParams(this);
var options = new StiAngularViewerOptions();
options.Actions.GetReport = "GetReport";
options.Actions.ViewerEvent = "ViewerEvent";
options.Appearance.ScrollbarsMode = true;
return StiAngularViewer.ViewerDataResult(requestParams, options);
}
...
After that, load a report:
...
[HttpPost]
public IActionResult GetReport()
{
var reportName = "MasterDetail.mrt";
var httpContext = new Stimulsoft.System.Web.HttpContext(this.HttpContext);
var properties = httpContext.Request.Params["properties"]?.ToString();
if (properties != null)
{
var data = Convert.FromBase64String(properties);
var json = Encoding.UTF8.GetString(data);
JContainer container = JsonConvert.DeserializeObject<JContainer>(json);
foreach (JToken token in container.Children())
{
if (((JProperty)token).Name == "reportName")
{
reportName = ((JProperty)token).Value.Value<string>();
}
}
}
var report = StiReport.CreateNewReport();
var path = StiAngularHelper.MapPath(this, $"Reports/{reportName}");
report.Load(path);
return StiAngularViewer.GetReportResult(this, report);
}
...
Finally, process other viewer requests:
...
[HttpPost]
public IActionResult ViewerEvent()
{
return StiAngularViewer.ViewerEventResult(this);
}
...In the screenshot below you can see the result of the sample code:
