• <menu id="w2i4a"></menu>
  • logo FastReport.Net教程2020(持續(xù)更新中)

    文檔首頁>>FastReport.Net教程2020(持續(xù)更新中)>>報(bào)告生成器FastReport .NET功能指南:為Web FastReport.Net報(bào)表創(chuàng)建自定義工具欄

    報(bào)告生成器FastReport .NET功能指南:為Web FastReport.Net報(bào)表創(chuàng)建自定義工具欄


    報(bào)表生成器FastReport .NET是適用于.NET Core 3,ASP.NET,MVC和Windows窗體的全功能報(bào)告庫。使用FastReport .NET,您可以創(chuàng)建獨(dú)立于應(yīng)用程序的.NET報(bào)告。

    近日,F(xiàn)astReport .Net升級到v2020.3版,在此版本中,添加了瑞士QR碼,允許配置打印機(jī)托盤以打印報(bào)告的最后一頁,不再支持.NET Framework 2.0,同時修復(fù)了多個Bug問題,感興趣的朋友可點(diǎn)擊下方按鈕下載最新版。

    點(diǎn)擊下載最新版FastReport .Net

    許多報(bào)表生成器的用戶在查看報(bào)表時對設(shè)置工具欄感興趣。這些問題定期出現(xiàn)在論壇和調(diào)查表上。

    在某些情況下,用戶只會滿足于隱藏不必要的控件。但是,如果標(biāo)準(zhǔn)的報(bào)告審查工具欄完全不能滿足要求呢?

    標(biāo)準(zhǔn)的web報(bào)表工具欄在設(shè)計(jì)或工具箱上可能不適合用戶。解決這些問題的唯一辦法可能是實(shí)現(xiàn)自己的工具欄。當(dāng)然,它不必是一個面板,控件可以按您的喜好放置在web頁面上。我們只要“把報(bào)告拉到正確的地方”,就可以得到我們需要的行為。作為一個例子,我們來看看標(biāo)準(zhǔn)的ASP.Net MVC應(yīng)用程序。

    Web方法通過自定義控件返回報(bào)告的表示形式。使用Web報(bào)表的靜態(tài)對象,以便能夠在整個應(yīng)用程序中對其進(jìn)行操作。例如,翻頁。

    public static WebReport webReport = new WebReport();

    web方法接受幾個參數(shù):導(dǎo)出類型、顯示工具欄、面板樣式、轉(zhuǎn)換到另一個頁面的類型。

     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;
     }
     }

    實(shí)際上,此方法根據(jù)我們在網(wǎng)頁上單擊哪個按鈕來選擇操作。除了瀏覽報(bào)告的操作外,還有一個按鈕可以打印報(bào)告。

    //Next page 
     public void NextPage()
     {
     webReport.NextPage();
     } 

    這些和其他報(bào)表導(dǎo)航方法使用報(bào)表工具欄上的標(biāo)準(zhǔn)功能按鈕。

    //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();
     } 

    報(bào)表打印也可以設(shè)置為PrintPDF()。同時,報(bào)告將預(yù)先導(dǎo)出為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;
     }
     }

    為了確定導(dǎo)出格式,再次使用switch語句。根據(jù)所選擇的格式,執(zhí)行與導(dǎo)出方法對應(yīng)的操作。

    //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;
     }

    現(xiàn)在讓我們看一下程序。如您所知,我們的任務(wù)是創(chuàng)建一個打印、導(dǎo)出和導(dǎo)航報(bào)告控件。

    @{
     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>

    我們添加了打印按鈕、帶有導(dǎo)出類型的下拉列表、隱藏標(biāo)準(zhǔn)工具欄的復(fù)選框和逐頁轉(zhuǎn)換按鈕(第一頁、前一頁、下一頁和最后一頁)。讓我們看看發(fā)生了什么:

    報(bào)告生成器FastReport .NET功能指南:為Web FastReport.Net報(bào)表創(chuàng)建自定義工具欄

    因此,我們創(chuàng)建了自己的工具欄來與報(bào)表交互。這將允許我們將這些元素嵌入到web頁面的設(shè)計(jì)中,并放棄標(biāo)準(zhǔn)面板。在本例中,我們沒有實(shí)現(xiàn)標(biāo)準(zhǔn)工具欄的所有功能,而只實(shí)現(xiàn)了基本特性。您可以通過類比所考慮的示例輕松實(shí)現(xiàn)其他特性。


    驚喜618!Fastreport.NET在線購買價(jià)更低!趕緊加入購物清單吧!

    還想要更多嗎?您可以點(diǎn)擊閱讀【FastReport 報(bào)表2019最新資源盤點(diǎn)】,查找需要的教程資源。如果您有任何疑問或需求,請隨時加入FastReport技術(shù)交流群(783996712),我們很高興為您提供查詢和咨詢。

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();