泛微OA.E9–01–限制发起人每个月发起流程的次数
功能描述:
现有一个流程叫补卡申请流程,每个人忘记打卡了都可以发起补卡申请流程进行补卡。but 每个人每个月只可以发起两次该流程,当每月发起流程超过2次时,提示“每个人每个月至多可以补卡两次”并且禁止提交该流程。
实现过程:
1. 创建字段
新建两个字段,一个用来存储这个月发起的次数,一个用来存当前发起申请的年月时间。年月的字段是为了sql语句查找本月发起的次数,因为在泛微e9里使用相关的函数数,比如getDate(),year()等函数会不生效,所以才出此下策。最后,把两个字段放到表单模板里。
2. js获取年月信息,并赋值给年月字段。年月信息的格式为:年-月-%(这里是为了做sql的模糊查询)
年月字段信息如图:
插入js代码块,内容如下:
<script>
var myDate = new Date();
var tYear = myDate.getFullYear();
var tMonth = myDate.getMonth();
var m = tMonth + 1;
if (m.toString().length == 1) {
m = "0" + m;
}
WfForm.changeFieldValue("field63990", {value:tYear+"-"+m+"-%"});
</script>
3. 使用sql语句统计当月发起流程的次数
对应sql语句如下:
select count(1) from formtable_main_187 where sqr= $main.sqr$ and sqrq like '$main.dqyf$
formtable_main_187为补卡流程对应的数据库表
sqr:数据库表里存放的申请人
$main.sqr$:当前发起的流程里的申请人
4. 通过本月的申请次数设置节点字段校验,当申请次数大于2时,禁止发起人提交流程
以上就是个人的工作方法总结,如果你有其他更好的方法或者文章有啥问题欢迎大家留言!!ヾ(◍°∇°◍)ノ゙
祝大家工作顺利,加了个油!!!