此案例提取自本华建筑
有限公司,感谢翁总分享。
应用场景
定时使用微信发送表格明细数据给相关人。
1.扫描测试
包括两个扫描,一个是表头,一个是表数据,示例瑞如下:
select
'工序'
,'产品'
,'计划数'
,'实际数'
select
工序1
,产品名称1
, 计划数量1
,实际数量1
from 工序表
脚本执行结果示例:
2.完善SQL模板
完整的模板如下,上面的表头表数据嵌入其中。
select
0 as id,
'esap' as app, --发给哪个应用
'@all' as touser, -- 发给那些人,@all是全部
'' as toparty,
'' as totag,
'mpnews' as msgtype,
'' as msgid,
'<style type="text/css">
table { border-collapse: collapse; margin: 0 auto; text-align: center; }
table td, table th { border: 1px solid #cad9ea; color: #666; height: 30px; }
table thead th { background-color: #CCE8EB; width: 100px; }
table tr:nth-child(odd) { background: #fff; }
table tr:nth-child(even) { background: #F5FAFA; }
</style>
详情如下:<br>
<table border="1" bgcolor="#669">' + replace((
----表头开始----th别名后的下划线依次加长
select
'工序' as th
,'产品' as th_
,'计划数' as th__
,'实际数' as th___
----表头结束----
for xml path('tr')) + (
----表体开始----td别名后的下划线依次加长
select
工序1 as td
,产品名称1 as td_
, 计划数量1 as td__
,实际数量1 as td___
from 工序表
----表头结束----
for xml path('tr')),'_','') + '</table>' as content, --内容,拼接了一大坨代码html
'工序进度提醒' as title, --这个是标题
'点击查看' as description, --这个是标题下面的描述
'' as url,
'433' as pic, --这个是封面图片,事先上传个图片,拿到图片id
'' as fh,
0 as safe
3.建立SQL模板
在esap/sql/sys/下建一个.get文件,里面定义wxtx.diy
模板
4.开启自定义提醒任务
登陆admin,在计划任务中新增esap xxxx
任务,类型微信提醒
,周期随意,配置.diy
后缀,启用,保存重启ESAP
效果
小结
-
使用for xml path构建table标签
-
利用微信的mpnews可以用html标签
-
采用ESAP自定义提醒
本文示例应用ESAP4.0.1+支持致。
2019-07-16