1. 概述
1.1 应用场景1.2 预期效果模板中勾选中止的数据,填报成功后立即通过邮件告知,并发送中止的内容信息。如下图所示: 注:邮件以 HTML 显示,可复制内容。 1.3 解决思路在 JS 中,FineReport 提供了 _g().emailReport() 这个方法来启动发送邮件功能,但是仍然弹出的是手动发发邮件的功能,我们可以使用FR.sendMail() 方法来实现更加灵活的发送邮件功能。 2. 示例
2.1 模板准备 打开模板 %FR_HOME%\webroot\WEB-INF\reportlets\doc\Form\LineForm\LineForm1.cpt 。 2.2 添加填报成功事件在 FineReport 设计器中,点击模板>模板Web属性>填报页面设置,在「事件设置」下添加一个填报成功事件,如下图所示: JS 代码如下所示: - function encode(s) //对符号进行转义
- {
- s=s.replace(/</g,'<');
- s=s.replace(/>/g,'>');
- s=s.replace(/"/g,'"');
- return s;
- }
- var v=false;
- var content='';
- content+='<html><body>以下产品发生了中止:<br /><br /><table cellspacing="0" border="1">';
- var row=0;
- content+='<tr><th>产品名称</th><th>供应商</th><th>类别</th><th>成本价</th><th>单价</th><th>库存量</th><th>订购量</th><th>再订购量</th></tr>';
- $('td[id^="K"]').each(function(i,e){
- if($(e).attr('cv')=='true' || $(e).attr('cv')=='真' )
- {
- v=true;//只要出现了中止,就令v为true,这样之后一定会发送邮件
- row=$(e).attr('row');
- content+='<tr><td>'+$('.x-table td[col=2][row='+row+']').text()+'</td>';//添加该行第3列内容
- content+='<td>'+$('.x-table td[col=3][row='+row+']').text()+'</td>';//添加该行第4列内容
- content+='<td>'+$('.x-table td[col=4][row='+row+']').text()+'</td>';//添加该行第5列内容+
- content+='<td>'+$('.x-table td[col=5][row='+row+']').text()+'</td>';//添加该行第6列内容
- content+='<td>'+$('.x-table td[col=6][row='+row+']').text()+'</td>';//添加该行第7列内容
- content+='<td>'+$('.x-table td[col=7][row='+row+']').text()+'</td>';//添加该行第8列内容
- content+='<td>'+$('.x-table td[col=8][row='+row+']').text()+'</td>';//添加该行第9列内容
- content+='<td>'+$('.x-table td[col=9][row='+row+']').text()+'</tr>';//添加该行第10列内容
- }
- });
- content+='</table></body></html>';
- //如果选择了中止,就发送邮件
- if(v){
- FR.sentMail({xmlconf:"<?xml version=\"1.0\" encoding=\"UTF-8\"?><R xmlVersion=\"20151125\" releaseVersion=\"8.0.0\" class=\"com.fr.js.EmailJavaScript\"><Parameters/><EmailJS mailTo=\"min.chen@fanruan.com\" cc=\"\" bcc=\"\" title=\"邮件标题\" mainText=\""+encode(content)+"\" showTplContent=\"True\"/><\/R>"})
-
- }
复制代码
其中,发送邮件里面的参数有几个需要在实际实用中修改,如下表所示: 参数 | 描述 | mailTo | 收件人邮箱地址,可以是多个 | cc | 抄送邮箱地址 | bcc | 密件抄送邮箱地址 | tittle | 邮件主题 | mainText | 邮件主要内容 | showTplContent | 是否显示报表内容 |
注:发送邮件需要设置发件人账户,请参考 邮箱 。 2.3 效果预览保存模板,点击填报预览,效果如本文 1.2 章「预期效果」相同。 注:该方法不支持移动端。
编辑于 2020-12-4 09:47
|