发布时间 : 2019-10-31 15:50:27.510|阅读 372 次
概述:本示例说明如何在设计器中编辑报表模板、保存模板并在查看器中显示该报表。报表设计器和查看器位于该示例项目的不同视图中。设计器位于Designer视图上,查看器位于Viewer视图上,所有这些视图都有自己的控制器。
相关链接:
立即点击下载Stimulsoft Reports.Net最新版
本示例说明如何在设计器中编辑报表模板、保存模板并在查看器中显示该报表。报表设计器和查看器位于该示例项目的不同视图中。设计器位于Designer视图上,查看器位于Viewer视图上,所有这些视图都有自己的控制器。
首先,您需要将StiMvcViewer组件添加到Viewer视图页面。您还需要将StiMvcViewerOptions对象传递给构造函数。所需的最少选项是两个操作——GetReport和ViewerEvent,它们位于操作“Actions”选项组中。
@using Stimulsoft.Report.Mvc; ... @Html.Stimulsoft().StiMvcViewer(new StiMvcViewerOptions() { Actions = { GetReport = "GetReport", ViewerEvent = "ViewerEvent" } })
接下来,您需要将StiMvcDesigner组件添加到Designer视图页面中。您还需要将StiMvcDesignerOptions对象传递给构造函数。所需的最少选项是两个操作——GetReport和DesignerEvent。为了能够预览和保存报表,请指定PreviewReport和SaveReport操作。
@using Stimulsoft.Report.Mvc; ... @Html.Stimulsoft().StiMvcDesigner(new StiMvcDesignerOptions() { Actions = { GetReport = "GetReport", PreviewReport = "PreviewReport", SaveReport = "SaveReport", DesignerEvent = "DesignerEvent" } })
在“Home”主页主视图中,将链接添加到“Viewer”查看器和“Designer”设计器视图。
<h2>Using the Viewer and Designer in One Project</h2> <br /> @Html.ActionLink("Design Report", "Designer") <br /><br /> @Html.ActionLink("View Report", "Viewer")
接下来,您需要将所有这些操作添加到适当的控制器。首先,让我们为报表查看器的控制器添加操作。
GetReport操作将使用GetReportResult()静态方法加载报表并将响应返回给查看器的客户端部分。在此方法的参数中,应传递报表对象。例如,加载渲染的报表文件。
public ActionResult GetReport() { StiReport report = new StiReport(); report.Load(Server.MapPath("~/Content/Reports/TwoSimpleLists.mrt")); DataSet data = new DataSet("Demo"); data.ReadXml(Server.MapPath("~/Content/Data/Demo.xml")); report.RegData(data); return StiMvcViewer.GetReportResult(report); }
ViewerEvent操作处理所有查看器事件(切换页面、缩放、打印、导出、交互等),并使用ViewerEventResult()静态方法将响应返回给客户端。
public ActionResult ViewerEvent() { return StiMvcViewer.ViewerEventResult(); }
接下来,为报表设计器的控制器添加操作。
GetReport操作将加载报表模板,并使用GetReportResult()静态方法将响应返回给设计器的客户端。在此方法的参数中,应传递报表对象。
public ActionResult GetReport() { StiReport report = new StiReport(); report.Load(Server.MapPath("~/Content/Reports/TwoSimpleLists.mrt")); return StiMvcDesigner.GetReportResult(report); }
当您在设计器中打开预览报表选项卡时,将调用PreviewReport操作。在此操作中,您可以获取报表对象并执行任何操作,例如连接到数据。要为客户准备答案,您应该使用PreviewReportResult()静态方法。在此方法的参数中,应传递报表对象。
public ActionResult PreviewReport() { StiReport report = StiMvcDesigner.GetActionReportObject(); DataSet data = new DataSet("Demo"); data.ReadXml(Server.MapPath("~/Content/Data/Demo.xml")); report.RegData(data); return StiMvcDesigner.GetReportResult(); }
当您在设计器中按保存按钮时,将调用SaveReport操作。在此操作中,将报表模板保存在启动设计器时加载的同一文件中。该文件也被加载到查看器的GetReport操作中。为了为客户准备答案,您应该使用SaveReportResult()静态方法。
public ActionResult SaveReport() { StiReport report = StiMvcDesigner.GetReportObject(); report.Save(Server.MapPath("~/Content/Reports/TwoSimpleLists.mrt")); return StiMvcDesigner.SaveReportResult(); }
DesignerEvent操作处理所有设计器事件(添加和编辑报表组件、使用数据字典,切换页面,缩放等),并使用DesignerEventResult()静态方法将答案返回给客户端。
public ActionResult DesignerEvent() { return StiMvcDesigner.DesignerEventResult(); }
最后,为Home控制器添加操作。该控制器的操作将重定向到所选视图——设计器或查看器。
public ActionResult Designer() { return RedirectToAction("Index", "Designer"); } public ActionResult Viewer() { return RedirectToAction("Index", "Viewer"); }
在下面的屏幕截图中,您可以看到示例代码的结果。