找回密码
 注册成为天翎用户
查看: 842|回复: 7

[已解决] 自动计数项

[复制链接]
jqfang 发表于 2015-9-1 07:30:56 | 显示全部楼层 |阅读模式
本帖最后由 shary 于 2015-10-9 11:00 编辑

在请假表单中,要建一项纪录该用户的假期小时数。 例如Jack一年有120小时假期,登录后打开请假表单时会看到该项为120小时, 如果请假5天,提交表单,批准后,就会减掉40小时,下次打开请假表单后就看到80小时。请问怎样实现? 谢谢
danny 发表于 2015-9-1 10:41:21 | 显示全部楼层
你好,可以提供一下QQ吗?方便咨询
回复

使用道具 举报

danny 发表于 2015-9-1 14:13:16 | 显示全部楼层
本帖最后由 shary 于 2015-9-30 14:59 编辑

你好,根据您的需求可以参考以下代码:
var doc = getCurrentDocument();
var user = doc.getItemValueAsString("请假人");
var time = doc.getItemValueAsDouble("剩余补休时间");
var time1 = 0;
var time2 = 0;
if (!time) {
        var domainid = getDomainid();
        var sql1 = "select '"+domainid+"' as domainid,'A01' as id, sum(item_总小时数) as item_总小时数 from tlk_加班申请 where item_申请人='" + user + "' and istmp=0 and statelabel in ('完成')";
        var data1 = findBySQL(sql1);
        time1 = data1.getItemValueAsDouble("总小时数");

        var sql2 = "select '"+domainid+"' as domainid,'A02' as id,sum(item_请假总时间) as item_请假总时间 from tlk_请假申请单 where item_请假人='" + user + "' and item_假别='补休' and istmp=0";
        var data2 = findBySQL(sql2);
        time2 = data2.getItemValueAsDouble("请假总时间");
        if (time1 >= time2) time = time1 - time2;
        else time = "-" + (time2 - time1);
        time = Math.round(time * Math.pow(10, 1)) / Math.pow(10, 1);
}
time;
回复

使用道具 举报

 楼主| jqfang 发表于 2015-9-9 12:06:23 | 显示全部楼层
这是我的QQ: 1034776175, 请大侠加下我,有很多请教!
回复

使用道具 举报

 楼主| jqfang 发表于 2015-9-9 12:29:57 | 显示全部楼层
要求是:有一自定义field2在后台可以输入每年的起始总带薪假期时数。 在表单上有一只读项年总带薪假期时数 (tv_hours), 还有一项每次请假的时数(timeoff_hours), 开始没请假时,tv_hours = field2 , 请假后,tv_hours - timeoff_hours, 直到tv_hours 等于0就不能请带薪假。
回复

使用道具 举报

danny 发表于 2015-9-9 14:36:10 | 显示全部楼层
您好! 根据您的需求,帮您写了两段代码,一段是计算剩余请假时间的,可在您表单中这个字段的值脚本中加入该代码//剩余请假时间计算
var doc = getCurrentDocument();
var user = getWebUser();
var userid = user.getId();
var totaltime =getItemValueAsDouble("field字段值");//如果是天数,可转换为小时
var totalqjtime=0;
var time =0;
var domainid = getDomainid();
var sql2 = "select '"+domainid+"' as domainid,sum(item_请假总时间) as item_请假总时间 from tlk_请假申请单 where item_请假人='" + userid + "' and docid<>'"+getId()+"'";
var data2 = findBySQL(sql2);
if(data2 !=null){
        totalqjtime = data2.getItemValueAsDouble("请假总时间");
}
time = totaltime - totalqjtime; //剩余可请假时间

time;



另给出了一个校验脚本,该校验脚本根据总的时间与剩余时间字段与当前填入的请假时间,进行是否超出总的时间的判断,代码如下:var doc = getCurrentDocument();
var totaltime =getItemValueAsDouble("field字段值");//如果是天数,可转换为小时
var thistime = doc.getItemValueAsDouble("此次请假小时数");//表单中输入的请假小时
var rtn="";
if(thistime >0 ){
        var shengyutime = doc.getItemValueAsDouble("剩余时间字段");
        if(totaltime < thistime + shengyutime){
                rtn ="您带薪假期已使用完毕!!!";
        }       
}
rtn;
回复

使用道具 举报

lana 发表于 2015-9-30 11:27:56 | 显示全部楼层
请客户跟进帖子告知自动计数项的问题的解决进度。谢谢!
回复

使用道具 举报

shary 发表于 2015-10-9 11:00:14 | 显示全部楼层
Q上跟客户沟通该问题暂时没问题。如有问题再沟通。同事提供的解决方案是可行的。
回复

使用道具 举报

本版积分规则

手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-14 15:15

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表