发布时间 : 2019-10-31 15:28:27.950|阅读 301 次
概述:本示例说明如何使用Business Objects集合创建报表。Business Objects是一种对象类数据,可使用其以不同的结构表示数据:表、列表、数组等。此示例使用Business Objects的两种变体——IEnumerable和ITypedList。
相关链接:
立即点击下载Stimulsoft Reports.Net最新版
本示例说明如何使用Business Objects集合创建报表。Business Objects是一种对象类数据,可使用其以不同的结构表示数据:表、列表、数组等。此示例使用Business Objects的两种变体——IEnumerable和ITypedList。
例如,创建两个不同的视图-ViewIEnumerable和ViewITypedList。每个视图都有自己的GetReport操作处理程序。您还需要定义ViewerEvent操作。
@using Stimulsoft.Report.Mvc;
...
@Html.Stimulsoft().StiMvcViewer(new StiMvcViewerOptions()
{
Actions =
{
GetReport = "GetReportIEnumerable",
ViewerEvent = "ViewerEvent"
}
})
...
@Html.Stimulsoft().StiMvcViewer(new StiMvcViewerOptions()
{
Actions =
{
GetReport = "GetReportITypedList",
ViewerEvent = "ViewerEvent"
}
})另外,我们需要在控制器中添加这些操作。GetReportIEnumerable操作将加载IEnumerable报表并为其注册数据。以类似的方式,GetReportITypedList操作将加载ITypedList报表并为其注册数据。
在将结果传输到查看器的客户端之前,请调用CheckReference()特殊方法。该方法在报表ReferenceAssemblies集合中添加了对当前项目的程序集的引用,有必要访问在此应用程序中编译的业务对象。可选地,业务对象可以从另一个程序集中获取。
public ActionResult GetReportIEnumerable()
{
StiReport report = new StiReport();
report.Load(Server.MapPath("~/Content/Reports/BusinessObjects_IEnumerable.mrt"));
report.RegData("EmployeeIEnumerable", CreateBusinessObjectsIEnumerable.GetEmployees());
CheckReference(report);
return StiMvcViewer.GetReportResult(report);
}
public ActionResult GetReportITypedList()
{
StiReport report = new StiReport();
report.Load(Server.MapPath("~/Content/Reports/BusinessObjects_ITypedList.mrt"));
report.RegData("EmployeeITypedList", CreateBusinessObjectsITypedList.GetEmployees());
CheckReference(report);
return StiMvcViewer.GetReportResult(report);
}
private void CheckReference(StiReport report)
{
string assemblyName = Assembly.GetExecutingAssembly().ManifestModule.Name;
List<string> refs = new List<string>(report.ReferencedAssemblies);
if (!refs.Contains(assemblyName))
{
refs.Add(assemblyName);
report.ReferencedAssemblies = refs.ToArray();
}
}ViewerEvent操作处理所有查看器事件(切换页面、缩放、打印、导出、交互等),并使用ViewerEventResult()静态方法将答案返回给客户端。
public ActionResult ViewerEvent()
{
return StiMvcViewer.ViewerEventResult();
}在下面的屏幕截图中,您可以看到示例代码的结果。

渝ICP备12000582号-15/渝公网安备 50010702501010号