点晴MIS内部交流论坛 加入收藏
新手上路
论坛搜索
 您的位置:点晴MIS系统问题答疑『 工作流使用交流 』浏览当前帖子  
登 陆注 册论坛帮助  

  网站搜索
  搜索范围: 搜索方式: 关键词(可用空格分开)  

  作者及文章信息: 本文热度:14262 % 
admin

积分:74793
等级:网站管理员
文数:13697
注册:2004-7-20

 信息   留言   主页   编辑   引用    

楼 顶 

 工作流中如何实现求和、条件跳转、数字自动转为大写、多个下拉控件之间的联动等各类效果?


特别说明:本教程是旧版工作流教程,新版工作流无须这么麻烦,可以直接设置,无须用户接触到Javascript,以下例子仅供开拓思路参考。当然,新版工作流中仍然支持以下实现方法。

:工作流中如何实现求和、条件跳转、数字自动转为大写、多个下拉控件之间的联动等各类效果?
 
 
:点晴OA的工作流模块支持javascript脚本,可以利用javascript脚本实现各类特定效果。
 
1、求和
以上面两个需要求和的为例说明(代码附件:表单代码.txt 直接预览),在设计表单的时候,注意应该将合计中的那两个控件设置为只读、以防止用户自己更改合计值,方法是在源码模式下的对应控件中加入: readonly="readonly",先在源码模式下找到需要求和的控件id,然后在加入:
<input type="text" style="width:56px;height:21px;" id="CS21" title="CS001" name="CS21" maxlength="255" size="7" onchange="if(!isnumeric(this.value,3)){this.value=0};if(this.value==''){this.value=0;};" />
加入后效果:
<input type="text" style="width:56px;height:21px;" id="CS21" title="CS001" name="CS21" maxlength="255" size="7" onchange="if(!isnumeric(this.value,3)){this.value=0};if(this.value==''){this.value=0;};" readonly="readonly" />
然后找到需要将合计值计入以上控件的各个控件,在“表体JS脚本”中编写相应的js脚本函数:
//自动计算单据张数合计
function sub_danju(){
document.getElementById('CS21').value=(document.getElementById('CS10').value)-(-document.getElementById('CS11').value)-(-document.getElementById('CS12').value)-(-document.getElementById('CS13').value)-(-document.getElementById('CS14').value)-(-document.getElementById('CS15').value)-(-document.getElementById('CS16').value)
}
//自动计算合计金额
function sub_fee(){
document.getElementById('CS30').value=(document.getElementById('CS22').value)-(-document.getElementById('CS23').value)-(-document.getElementById('CS24').value)-(-document.getElementById('CS25').value)-(-document.getElementById('CS26').value)-(-document.getElementById('CS27').value)-(-document.getElementById('CS28').value)-(-document.getElementById('CS29').value)
}
//自动计算出差津贴,按每天50元计算
function sub_jintie(){
document.getElementById('CS29').value=document.getElementById('CS20').value*50;
sub_fee();
}
如果提交前还需要对报销总金额进行一下判断,那么可以在“提交前JS脚本”中添加判断js脚本:
if(document.getElementById('CS30').value-0>10000){alert('报销金额禁止大于10000元!');return false;}
 
完成上面的js脚本编写后,需要在相应录入数据的控件中增加onkeyup或onchange事件来触发上面的函数(onkeyup:每一次键盘按键弹起立即生效、onchange:光标离开控件并且数据发生变化时才生效),实现自动求和效果:
a、在天数录入控件(共([ ])天)的onkeyup或onchange事件中增加 sub_jintie() 函数,实现自动计算出差津贴:
<input type="text" style="width:52px;height:21px;" id="CS20" title="CS001" name="CS20" maxlength="255" size="6" onchange="if(!isnumeric(this.value,1)){this.value=0};if(this.value==''){this.value=0;};sub_jintie();" />
 
b、在单据张数相关控件的onkeyup或onchange事件中增加 sub_danju() 函数,实现自动计算单据张数合计值:
<input type="text" style="width:114px;height:21px;" id="CS10" title="CS001" name="CS10" maxlength="255" size="14" onchange="if(!isnumeric(this.value,1)){this.value=0};if(this.value==''){this.value=0;};sub_danju();" />
<input type="text" style="width:114px;height:21px;" id="CS11" title="CS001" name="CS11" maxlength="255" size="14" onchange="if(!isnumeric(this.value,1)){this.value=0};if(this.value==''){this.value=0;};sub_danju();" />
<input type="text" style="width:114px;height:21px;" id="CS12" title="CS001" name="CS12" maxlength="255" size="14" onchange="if(!isnumeric(this.value,1)){this.value=0};if(this.value==''){this.value=0;};sub_danju();" />
<input type="text" style="width:114px;height:21px;" id="CS13" title="CS001" name="CS13" maxlength="255" size="14" onchange="if(!isnumeric(this.value,1)){this.value=0};if(this.value==''){this.value=0;};sub_danju();" />
<input type="text" style="width:114px;height:21px;" id="CS14" title="CS001" name="CS14" maxlength="255" size="14" onchange="if(!isnumeric(this.value,1)){this.value=0};if(this.value==''){this.value=0;};sub_danju();" />
<input type="text" style="width:114px;height:21px;" id="CS15" title="CS001" name="CS15" maxlength="255" size="14" onchange="if(!isnumeric(this.value,1)){this.value=0};if(this.value==''){this.value=0;};sub_danju();" />
<input type="text" style="width:114px;height:21px;" id="CS16" title="CS001" name="CS16" maxlength="255" size="14" onchange="if(!isnumeric(this.value,1)){this.value=0};if(this.value==''){this.value=0;};sub_danju();" />
 
c、在单据张数相关控件的onkeyup或onchange事件中增加 sub_fee() 函数,实现自动计算单据张数合计值:
<input type="text" style="width:114px;height:21px;" id="CS22" title="CS001" name="CS22" maxlength="255" size="14" onchange="if(!isnumeric(this.value,1)){this.value=0};if(this.value==''){this.value=0;};sub_fee();" />
<input type="text" style="width:114px;height:21px;" id="CS23" title="CS001" name="CS23" maxlength="255" size="14" onchange="if(!isnumeric(this.value,1)){this.value=0};if(this.value==''){this.value=0;};sub_fee();" />
<input type="text" style="width:114px;height:21px;" id="CS24" title="CS001" name="CS24" maxlength="255" size="14" onchange="if(!isnumeric(this.value,1)){this.value=0};if(this.value==''){this.value=0;};sub_fee();" />
<input type="text" style="width:114px;height:21px;" id="CS25" title="CS001" name="CS25" maxlength="255" size="14" onchange="if(!isnumeric(this.value,1)){this.value=0};if(this.value==''){this.value=0;};sub_fee();" />
<input type="text" style="width:114px;height:21px;" id="CS26" title="CS001" name="CS26" maxlength="255" size="14" onchange="if(!isnumeric(this.value,1)){this.value=0};if(this.value==''){this.value=0;};sub_fee();" />
<input type="text" style="width:114px;height:21px;" id="CS27" title="CS001" name="CS27" maxlength="255" size="14" onchange="if(!isnumeric(this.value,1)){this.value=0};if(this.value==''){this.value=0;};sub_fee();" />
<input type="text" style="width:114px;height:21px;" id="CS28" title="CS001" name="CS28" maxlength="255" size="14" onchange="if(!isnumeric(this.value,1)){this.value=0};if(this.value==''){this.value=0;};sub_fee();" />
<input type="text" style="width:114px;height:21px;" id="CS29" title="CS001" name="CS29" maxlength="255" size="14" onchange="if(!isnumeric(this.value,1)){this.value=0};if(this.value==''){this.value=0;};sub_fee();" />
通过以上的设置后,这个表单就可以实现多个单元格的不同合计效果了。

该文章在 2018/11/21 15:13:08 编辑过

  离 线  2015-2-25 21:18:19 

admin

积分:74793
等级:网站管理员
文数:13697
注册:2004-7-20

 信息   留言   主页   编辑   引用

A9楼 
 


2、条件判断、自动跳转效果实现方法
点晴OA工作流如何实现串行审核、并行会审、并行单审和条件跳转审核的流程?[31575]
  http://8559.cn22.net

3、一、二级菜单联动效果实现
方法1:将第一级控件作为第二级控件的自定义SQL查询条件;
方法2:更简单的方法,直接将第一级和第二级做到同一个数据源中即可,用户只需要一次点击就可以自动填充一级和二级控件,一个数据源就搞定了。
一级    二级
笔       铅笔
笔      钢笔
书      无皮本
书      有皮本

相关教程:
工作流数据来源设置及自定义SQL格式说明,实现用户查询调用
   http://8368.cn22.net

该文章在 2016/1/12 17:01:26 编辑过

  离 线  2015-2-26 23:34:31 
  本文章共有 1 页, 1 张回文,每页有 10 张回文 >> [ 1 ]
页码:  

Copyright 2003-2024 ClickSun All Rights Reserved