蓝凌表单的表体调用Javascript
应用场景:像请假类表单会在从表输入开始时间、结束时间等字段
需求1:客户希望根据开始、结束时间自动计算小时数
解决方法:
1、主表单增加一行,设三个字段[开始时间合计]、[结束时间合计]、[开始结束时间计算结果]
在[开始结束时间计算结果]触发脚本calTime()。
--计算时间段函数:calTime() --代码如下: var B=0; var E=0; var RowNum=document.all.edittable_OverTimeApplyDetail_tData.rows.length; for(var i=0;i<RowNum;i++) { if(document.all.edittable_OverTimeApplyDetail_tData.rows(i).display=='none') {continue;} var j1="BeginTime_"+(i+1); var obj1=document.getElementById(j1); var j2="EndTime_"+(i+1); var obj2=document.getElementById(j2); var j3="Amount_"+(i+1); var obj3=document.getElementById(j3); if(obj1.value==null || obj1.value=='' || obj2.value==null || obj2.value==''){break;} else { //取开始时间 if(((obj1.value).substring(3,5))=='30') {if(parseInt((obj1.value).substring(0,1))==0){B=parseInt((obj1.value).substring(1,2))+0.5;} else{B=parseInt((obj1.value).substring(0,2))+0.5;} } else {if(parseInt((obj1.value).substring(0,1))==0){B=parseInt((obj1.value).substring(1,2));} else{B=parseInt((obj1.value).substring(0,2));} } //取结束时间 if(((obj2.value).substring(3,5))=='30') {if(parseInt((obj2.value).substring(0,1))==0){E=parseInt((obj2.value).substring(1,2))+0.5;} else{E=parseInt((obj2.value).substring(0,2))+0.5;} } else {if(parseInt((obj2.value).substring(0,1))==0){E=parseInt((obj2.value).substring(1,2));} else{E=parseInt((obj2.value).substring(0,2));} } if((E-B)>0){document.getElementById(j3).value=E-B;} else {alert('结束时间不能小于开始时间!');} } }
2.假设新增的这行是第3行,隐藏该行
var divObj=document.getElementById('divMainForm'); if(divObj) {var tr=divObj.getElementsByTagName('tr'); if(tr) { tr[2].style.display='none'; } }
其他代码:
----检查从表中输入的时间(取数据字典)值是合法格式 var RowNum=document.all.edittable_请假明细_tData.rows.length; for(var i=0;i<RowNum;i++) { if(document.all.edittable_请假明细_tData.rows(i).display=='none') {continue;} var j1="开始时间_"+(i+1); var obj1=document.getElementById(j1); var j2="截止时间_"+(i+1); var obj2=document.getElementById(j2); if(obj1.value==null || obj1.value=='' || obj2.value==null || obj2.value==''){break;} else { //取开始时间 if(obj1.value.substring(2,3)!=":"|| obj1.value.length!=5 ) {alert("您输入的时间格式不符,请重新输入!"); obj1.value=""; } //取结束时间 if(obj2.value.substring(2,3)!=":"|| obj2.value.length!=5 ) {alert("您输入的时间格式不符,请重新输入!"); obj2.value=""; } } }
总结:由于表单先加载表头、this_formscript()函数,最后才是表体。故无法在this_formscript控制表体。
分类:
其他:OA(蓝凌EIS)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)