報表生成器FastReport .Net存儲和加載報告

[FastReport .Net]是適用於Windows Forms,ASP.NET,MVC和.NET Core的全功能[報表]解決方案。它能夠在Microsoft Visual Studio 2005-2019中使用。支持.Net Framework 2.0-4.x,.NET Core 3.0及以上版本。web

在FastReport .NET 2021.1的新版本中,咱們實現了對.NET 5的支持。添加了新條形碼-Deutsce Post Leitcode。將RTF轉換爲報告對象的算法已獲得顯着改進。而且還添加了用於轉換數字的新功能。歡迎下載體驗。(點擊下方按鈕下載)算法

存儲和加載報告編輯器

您能夠用如下方式存儲報告:this

方法描述:設計

以網頁形式 調試

咱們以前看過的典型場景,使用了這個方法。報告存儲在WebReport組件的ReportResourceString屬性中。這個方法有如下優勢和缺點。code

  • 這是一種最簡單的FastReport.Net工做方式。
  • 報表模板存儲在Web表單的ViewState中。它將在客戶端傳輸。若是報表的大小很大,可能會減慢工做速度。
  • 此方法與 ""Medium Trust "模式不兼容。

報表加載是自動進行的。orm

在.FRX文件中 對象

此方法假設報表存儲在一個特殊文件夾 "App_Data "中的文件中。要作到這一點。事件

  • 運行報表設計器:
  • 建立一個報表並將其保存到.FRX文件中。
  • 在 "解決方案資源管理器 "中,選擇 "App_Data "文件夾,右鍵點擊,選擇 "添加|現有項目... "項。選擇剛纔保存的報表文件。
  • 選擇WebReport組件,清除其ReportResourceString屬性。
  • 選擇 "ReportFile "屬性,調用其編輯器,從 "App_Data "文件夾中選擇報表。

此方法有如下利弊:

  • 報表不會被傳送到客戶端機器上。
  • 此方法與 "中等信任 "模式不兼容。

報表加載是自動進行的。

也能夠經過WebReport.StartReport事件處理程序加載報表。

StartReport事件處理程序中的代碼示例
(sender as WebReport).Report.Load(this.Server.MapPath("~/App_Data/report.frx"))。做爲一個C#/VB.NET類

在這個方法中,你把報表做爲一個類來處理。要作到這一點:

  • 設計你的報表並保存在.cs/.vb文件中。要作到這一點,在 "保存 "對話框中選擇 "文件類型"。文件類型多是.cs或.vb--這取決於報表中的腳本語言(能夠在 "Report|Options... "菜單中更改)。
  • 將該文件包含在你的項目中。最好把它保存在 "App_Code "文件夾中。
  • 清除WebReport組件的ReportResourceString和ReportFile屬性。

這個方法有如下優勢和缺點:

  • 你能夠把報表做爲一個普通的類來使用;
  • 你能夠在Visual Studio中調試報表;
  • 這是在 "Medium Trust "模式下使用報表的惟一方法。
  • 你不能編輯這樣的報表。要作到這一點,你須要原始的.FRX文件。

要使用報表,請建立WebReport.StartReport事件處理程序。在這個處理程序中,你應該作如下事情:

  • 建立一個報表類的實例。
  • 註冊數據。
  • 將報表設置爲WebReport組件的Report屬性。

StartReport事件處理程序的例子。

SimpleListReport report = new SimpleListReport();
report.RegisterDataAsp(your_data, "your_data_name");
WebReport1.Report = report;

準備好的報告能夠經過WebReport.StartReport事件處理程序使用WebReport.ReportDone屬性來顯示。在StartReport中加載和顯示準備好的報告的示例代碼。

(sender as WebReport).Report.LoadPrepared(this.Server.MapPath("~/App_Data/Prepared.fpx"));
(sender as WebReport).ReportDone = true;

註冊數據

若是使用 WebReport 組件的 "智能標籤 "菜單選擇數據源,則不須要手動註冊數據。在這種狀況下,FastReport.Net將數據源的名稱存儲在WebReport組件的ReportDataSources屬性中。

若是您不想使用這種方法註冊數據,您須要手動註冊。能夠經過使用WebReport組件的StartReport事件來完成。在這個事件處理程序中,你能夠調用報表的RegisterData和RegisterDataAsp方法。能夠經過WebReport.Report屬性來訪問報表。

webReport1.Report.RegisterData(myDataSet).

在本節中閱讀更多關於註冊數據的內容。

向報表參數傳遞一個值

要向報表參數傳遞一個值,請使用Report對象的SetParameterValue方法。該方法在 "使用Windows.Forms工做 "一章中有詳細介紹。

要在 ASP.NET 中使用該方法,須要爲 WebReport 組件的 StartReport 事件建立事件處理程序。能夠經過WebReport訪問報表。

Report屬性:

webReport1.Report.SetParameterValue("MyParam", 10);

相關文章
相關標籤/搜索