原創|使用教程|編輯:鄭恭琳|2019-10-30 15:01:21.033|閱讀 410 次
概述:本示例說明如何加載報表模板并在設計器中對其進行編輯。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
立即點擊下載Stimulsoft Reports.Net最新版
本示例說明如何加載報表模板并在設計器中對其進行編輯。
首先,您需要將StiMvcDesigner組件添加到視圖頁面。您還需要將StiMvcDesignerOptions對象傳遞給構造函數。所需的最少選項是兩個操作——GetReport和DesignerEvent。需要定義PreviewReport操作,這是注冊數據以預覽報表所必需的。
要添加保存報表的功能,您需要定義SaveReport操作。您也可以根據需要定義SaveReportAs操作。
@using Stimulsoft.Report.Mvc; ... @Html.Stimulsoft().StiMvcDesigner(new StiMvcDesignerOptions() { Actions = { GetReport = "GetReport", PreviewReport = "PreviewReport", SaveReport = "SaveReport", //SaveReportAs = "SaveReportAs", DesignerEvent = "DesignerEvent" } })
在上面的選項中,我們定義了幾個動作,我們需要將其添加到控制器中。
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(report); }
當您在設計器中按保存按鈕時,將調用SaveReport操作。在此操作中,您可以獲取報表對象并將其保存,例如保存到文件、JSON字符串然后保存到數據庫。為了為客戶準備答案,您應該使用SaveReportResult()靜態方法。如果需要,可以在此方法的參數中傳遞錯誤消息。默認情況下,不需要參數。
public ActionResult SaveReport() { StiReport report = StiMvcDesigner.GetReportObject(); // Save the report template, for example to JSON string string json = report.SaveToJsonString(); return StiMvcDesigner.SaveReportResult(); }
如果您在視圖頁面上定義了SaveReportAs操作,則還應將此操作添加到控制器中。此操作中的所有操作都可以與SaveReport操作中的操作相同。
public ActionResult SaveReportAs() { return StiMvcDesigner.SaveReportResult(); }
DesignerEvent操作處理所有設計器事件(添加和編輯報表組件、使用數據字典、切換頁面、縮放等),并使用DesignerEventResult()靜態方法將響應返回給客戶端。
public ActionResult DesignerEvent() { return StiMvcDesigner.DesignerEventResult(); }
在下面的屏幕截圖中,您可以看到示例代碼的結果。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn