本示例说明如何使用Business Objects集合创建 表。Business Objects是一种对象类数据,可使用其以不同的结构表示数据:表、列表、数组等。此示例使用Business Objects的两种变体——IEnumerable和ITypedList。
本示例说明如何使用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();}
在下面的屏幕截图中,您可以看到示例代码的结果。

下载示例代码
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!