Web reports can be bound to your application's business objects — collections implementing IEnumerable or ITypedList — with no dataset conversion.

Register the objects by kind. In the page's post handler:
var report = new StiReport();
report.Load(StiNetCoreHelper.MapPath(this, $"Reports/BusinessObjects_{id}.mrt"));

// As a data source
report.RegData("EmployeeIEnumerable", CreateBusinessObjectsIEnumerable.GetEmployees());

// ...or as a business object
report.RegBusinessObject("EmployeeIEnumerable", CreateBusinessObjectsIEnumerable.GetEmployees());
report.Dictionary.SynchronizeBusinessObjects(2);

return StiNetCoreViewer.GetReportResult(this, report);

How it works. Field names in the template map straight onto object properties, so the report renders directly from the domain classes your app already uses.
In the screenshot below you can see the result of the sample code:

Using Business Objects in the Report

Hi. Need any help?