以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]考勤计算 剩余假期  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=140583)

--  作者:xunxun0903
--  发布时间:2019/9/9 14:00:00
--  [求助]考勤计算 剩余假期
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:考勤.table

dear 大神们;
在搞人事系统与现OA系统结合,我想通过OA申请的请假、加班流程 计算统计出剩余假期。例子已上传附件 
问题:
1,在计算时我这样代码是不是还可精简?后期数据量大了不知道能不能用。
2,因为是读取的OA数据,必须每次加载所有数据 是不是可以不加载数据直接后台统计?
3,有没有别的好方法我可以实现我的效果?

以上,谢谢!

剩余假期表 
员工编号,可调休,年假,产假,婚假,产检假,陪产假,丧家(这些字段不能为表达式,因为要给OA系统在请假的时候调用)

DataColChanged 代码如下:

If e.DataCol.Name = "员工编号"
e.DataRow("加班已归档") = DataTables("OA考勤信息").Compute("Sum(时数)","OA状态 = \'1\' and 类型 = \'JB\' and 加班兑换 = \'调休\' and 员工编号 = \'" & e.NewValue & "\'")
e.DataRow("请假_调休已归档") = DataTables("OA考勤信息").Compute("Sum(时数)","OA状态 = \'1\' and 类型 = \'Qj\' and 请假类型  = \'调休\' and 员工编号  = \'" & e.NewValue & "\'")
e.DataRow("请假_调休未归档") = DataTables("OA考勤信息").Compute("Sum(时数)","OA状态 = \'0\' and 类型 = \'Qj\' and 请假类型  = \'调休\' and 员工编号  = \'" & e.NewValue & "\'")
e.DataRow("请假_年假已归档") = DataTables("OA考勤信息").Compute("Sum(时数)","OA状态 = \'1\' and 类型 = \'Qj\' and 请假类型  = \'年假\' and 员工编号  = \'" & e.NewValue & "\'")
e.DataRow("请假_年假未归档") = DataTables("OA考勤信息").Compute("Sum(时数)","OA状态 = \'0\' and 类型 = \'Qj\' and 请假类型  = \'年假\' and 员工编号  = \'" & e.NewValue & "\'")

End If

e.DataRow("可调休") = e.DataRow("加班已归档") - e.DataRow("请假_调休已归档") -e.DataRow("请假_调休未归档")
e.DataRow("年假") = DataTables("考勤信息").Compute("Sum(时数)","类型 = \'增加年假\'") - e.DataRow("请假_年假已归档") -e.DataRow("请假_年假未归档")
婚假、产假类假。。。

OA考勤信息(OA系统的流程单据)

考勤信息(增加 年假,产假记录表)


--  作者:有点蓝
--  发布时间:2019/9/9 14:06:00
--  
无法精简,反而还要再加一些代码,仔细看看:http://www.foxtable.com/webhelp/topics/1522.htm

或者可以考虑使用统计表,可以直接统计后台数据,得出统计结果:http://www.foxtable.com/webhelp/topics/2305.htm,有需要再把结果填入汇总表