原創|使用教程|編輯:鄭恭琳|2019-10-31 15:39:34.753|閱讀 269 次
概述:本示例說明了如何在Flash Designer中使用自定義保存報表對話框。默認情況下,該報表在AJAX模式下另存為POST請求,但是可以更改此行為。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
立即點擊下載Stimulsoft Reports.Net最新版
本示例說明了如何在Flash Designer中使用自定義保存報表對話框。默認情況下,該報表在AJAX模式下另存為POST請求,但是可以更改此行為。
首先,您需要將StiMvcDesignerFx組件添加到視圖頁面。您還需要將StiMvcDesignerFxOptions類型的對象傳遞給構造函數。所需的最少選項是兩個操作——GetReport和DesignerEvent,它們位于操作“Actions”選項組中。最好定義PreviewReport操作,這對于預覽報表是必需的。
要添加保存報表的功能,您需要定義SaveReport操作。您還應該設置SaveReportMode選項來更改保存報表算法的行為。
@using Stimulsoft.Report.Web; @using Stimulsoft.Report.Mvc; ... @Html.Stimulsoft().StiMvcDesignerFx(new StiMvcDesignerFxOptions() { Actions = { GetReport = "GetReport", PreviewReport = "PreviewReport", SaveReport = "SaveReport", DesignerEvent = "DesignerEvent" }, Behavior = { SaveReportMode = StiSaveMode.Visible } })
接下來,您需要使用自定義保存對話框添加視圖。例如,創建一個簡單的表單,其中包含將包含報表文件名稱的文本框和一個保存按鈕。將此視圖另存為SaveDialog。
<h2>Custom Save Dialog</h2> @using (Html.BeginForm("SaveReportFromDialog", "DesignerFx", FormMethod.Post)) { <fieldset> Report file name:<br /> <input name="filename" type="text" value="MyReport.mrt" width="100" /><br /><br /> <input type="submit" value="Save" /> </fieldset> }
現在,我們需要在控制器中添加所有動作。例如,將一個控制器用于Flash Designer和自定義保存對話框視圖。
GetReport操作將加載報表模板,并使用GetReportResult()靜態方法將答案返回給Flash Designer的客戶端部分。在此方法的參數中,應傳遞報表對象。
public ActionResult GetReport() { StiReport report = new StiReport(); report.Load(Server.MapPath("~/Content/Reports/TwoSimpleLists.mrt")); return StiMvcDesignerFx.GetReportResult(report); }
當您在Flash設計器中打開預覽報表選項卡時,將調用PreviewReport操作。在此操作中,您可以獲取報表對象并執行任何操作,例如連接到數據。要為客戶準備答案,您應該使用PreviewReportResult()靜態方法。在此方法的參數中,應傳遞報表對象。
public ActionResult PreviewReport() { DataSet data = new DataSet("Demo"); data.ReadXml(Server.MapPath("~/Content/Data/Demo.xml")); StiReport report = StiMvcDesignerFx.GetReportObject(); report.RegData(data); return StiMvcDesignerFx.PreviewReportResult(report); }
當您單擊Flash Designer中的保存按鈕時,將調用SaveReport操作。在此操作中,獲取報表對象并將其存儲在服務器會話表中,因為對象ID使用“SaveReportTemplate”字符串常量值。完成這些操作后,我們將重定向到另一個視圖,即我們的自定義保存對話框。
public ActionResult SaveReport() { StiReport report = StiMvcDesignerFx.GetReportObject(); // Store the report object in the session Session["SaveReportTemplate"] = report; return View("SaveDialog"); }
DesignerEvent操作將處理一些Flash Designer事件(使用數據字典、獲取報表模板代碼和組件圖像等),并使用DesignerEventResult()靜態方法將答案返回給客戶端。
public ActionResult DesignerEvent() { return StiMvcDesignerFx.DesignerEventResult(); }
當您單擊自定義保存對話框表單中的保存按鈕時,將調用SaveReportFromDialog操作。在此操作中,按ID從服務器會話中獲取報表對象,該ID在flahs設計器操作中使用?,F在,您可以將報表保存為例如帶有名稱的文件,該文件在custon save對話框表單中輸入。完成這些操作后,我們將重定向到索引視圖,即Flash設計器。
public ActionResult SaveReportFromDialog(string filename) { StiReport report = Session["SaveReportTemplate"] as StiReport; // Save report // report.Save(filepath + filename); return View("Index"); }
在下面的屏幕截圖中,您可以看到示例代碼的結果。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn