想要在FastReport .Net中隱藏沒有數(shù)據(jù)的報表頁面?教你兩種方法
報表生成器FastReport .NET是適用于.NET Core 3,ASP.NET,MVC和Windows窗體的全功能報告庫。使用FastReport .NET,您可以創(chuàng)建獨立于應(yīng)用程序的.NET報告。
近日,F(xiàn)astReport .Net升級到v2020.3版,在此版本中,添加了瑞士QR碼,允許配置打印機托盤以打印報告的最后一頁,不再支持.NET Framework 2.0,同時修復(fù)了多個Bug問題,感興趣的朋友可點擊下方按鈕下載最新版。
數(shù)據(jù)源并不總是包含數(shù)據(jù)。而且,當(dāng)生成報告時,即使數(shù)據(jù)源為空,也將至少以標(biāo)題顯示頁面
例如,報表生成器Stimulsoft Reports開發(fā)人員建議使用條件工具隱藏頁面。設(shè)置條件以檢查源中的記錄數(shù),可以指定頁面顯示組件選項。一個好的解決方案,足夠簡單。
本文的主題與任何報告生成器都相關(guān),因此讓我們看看在FastReport.Net中執(zhí)行此操作的方法。
數(shù)據(jù)彎曲具有PrintIfDatasourceEmpty屬性,默認(rèn)情況下為false。這意味著如果沒有數(shù)據(jù),則不會顯示該波段。但是該頁面仍然顯示給用戶,因為它包含數(shù)據(jù)標(biāo)題或頁面標(biāo)題。因此,如果帶區(qū)為空,我們需要編寫一個簡單的腳本來隱藏頁面。
有兩種選擇:
①檢查數(shù)據(jù)帶中的空白數(shù)據(jù)源。為此,請使用報表的StartPage事件頁:
private void Page2_StartPage(object sender, EventArgs e) { if (Data2.DataSource.RowCount == 0) Page2.Visible = false; }
但是在這種情況下,我們需要為報表啟用DoublePass選項。事實是,我們只能在頁面形成階段用數(shù)據(jù)檢查帶的無效性,我們需要將其隱藏。DoublePass選項在生成報告時包括兩次通過。在第二遍中,已經(jīng)知道該區(qū)域中的數(shù)據(jù)源為空,并且在構(gòu)建頁面之前將其隱藏。
②不需要報表的往返。我們只需要為事件StartReport報表對象添加一個處理程序:
private void _StartReport(object sender, EventArgs e) { DataSourceBase ds = Report.GetDataSource("Category"); if (!ds.HasMoreRows) { Page2.Visible = false; } }
在這種情況下,我們直接檢查報表的數(shù)據(jù)源,表類別。然后,我們可以在開始創(chuàng)建報告頁面之前查明源是否為空。
還想要更多嗎?您可以點擊閱讀【FastReport 報表2019最新資源盤點】,查找需要的教程資源。如果您有任何疑問或需求,請隨時加入FastReport技術(shù)交流群(783996712),我們很高興為您提供查詢和咨詢。