This example shows how to create a report with the Business Objects collection. Business Objects is an object class data with which the data can be presented in different structures: tables, lists, arrays, etc. This example uses two variants of Business Objects - IEnumerable and ITypedList. You need to define the GetReport and the ViewerEvent actions:
@using Stimulsoft.Report.Mvc;

...

@Html.StiNetCoreViewer(new StiNetCoreViewerOptions()
{
	Actions =
	{
		GetReport = "GetReport",
		ViewerEvent = "ViewerEvent"
	}
})

Also we need to add these actions in the methods. The OnPostGetReport action loads the IEnumerable and the GetReportITypedList report and register data for it:
public IActionResult OnPostGetReport()
{
	var report = new StiReport();
	report.Load(StiNetCoreHelper.MapPath(this, $"Reports/BusinessObjects_{id}.mrt"));
	switch (id)
	{
		case "IEnumerable":
			report.RegData("EmployeeIEnumerable", CreateBusinessObjectsIEnumerable.GetEmployees());
			break;

		case "ITypedList":
			report.RegData("EmployeeITypedList", CreateBusinessObjectsITypedList.GetEmployees());
			break;

		case "IEnumerable_BO":
			report.RegBusinessObject("EmployeeIEnumerable", CreateBusinessObjectsIEnumerable.GetEmployees());
			report.Dictionary.SynchronizeBusinessObjects(2);
			break;

		case "ITypedList_BO":
			report.RegBusinessObject("EmployeeITypedList", CreateBusinessObjectsITypedList.GetEmployees());
			report.Dictionary.SynchronizeBusinessObjects(2);
			break;
	}

	return StiNetCoreViewer.GetReportResult(this, report);
}

The ViewerEvent action handles all the viewer events (switching pages, zooming, printing, exporting, interactivity, etc.) and returns the answer to the client using the ViewerEventResult() static method:
public IActionResult OnGetViewerEvent()
{
	return StiNetCoreViewer.ViewerEventResult(this);
}

public IActionResult OnPostViewerEvent()
{
	return StiNetCoreViewer.ViewerEventResult(this);
}

На скриншоте ниже Вы можете увидеть результат выполнения данного кода:

Using Business Objects in the Report

Используя этот сайт, вы соглашаетесь на использование файлов Cookie для аналитики и персонализированного контента. Файлы Cookie хранят полезную информацию на вашем компьютере, чтобы помочь нам повысить эффективность и удобство использования. Для получения дополнительной информации, пожалуйста, прочтите Конфиденциальность и Использование Cookie.