| 工作流中如何实现求和、条件跳转、数字自动转为大写、多个下拉控件之间的联动等各类效果?
					当前位置:点晴教程→点晴OA办公管理信息系统
					
					→『 工作流使用交流 』
					
				 
 特别说明:本教程是旧版工作流教程,新版工作流无须这么麻烦,可以直接设置,无须用户接触到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 编辑过 
 | 关键字查询 相关文章 正在查询... | ||||||