翻譯|使用教程|編輯:楊鵬連|2021-02-22 09:55:58.787|閱讀 250 次
概述:在本章中,我們將學習FastReport中使用報表的原則。我們還將仔細介紹配置FastReport.Net對話框。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
FastReport .Net是適用于Windows Forms,ASP.NET,MVC和.NET Core的全功能解決方案。它可以在Microsoft Visual Studio 2005-2019中使用。支持.Net Framework 2.0-4.x,.NET Core 3.0及以上版本。
在FastReport .NET 2021.1的新版本中,我們實現了對.NET 5的支持。添加了新條形碼-Deutsce Post Leitcode。將RTF轉換為報告對象的算法已得到顯著改進。并且還添加了用于轉換數字的新功能。歡迎下載體驗。(點擊下方按鈕下載)
立即點擊下載FastReport.NET v2021.1最新版
Fastreport.NET在線購買價更低,專享85折起!趕緊加入購物清單吧!
替換 "打開 "和 "保存 "對話框
如果您決定將報表存儲在數據庫中,您可能需要改變設計器,使其能夠從/向數據庫打開和保存報表。也就是說,你需要用你自己的對話框來代替標準的 "打開 "和 "保存 "對話框。要做到這一點,請使用EnvironmentSettings組件(見上一節)。該組件有以下事件。
CustomOpenDialog
發生在報表設計器即將顯示 "打開 "對話框時。在事件處理程序中,您必須顯示一個對話框窗口以允許用戶選擇一個報表文件。如果對話框成功執行,必須返回e.Cancel = false,并將e.FileName設置為所選文件名。
下面的例子演示了如何使用這個事件。
private void CustomOpenDialog_Handler( Object sender, OpenSaveDialogEventArgs e) { using (OpenFileDialog dialog = new OpenFileDialog()) { dialog.Filter = "Report files (*.frx)|*.frx"。 // 如果對話框中的 "報告文件",則將e.Cancel設置為false // 已成功執行 e.Cancel = dialog.ShowDialog() != DialogResult.OK。 //將e.FileName設置為選定的文件名。 e.FileName = dialog.FileName。 } }自定義保存對話框
發生在報表設計器即將顯示 "保存 "對話框時。在事件處理程序中,您必須顯示一個對話框窗口以允許用戶選擇一個報表文件。如果對話框成功執行,必須返回e.Cancel = false,并將e.FileName設置為所選文件名。
下面的例子演示了如何使用這個事件。
private void CustomSaveDialog_Handler( Object sender, OpenSaveDialogEventArgs e) { using (SaveFileDialog dialog = new SaveFileDialog()) { dialog.Filter = "Report files (*.frx)|*.frx"; //從e.FileName中獲取默認文件名。 dialog.FileName = e.FileName; // 如果 dialog.FileName = e.FileName; // 如果 dialog.FileName = e.Cancel,則設置 e.Cancel 為 false e.Cancel = dialog.ShowDialog() != DialogResult.OK; //將e.FileName設置為選定的文件名。 e.FileName = dialog.FileName; } }自定義打開報告
發生在報表設計器即將加載報表時。在事件處理程序中,您必須從 e.FileName 屬性中指定的位置加載 e.Report 屬性中指定的報表。后一個屬性包含 CustomOpenDialog 事件處理程序返回的名稱。它可能是文件名、數據庫鍵值等。
下面的示例演示了如何使用該事件:
private void CustomOpenReport_Handler( Object sender, OpenSaveReportEventArgs e) { //從給定的e.FileName中加載報告。 e.Report.Load(e.FileName); }自定義保存報告
發生在報表設計器準備保存報表時。在事件處理程序中,您必須將 e.Report 屬性中指定的報告保存到 e.FileName 屬性中指定的位置。后一個屬性包含 CustomSaveDialog 事件處理程序返回的名稱。它可能是文件名、數據庫鍵值等。
下面的示例演示了如何使用該事件。
private void CustomSaveReport_Handler( Object sender, OpenSaveReportEventArgs e) { // 將報告保存到給定的e.FileName中。 e.Report.Save(e.FileName); }替換標準進度窗口
在進行以下操作時,會顯示進度窗口。
StartProgress
在操作前發生一次。在這種情況下,你必須創建自己的進度窗口并顯示它。
進度
每次處理當前報表頁時發生。在這種情況下,您必須在窗口中顯示進度狀態。
FinishProgress
操作后發生一次。在這個事件中,你必須銷毀進度窗口。
Progress事件的參數為ProgressEventArgs類型。它有以下幾個參數屬性。
string Message | 消息文本
int Progress | 當前處理的報告頁的索引。
int Total | 報告的總頁數。當準備一個報告時,這個參數可能為0,因為總頁數是未知的。
在大多數情況下,您需要在 Progress 事件處理程序中顯示來自 e.Message 屬性的文本。如果你想顯示一個進度條,其他參數可能會很有用。
傳遞自己的連接字符串
如果您使用在報表中定義的數據源,您可能需要向報表傳遞應用程序定義的連接字符串。這可以通過三種方法來完成。
第一種方法:你直接將連接字符串傳遞給報表中的Connection對象。
執行以下操作。
report1.Load(...);
//在加載報表之后,運行報表之前進行操作
//假設我們在報告中只有一個連接
report1.Dictionary.Connections[0].ConnectionString = my_connection_string;
report1.Show();
第二種方法:你用報告參數傳遞一個連接字符串。執行以下操作。
[M yParam eter]
report1.SetParameterValue("MyParameter", my_connection_string);
第三種方法:使用EnvironmentSettings組件的DatabaseLogin事件(參見 "配置FastReport.Net環境 "部分)。該事件在每次FastReport打開連接時發生。下面是這個事件處理程序的一個例子。
private void environmentSettings1_DatabaseLogin( Object sender, DatabaseLoginEventArgs e) { e.ConnectionString = my_connection_string; }請記住,DatabaseLogin事件是全局的,它適用于所有報表。
傳遞自定義SQL
報表可能包含使用數據向導添加的數據源(通過 "數據|添加數據源... "菜單)。有時需要從您的應用程序向該數據源傳遞自定義SQL。要做到這一點,請使用以下代碼。
using FastReport.Data.Report1.Load(...) report1.Load(...); //在加載報表之后,運行報表之前進行操作 // 通過表的別名找到表 TableDataSource table = report1.GetDataSource("MyTable") as TableDataSource.SelectCommand = "new SQL text"; table.SelectCommand = "new SQL text"; report1.Show();對報表對象的引用
當您將報表作為一個類來使用時(請參閱 "存儲報表和加載報表 "部分),您可以直接引用報表對象。下面的例子演示了如何改變報表中包含的 "Text1 "對象的字體。
SimpleListReport report = new SimpleListReport();
report.Text1.Font = new Font("Arial", 12);
在其他情況下,如果需要獲取一個對象的引用,必須使用Report對象的FindObject方法。
TextObject text1 = report1.FindObject("Text1") as TextObject;
text1.Font = new Font("Arial", 12);
要引用報表中定義的數據源,使用Report對象的GetDataSource方法。該方法將數據源的別名作為參數。
DataSourceBase ds = report1.GetDataSource("Products");
還想要更多嗎?您可以點擊閱讀【FastReport 報表2020最新資源盤點】,查找需要的教程資源。讓人興奮的是FastReport .NET正在慧都網火熱銷售中!低至3701元起!>>查看價格詳情
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: