報告生成器FastReport.Net 教程:如何調用??PreviewControl.OnPrint和PreviewControl.OnExport事件
報表生成器FastReport .NET是適用于.NET Core 3,ASP.NET,MVC和Windows窗體的全功能報告庫。使用FastReport .NET,您可以創建獨立于應用程序的.NET報告。
近日,FastReport .Net升級到v2020.4版,在此版本中,添加了新的條形碼:ITF-14和Deutsce Post Identcode,同時優化了多種性能(點擊下方按鈕下載),感興趣的朋友可點擊下方按鈕下載最新版。
Fastreport在線下單立享85折起!趕緊加入購物清單吧!
在FastReport 2019.4中添加了訂閱PreviewControl.OnPrint和PreviewControl.OnExport事件的功能,這些事件在按下相應按鈕時直接調用。
查看報告時,將使用工具欄調用查看器,該工具欄包含諸如打印按鈕和帶有報告導出功能的下拉列表之類的元素。選擇列表中的任何項目將觸發OnExport事件,然后按“打印”按鈕將觸發OnPrint。讓我們舉個例子,看看如何在實踐中使用這些事件。
您可以對這些事件使用標準處理程序,這些處理程序是為PreviewControl的可視組件創建的:
但是,如果在應用程序代碼中添加PreviewControl組件,則必須為事件簽名自己的處理程序。例如,您的處理程序可能會向您發送導出或打印事件警報。例如,這可能是數據庫中的記錄。讓我們考慮這個例子:
private void Button1_Click(object sender, EventArgs e)
{
//create report
Report report = new Report();
//Load report
report.Load("App_Data/Master-Detail.frx");
//create data source
DataSet data = new DataSet();
//load data
data.ReadXml("C:\\Program Files (x86)\\FastReports\\FastReport.Net\\Demos\\Reports\\nwind.xml");
//register data
report.RegisterData(data);
//create preview object
var prev = new PreviewControl();
//add preview into the form
this.Controls.Add(prev);
prev.Dock = DockStyle.Fill;
prev.BringToFront();
//subscribe to the event
prev.OnExport+= new System.EventHandler<PreviewControl.ExportEventArgs>(ExportAction);
//assign preview control to the report
report.Preview = prev;
//Show the report
report.Show();
}
創建報告對象并在其中注冊數據后,我們創建一個PreviewControl,訂閱事件處理程序OnExport事件,我們將在下面實現該事件。然后,將PreviewControl對象分配給預覽報告。現在,我們為OnExport事件實現一個自定義事件處理程序:
public void ExportAction(object sender, PreviewControl.ExportEventArgs e)
{
SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated Security=True");
SqlCommand command = new SqlCommand("insert into dbo.Status (ReportName, ExportType, ExportDate) Vales ('" + Path.GetFileNameWithoutExtension(e.Report.FileName) + "', '"+ e.Export.BaseName +"', '" + DateTime.Now + "')");
command.Connection = conn;
conn.Open();
command.ExecuteNonQuery();
conn.Close();
}
在這種方法中,我們將有關導出事件的信息記錄在數據庫中,包括報告名稱,導出類型和交易日期。這只是如何使用此事件的一個可能示例。例如,您可以實施發送有關此事件的電子郵件,或將導出文件保存到特定文件夾。
OnPrint事件的處理方式相同。
當查看時,這兩個事件是報表上最頻繁的操作,因此許多人希望自動化其對事件的自定義操作。現在可以輕松地從事件參數中獲取有關報告,導出或打印設置的信息,并將其處置以創建自己的附加操作。