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

    文檔首頁>>FastReport.Net教程2020(持續(xù)更新中)>>報告生成器FastReport.Net 教程:如何調(diào)用??PreviewControl.OnPrint和PreviewControl.OnExport事件

    報告生成器FastReport.Net 教程:如何調(diào)用??PreviewControl.OnPrint和PreviewControl.OnExport事件


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

    近日,F(xiàn)astReport .Net升級到v2020.4版,在此版本中,添加了新的條形碼:ITF-14和Deutsce Post Identcode,同時優(yōu)化了多種性能(點擊下方按鈕下載),感興趣的朋友可點擊下方按鈕下載最新版。

    點擊下載最新版FastReport .Net

    Fastreport在線下單立享85折起!趕緊加入購物清單吧!

    在FastReport 2019.4中添加了訂閱PreviewControl.OnPrint和PreviewControl.OnExport事件的功能,這些事件在按下相應(yīng)按鈕時直接調(diào)用。

    查看報告時,將使用工具欄調(diào)用查看器,該工具欄包含諸如打印按鈕和帶有報告導(dǎo)出功能的下拉列表之類的元素。選擇列表中的任何項目將觸發(fā)OnExport事件,然后按“打印”按鈕將觸發(fā)OnPrint。讓我們舉個例子,看看如何在實踐中使用這些事件。

    您可以對這些事件使用標準處理程序,這些處理程序是為PreviewControl的可視組件創(chuàng)建的:

    è®???®?o?OnExport?o????
    在這種情況下,您只需將必要的操作添加到處理程序。

    但是,如果在應(yīng)用程序代碼中添加PreviewControl組件,則必須為事件簽名自己的處理程序。例如,您的處理程序可能會向您發(fā)送導(dǎo)出或打印事件警報。例如,這可能是數(shù)據(jù)庫中的記錄。讓我們考慮這個例子:

     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();
     }
     創(chuàng)建報告對象并在其中注冊數(shù)據(jù)后,我們創(chuàng)建一個PreviewControl,訂閱事件處理程序OnExport事件,我們將在下面實現(xiàn)該事件。然后,將PreviewControl對象分配給預(yù)覽報告?,F(xiàn)在,我們?yōu)镺nExport事件實現(xiàn)一個自定義事件處理程序:
     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();
     }
     在這種方法中,我們將有關(guān)導(dǎo)出事件的信息記錄在數(shù)據(jù)庫中,包括報告名稱,導(dǎo)出類型和交易日期。這只是如何使用此事件的一個可能示例。例如,您可以實施發(fā)送有關(guān)此事件的電子郵件,或?qū)?dǎo)出文件保存到特定文件夾。

    OnPrint事件的處理方式相同。

    當(dāng)查看時,這兩個事件是報表上最頻繁的操作,因此許多人希望自動化其對事件的自定義操作?,F(xiàn)在可以輕松地從事件參數(shù)中獲取有關(guān)報告,導(dǎo)出或打印設(shè)置的信息,并將其處置以創(chuàng)建自己的附加操作。

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    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); })();