提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:王香|2019-03-11 10:50:35.000|阅读 308 次
概述:报表是工作流程和电子报表(电子工作流程)不可或缺的一部分。分发电子报表的主要机制之一是电子邮件。也许,所有现代报表生成器都有一个内置的邮件客户端,可以直接从程序发送报表。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
报表是工作流程和电子报表(电子工作流程)不可或缺的一部分。分发电子报表的主要机制之一是电子邮件。也许,所有现代报表生成器都有一个内置的邮件客户端,可以直接从程序发送报表。
FastReport.Net也不例外。您可以在预览模式下发送报表,也可以直接从用户应用程序的代码发送报表。如果您向单个收件人发送报表,这很方便。虽然可以添加多个收件人,但并不总是合适。例如,当您想要制作一个包含用户名称的简报时:“亲爱的,Ivan Ivanovich ......”。因此,我们考虑如何向多个收件人发送报表的示例,其地址和名称取自数据库。首先,在其中创建一个数据库和一个表。例如,以mdb格式访问数据库:
创建一个WinForms应用程序。将电子邮件设置的两个按钮和文本字段添加到表单:
第一个按钮将按名称发送报表,第二个按钮将报表发送到地址列表。您将从代码中了解其工作原理。 每个字段都有一个默认值; 如果您愿意,可以输入不同的值。
使用向导创建应用程序数据源:
接下来,我们将连接字符串配置到数据库并选择表:
将FastReport库的链接添加到项目中。我们还需要一个包含报告模板的文件,我们将发送该文件。将其添加到项目中。例如,我们将使用Demo文件夹中的报告text.frx。
现在为Direct email按钮事件创建一个处理程序:
using System; using System.Data; using System.Windows.Forms; using FastReport; using FastReport.Utils; using FastReport.Export.Pdf; using FastReport.Export.Email; private void SendReport_Click(object sender, EventArgs e) { Config.ReportSettings.ShowProgress = false; //Disable progress window Report report1 = new Report(); //Create new report object report1.Load(Environment.CurrentDirectory + "/text.frx"); //Load report report1.Prepare(); //Prepare report PDFExport pdf = new PDFExport(); //Cteate PDF export EmailExport email = new EmailExport(); //Create Email export EmailsDataSet ds = new EmailsDataSet(); EmailsDataSetTableAdapters.CustomerTableAdapter adapter = new EmailsDataSetTableAdapters.CustomerTableAdapter(); adapter.Fill(ds.Customer); DataTable table = ds.Customer; foreach (DataRow row in table.Rows) { SendMessage(report1, pdf, email, row["Email"].ToString(), row["Name"].ToString()); } }
这里我们首先创建报表对象,将模板加载到其中,创建导出到PDF和电子邮件。该报告将附在PDF格式的信件中。
接下来,我们创建一个数据源,用数据填充表。我们查看表格条目,并为每个条目发送一封信。当然,如果你有一个庞大的邮件列表,这种方法会很慢。但是你可以在信件的文本中插入客户的名字。
正如您所注意到的,我们已经将这封信发送到一个单独的方法 - SendMessage:
public void SendMessage(Report report, PDFExport pdf, EmailExport email, string recipient, string custName) { email.Account.Address = AddressFromTxt.Text; email.Account.Name = SenderNameTxt.Text; email.Account.Host = HostTxt.Text; email.Account.Port = Convert.ToInt16(PortTxt.Text); email.Account.UserName = UserNameTxt.Text; email.Account.Password = PasswordTxt.Text; email.Account.MessageTemplate = "Test"; email.Account.EnableSSL = true; email.Address = recipient; email.Subject = MailSubjectTxt.Text; email.MessageBody = custName is null? MessageTxt.Text : string.Format("Dear, {0}! {1}", custName, MessageTxt.Text); email.Export = pdf; //Set export type email.SendEmail(report); //Send email }
对于Send to all按钮,让我们创建一个OnClick事件处理程序:
private void Send_to_all_Click(object sender, EventArgs e) { Config.ReportSettings.ShowProgress PDFExport(); //Cteate PDF export EmailExport email = new EmailExport(); //Create Email export = ds.Customer; foreach (DataRow row in table.Rows) { if (emails == "") emails ; MessageBox.Show(emails); }
与前面的代码不同,在循环中我们添加地址以发送给变量,然后将其传递给消息发送方法。此方法比前一个方法工作得快得多,特别是如果邮件列表很大。为自己判断,在这里你发一封信,而不是一套。
因此,发送报表的任务减少为导出到电子邮件并从数据库向每个地址发送一封信。
购买FastReport.Net正版授权,请点击“”哟!
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢