翻譯|使用教程|編輯:李顯亮|2020-06-08 11:14:19.930|閱讀 556 次
概述:標準的web報表工具欄在設計或工具箱上可能不適合用戶。解決這些問題的唯一辦法可能是實現自己的工具欄。當然,它不必是一個面板,控件可以按您的喜好放置在web頁面上。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
報表生成器FastReport .NET是適用于.NET Core 3,ASP.NET,MVC和Windows窗體的全功能報告庫。使用FastReport .NET,您可以創建獨立于應用程序的.NET報告。
近日,FastReport .Net升級到v2020.3版,在此版本中,添加了瑞士QR碼,允許配置打印機托盤以打印報告的最后一頁,不再支持.NET Framework 2.0,同時修復了多個Bug問題,感興趣的朋友可點擊下方按鈕下載最新版。
許多報表生成器的用戶在查看報表時對設置工具欄感興趣。這些問題定期出現在論壇和調查表上。
在某些情況下,用戶只會滿足于隱藏不必要的控件。但是,如果標準的報告審查工具欄完全不能滿足要求呢?
標準的web報表工具欄在設計或工具箱上可能不適合用戶。解決這些問題的唯一辦法可能是實現自己的工具欄。當然,它不必是一個面板,控件可以按您的喜好放置在web頁面上。我們只要“把報告拉到正確的地方”,就可以得到我們需要的行為。作為一個例子,我們來看看標準的ASP.Net MVC應用程序。
Web方法通過自定義控件返回報告的表示形式。使用Web報表的靜態對象,以便能夠在整個應用程序中對其進行操作。例如,翻頁。
public static WebReport webReport = new WebReport();
web方法接受幾個參數:導出類型、顯示工具欄、面板樣式、轉換到另一個頁面的類型。
public ActionResult Index(string ExportType,string toolbar, string page) { SetReport();//Method of the loading template into the report object if (ExportType != null) Export(ExportType); //Report export method SetPage(page); //Go to the particular report page method ShowToolbar(toolbar); //Hide/display toolbar method webReport.Width = Unit.Percentage(100); webReport.Height = Unit.Percentage(100); ViewBag.WebReport = webReport; return View(); } //Upload the report object method private void SetReport() { string report_path = GetReportPath(); System.Data.DataSet dataSet = new System.Data.DataSet(); dataSet.ReadXml(report_path + "nwind.xml"); webReport.Report.RegisterData(dataSet, "NorthWind"); webReport.Report.Load(report_path + "Master-Detail.frx"); } // Go to the particular report page method public void SetPage(string page) { switch (page) { case "Next": NextPage(); break; case "Prev": PrevPage(); break; case "First": FirstPage(); break; case "Last": LastPage(); break; case "Print": Print(); break; } }
實際上,此方法根據我們在網頁上單擊哪個按鈕來選擇操作。除了瀏覽報告的操作外,還有一個按鈕可以打印報告。
//Next page public void NextPage() { webReport.NextPage(); }
這些和其他報表導航方法使用報表工具欄上的標準功能按鈕。
//Previous page public void PrevPage() { webReport.PrevPage(); } //First page public void FirstPage() { webReport.FirstPage(); } //Last page public void LastPage() { webReport.LastPage(); } //Print report public void Print() { webReport.PrintHtml(); }
報表打印也可以設置為PrintPDF()。同時,報告將預先導出為pdf格式。
//Report export nethod public void Export(string type) { switch (type) { case "pdf": webReport.ExportPdf(); break; case "csv": webReport.ExportCsv(); break; case "doc": webReport.ExportWord2007(); break; } }
為了確定導出格式,再次使用switch語句。根據所選擇的格式,執行與導出方法對應的操作。
//Set the path of the report folder private string GetReportPath() { return this.Server.MapPath("~/App_Data/"); } //Hide/display the toolbar default method public void ShowToolbar(string toolbar) { webReport.ShowToolbar = toolbar; }
現在讓我們看一下程序。如您所知,我們的任務是創建一個打印、導出和導航報告控件。
@{ ViewBag.Title = "Home Page"; } <div style="float:left"> <div align="left"> @using (Html.BeginForm("Index", "Home")) { <table> <tr> <td> <input id="Print" type="submit" value="Print" onclick="document.getElementById('page').value='Print'" /> </td> <td> @Html.DropDownList("ExportType", new List<SelectListItem>() { new SelectListItem(){ Text= "PDF", Value = "pdf"}, new SelectListItem(){ Text= "CSV", Value = "csv"}, new SelectListItem(){ Text= "Word", Value = "doc"}, }, "Select export type", { @onchange = "this.form.submit()" } ) </td> <td> @Html.CheckBox("Show toolbar", true, new { @onchange = "this.form.submit()" }) Toolbar </td> <td> <input id="first" type="submit" value="<<" onclick="document.getElementById('page').value='First'" /> <input id="prev" type="submit" value="<" onclick="document.getElementById('page').value='Prev'" /> <input id="next" type="submit" value=">" onclick="document.getElementById('page').value='Next'" /> <input id="Last" type="submit" value=">>" onclick="document.getElementById('page').value='Last'" /> <input id="page" type="hidden" name="page"> </td> </tr> </table> } </div> </div> <div> @ViewBag.WebReport.GetHtml() </div>
我們添加了打印按鈕、帶有導出類型的下拉列表、隱藏標準工具欄的復選框和逐頁轉換按鈕(第一頁、前一頁、下一頁和最后一頁)。讓我們看看發生了什么:
因此,我們創建了自己的工具欄來與報表交互。這將允許我們將這些元素嵌入到web頁面的設計中,并放棄標準面板。在本例中,我們沒有實現標準工具欄的所有功能,而只實現了基本特性。您可以通過類比所考慮的示例輕松實現其他特性。
還想要更多嗎?您可以點擊閱讀【FastReport 報表2019最新資源盤點】,查找需要的教程資源。如果您有任何疑問或需求,請隨時加入FastReport技術交流群(783996712),我們很高興為您提供查詢和咨詢。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn