提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:王香|2019-03-11 10:50:35.000|阅读 308 次
概述:报表是工作流程和电子报表(电子工作流程)不可或缺的一部分。分发电子报表的主要机制之一是电子邮件。也许,所有现代报表生成器都有一个内置的邮件客户端,可以直接从程序发送报表。
#慧都22周年庆大促·界面/图表报表/文档/IDE/IOT/测试等千款热门软控件火热促销中>>
相关链接:
报表是工作流程和电子报表(电子工作流程)不可或缺的一部分。分发电子报表的主要机制之一是电子邮件。也许,所有现代报表生成器都有一个内置的邮件客户端,可以直接从程序发送报表。
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@hmdbvip.cn




在嵌入式软件测试领域,对交叉编译代码进行单元测试是一大挑战。Parasoft C/C++test作为专业的C/C++测试工具,能够与劳特巴赫Trace32调试器深度集成。下面会详细介绍如何在C++test中配置Trace32调试器,实现对PowerPC架构程序的单元测试,涵盖环境设置、项目导入到测试执行的全过程。
本文将为大家介绍如何使用DevExpress WinForms数据网格控件实现摘要文本的格式化,欢迎下载最新版组件体验!
Parasoft C/C++test作为一款功能强大的自动化测试工具,为嵌入式开发提供了全面的测试解决方案。特别是在CCS开发环境中,C++test能够无缝集成,为F2812等DSP项目提供专业的单元测试支持。下面将介绍如何在CCS3环境下配置和使用C++test进行F2812项目的单元测试。
在嵌入式开发中,尤其是基于ARM架构的安全关键领域,单元测试是验证代码在目标硬件上运行时行为正确性的关键环节,对于保障最终产品的可靠性至关重要。下面将介绍如何利用Parasoft C/C++test开展单元测试,包括配置、执行及解决可能遇到的许可证问题,完成从静态检查到动态运行的完整测试闭环。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@hmdbvip.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
永利最大(官方)网站