首页 > 其他分享 >泛微OA同一天内小时计算

泛微OA同一天内小时计算

时间:2024-07-10 16:25:52浏览次数:18  
标签:同一天 rowIndex OA parseInt parts 计算 WfForm var 泛微

大家好,我是秃头程序员,今天带来一篇E9时间计算实战需求

需求是:同一日期内,计算时间相差多少个小时

首先先上代码 再来一步步解析

<script>

 WfForm.bindDetailFieldChangeEvent("field128860,field128861,field128863",function(id,rowIndex,value){//明细字段值变化触发事件,监控时间字段的值进行下面的触发

        var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");//获取明细行行数

        for(var i=0; i<rowArr.length; i++){//便利明细行

            var kssj = WfForm.getFieldValue("field128861_"+rowIndex);//获取开始时间的值

            var jsjj = WfForm.getFieldValue("field128863_"+rowIndex);//获取结束时间的值

            var xiaoshishu=calculateTime(kssj,jsjj);//调用构造方法,进行小时计算

            var mxxs=(String(xiaoshishu));

            var krjb=String(parseInt(mxxs)+24)

            if(kssj<=jsjj){//判断下开始时间是不是小于或等于结束时间 比如08:15,17:15 计算值为9小时

              WfForm.changeFieldValue("field128864_"+rowIndex, {value: mxxs});//赋值给小时字段

            }else{//如果开始时间是不是大于结束时间的,比如18:15,05:15,差值计算为负数,需要正值,则加一个24,因是同一天计算,不影响计算值的,计算值为9小时

              WfForm.changeFieldValue("field128864_"+rowIndex, {value: krjb});//赋值给小时字段

            }

          }

    });

function calculateTime(time1,time2){//构造方法,计算相差小时数

  var parts = time1.split(':');

  var hours1 = parseInt(parts[0], 10);

  var minutes1 = parseInt(parts[1], 10);

  parts = time2.split(':');

  var hours2 = parseInt(parts[0], 10);

  var minutes2 = parseInt(parts[1], 10);

  var hours = hours2 - hours1;

  var minutes = minutes2 - minutes1;

  if (minutes < 0) {

      minutes += 60;

      hours -= 1;

  }

  return hours;

}

</script>

一、构造一个时间计算函数方法,也就是calculateTime这个方法,传参的time1,time2就是我们要传的日期时间,因为泛微时间字段获取的格式是24HH,比如说17:15,08:11,所以我们需要对时间进行拆分分别计算。

二、明细字段值变化触发事件,也就是bindDetailFieldChangeEvent这个全局对象方法的应用,当值变化时,进行小数数的实时计算。

如果你会明细表的了,举一反三推出主表的表单字段值变化触发事件,用bindFieldChangeEvent这个全局对象方法,比明细表的方便快捷,不需要去遍历明细表。

以上是项目心得,这里面还能嵌入一些其他需求,欢迎大家讨论~

标签:同一天,rowIndex,OA,parseInt,parts,计算,WfForm,var,泛微
From: https://blog.csdn.net/qq_41372422/article/details/140327093

相关文章

  • 【基于R语言群体遗传学】-15-溯祖理论coalescence
    在群体遗传学中,一个非常重要的概念是关注谱系的汇聚(遗传线索的汇合),当我们回溯过去几代人口时。在之前的博客中,我们几乎只处理了随时间推移基因变化的“正向”模拟。群体遗传学_tRNA做科研的博客-CSDN博客然而,通过时间逆向建模等位基因频率变化不仅是一个有趣的视角,当你知道......
  • 泛微OA E9前端开发常用函数及方法
    1、获取单个字段值//获取主表值varfieldvalue=WfForm.getFieldValue("field110");//获取明细表:字段_+行号(从0开始算)varfield19112Value=WfForm.getFieldValue("field19112_"+rowIndex);2、修改单个字段值//主表:修改文本框、多行文本、选择框等字段类型WfForm.changeF......
  • [0033]基于JAVA的OA办公智慧管理系统的设计与实现
    毕业设计(论文)开题报告表姓名学院专业班级题目基于JAVA的OA办公智慧管理系统的设计与实现指导老师(一)选题的背景和意义随着社会的发展,越来越多的企业开始使用办公自动化系统来提高工作效率,减少人力成本,增强协同工作的能力。但是现有的办公自动化系统......
  • day03-loadbalancer
    1概述LoadBalancer:被包含于springcloudcommons下用来替换以前的ribbon组件,一个客户端负载均衡器。不仅支持RestTemplate,还支持WebClient(SpringWebFlux中提供的功能,可以实现响应式异步请求)。客户端负载均衡和服务端负载均衡有什么区别服务端负载均衡:负载均衡在服务器上......
  • 免费下载工具 -- Free Download Manager(FDM) v6.24.0.5818
    软件简介FreeDownloadManager (FDM) 是一款免费的功能强大的下载管理软件,适用于多种操作系统,包括Windows、macOS、Android和Linux。这款软件的特色在于它快速、安全且高效的下载能力。它可以下载各种热门网站的影片,支持HTTP/HTTPS/FTP/BT协议,并且能处理山洪和磁力......
  • 泛微E9开发 控制日期浏览按钮的可选日期范围
    控制日期浏览按钮的可选日期范围1、需求说明2、实现方法3、扩展知识点控制日期浏览按钮的可选日期范围格式参数说明演示1、需求说明控制日期浏览按钮的可选日期范围为2024/07/01~2024/07/31,如下图所示2.控制日期浏览按钮的可选日期范围在当前时间的前一周~当前......
  • 【TCN-BiGRU-Attention回归预测】基于斑马优化算法ZOA优化时间卷积双向门控循环单元融
        ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......
  • 转-OAuth2.0 原理流程及其单点登录和权限控制
    原文链接单点登录是多域名企业站点流行的登录方式。本文以现实生活场景辅助理解,力争彻底理清OAuth2.0实现单点登录的原理流程。同时总结了权限控制的实现方案,及其在微服务架构中的应用。1什么是单点登录1.1多点登录传统的多点登录系统中,每个站点都实现了本站专用的帐号数......
  • 转-OAuth2.0 原理流程及其单点登录和权限控制
    原文链接单点登录是多域名企业站点流行的登录方式。本文以现实生活场景辅助理解,力争彻底理清OAuth2.0实现单点登录的原理流程。同时总结了权限控制的实现方案,及其在微服务架构中的应用。1什么是单点登录1.1多点登录传统的多点登录系统中,每个站点都实现了本站专用的帐号数......
  • 转-OAuth2.0 原理流程及其单点登录和权限控制
    原文链接单点登录是多域名企业站点流行的登录方式。本文以现实生活场景辅助理解,力争彻底理清OAuth2.0实现单点登录的原理流程。同时总结了权限控制的实现方案,及其在微服务架构中的应用。1什么是单点登录1.1多点登录传统的多点登录系统中,每个站点都实现了本站专用的帐号数......