泛微OA_E9之获取流程每日、每月提交次数


1、描述及效果

1.1 描述

根据实际需求,以相应字段做为条件,获取每日、每月流程提交次数。

下面以申请人、申请日期字段为例,限制每日、每月只能提交一次流程。

1.2 效果

1.2.1 同一申请人,每日只能提交一次流程,弹出提示

示例图1-1:
在这里插入图片描述

1.2.2 同一申请人,每月只能提交一次流程,弹出提示

示例图1-2:
在这里插入图片描述


2、思路

获取流程提交次数,必须要有字段做为SQL语句查询条件。可以是申请人、部门、日期等,条件字段以实际需求来定。

通过SQL查询出来的次数,再写JS提示、不允许再次提交等控制。

3、步骤

3.1 设置字段属性SQL查询语句

3.1.1 每日提交次数

新建一个单行文本–整数字段:“提交次数”,用来存储。

选中“提交次数”字段中,在表单上方菜单栏中,选择“字段属性–字段属性”,如示例图3-1:
在这里插入图片描述
SQL代码:

SELECT  COUNT(*)  FROM formtable_main_68 where sqr = '$main.sqrq$' and sqrq = '$main.sqrq$' and (select DATEPART(DD,GETDATE())) = DATEPART(dd,sqrq)

SQL代码说明:

SELECT COUNT(*) FROM 数据库表名 where 数字库字段名称 = 表单字段 and 数字库字段名称 = 表单字段 and (select DATEPART(DD,GETDATE())) = DATEPART(dd,数字库字段名称)

如示例图3-2:
在这里插入图片描述

3.1.2 每月提交次数

获取每月提交次数,与每日是一致的操作,只需要将SQL后面的“dd”改成为“mm”就行。

SQL代码:

SELECT  COUNT(*)  FROM formtable_main_68 where sqr = '$main.sqrq$' and sqrq = '$main.sqrq$' and (select DATEPART(DD,GETDATE())) = DATEPART(mm,sqrq)

3.2 本次使用E9流程表单前端接口API介绍

具体《E9流程表单前端接口API》详情,请参考泛微官方文献,本篇只介绍需要用到的API。

3.2.1 表单提交操作执行前,执行自定义逻辑并阻断/放行后续操作

动作类型说明
WfForm.OPER_SUBMIT提交/批准/提交需反馈/不需反馈等

接口名称及参数说明:

registerCheckEvent:function(type,fun)

样例:

$().ready(function(){
	WfForm.registerCheckEvent(WfForm.OPER_SUBMIT,function(callback){
    	//... 执行自定义逻辑
        callback();
    });
});

3.2.2 获取单个字段值

getFieldValue: function(fieldMark)

参数说明

参数参数类型必须说明
fieldMarkString字段标示,格式 field${字段ID}

样例:

var fieldvalue = WfForm.getFieldValue("field110");

3.2.3 系统样式的Confirm确认框

说明:兼容移动端,可自定义确认内容及按钮名称

showConfirm: function(content, okEvent, cancelEvent, otherInfo={})

参数说明

参数参数类型必须说明
contentString确认信息
okEventFunction点击确认事件
cancelEventFunction点击取消事件
otherInfoObject自定义信息(按钮名称)

样例:

WfForm.showConfirm("确认删除吗?", function(){
    alert("删除成功"); 
});

WfForm.showConfirm("请问你是否需要技术协助?",function(){
    alert("点击确认调用的事件");
},function(){
    alert("点击取消调用的事件");
},{
    title:"信息确认",       //弹确认框的title,仅PC端有效
    okText:"需要",          //自定义确认按钮名称
    cancelText:"不需要"     //自定义取消按钮名称
});

3.3 上代码

WfForm.registerCheckEvent(WfForm.OPER_SUBMIT,function(callback){
	var fieldvalue = WfForm.getFieldValue("field36021");
    if(fieldvalue >= '1'){
      WfForm.showConfirm("当日已提交一次本流程,请于明天再来提交,谢谢!", function(){});
    }else{
      callback(); //继续提交需调用callback,不调用代表阻断
    }
});
说明:每日、每月的代码都是一样的,提示文字内容修改一下即可。如需区分,可以再新建一个字段,用于区分每日、每月的提交次数。

4、总结

各位,好久不见,抱拳!

距离上一次更新半年有余了,这期间发生了一些事情,让我没办法沉下心来。

还好,一切都会过去的,是吗?

再会!

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DarsonYao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值