泛微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时,禁止发起人提交流程

](/https://i-blog.csdnimg.cn/blog_migrate/b1e68d8e2ce955fb7a47a809007aa628.png)
以上就是个人的工作方法总结,如果你有其他更好的方法或者文章有啥问题欢迎大家留言!!ヾ(◍°∇°◍)ノ゙
祝大家工作顺利,加了个油!!!
本文介绍了如何在泛微OA.E9系统中限制用户每月发起特定流程的次数。通过创建字段存储发起次数和月份信息,使用JavaScript获取当前年月,并通过SQL查询统计当月发起次数,最后在节点字段校验中禁止超过限制的提交。这种方法确保每个用户每月只能发起补卡申请流程两次。

222

被折叠的 条评论
为什么被折叠?



