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