码迷,mamicode.com
首页 > Web开发 > 详细

报告生成器FastReport.Net调用??PreviewControl.OnPrint和PreviewControl.OnExport事件

时间:2020-10-14 20:45:10      阅读:45      评论:0      收藏:0      [点我收藏+]

标签:pos   init   out   connect   应用   创建   保存   自动   path   

报表生成器FastReport .Net是适用于.NET Core 3,ASP.NET,MVC和Windows窗体的全功能报告库。使用FastReport .NET,您可以创建独立于应用程序的.NET报告。

近日,FastReport .Net升级到v2020.4版,在此版本中,添加了新的条形码:ITF-14和Deutsce Post Identcode,同时优化了多种性能(点击下方按钮下载),感兴趣的朋友可点击下方按钮下载最新版。

在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事件的处理方式相同。

当查看时,这两个事件是报表上最频繁的操作,因此许多人希望自动化其对事件的自定义操作。现在可以轻松地从事件参数中获取有关报告,导出或打印设置的信息,并将其处置以创建自己的附加操作。

APS帮助提升企业生产效率,真正实现生产计划可视化呈现与控制,快速有效响应不同场景的生产计划,提高准时交货能力,提高产能和资源利用率
想要了解甘特图或慧都APS系统,请登录慧都网咨询在线客服,解决您的问题!
本文章转载自【慧都科技】evget欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,尊重他人劳动成果

报告生成器FastReport.Net调用??PreviewControl.OnPrint和PreviewControl.OnExport事件

标签:pos   init   out   connect   应用   创建   保存   自动   path   

原文地址:https://www.cnblogs.com/ypldbk/p/13815378.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!