天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

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

求助

[复制链接]
fengzhong 发表于 2011-12-19 14:35:28 | 显示全部楼层 |阅读模式
本帖最后由 shary 于 2011-12-22 09:40 编辑

“剩余可报金额”里面的脚本为
var doc=getCurrentDocument();
var sql="select top 1 item_剩余可报金额,id,domainid from  tlk_reimbursement_detail order by lastmodified desc";
var rs = queryBySQL(sql);
var bmoney = 0;
var money = 0;
money=doc.getItemValueAsString("amount");//本条记录的金额数

if(rs != null && rs.size() > 0) {
for (var iter = rs.iterator(); iter.hasNext();) {               
             var sdoc= iter.next();
                bmoney=sdoc.getItemValueAsString("剩余可报金额");//获取最后一条记录数
break
    }
}
bmoney = bmoney - money;
每次填写保存后,“剩余可报金额”都减少了2倍的 “金额”里面的值。例如本来“剩余可报金额”为100,填写了一张报销单“金额”为20,但是点击保存后,数据库里面“剩余可保金额”会变成60,怎么可以解决这个问题。让它减一次
shary 发表于 2011-12-19 14:43:39 | 显示全部楼层
您好,不是很清楚您的意思。请问这段脚本是在剩余可报金额的值脚本中写的吗?同时您确认下其他的地方是否对这个字段有一些业务逻辑。
var doc=getCurrentDocument();
var sql="select top 1 item_剩余可报金额,id,domainid from  tlk_reimbursement_detail order by lastmodified desc";
var rs = queryBySQL(sql);
var bmoney = 0;
var money = 0;
var t=0;
money=doc.getItemValueAsString("amount");//本条记录的金额数

if(rs != null && rs.size() > 0) {
for (var iter = rs.iterator(); iter.hasNext();) {               
             var sdoc= iter.next();
                bmoney=sdoc.getItemValueAsString("剩余可报金额");//获取最后一条记录数
break
    }
}
t=bmoney - money;
t;
同时在前台看下字段值显示是否正确
 楼主| fengzhong 发表于 2011-12-19 14:59:30 | 显示全部楼层
回复 2# shary


    是在“剩余可报金额”值脚本里面的,其他地方没有对“剩余可报金额”进行操作。情况就是本来“剩余可保金额”里面的值是100我在“金额”里面填写了20,“剩余可报金额”里面变成80,看着很正常,然后我点击保存,数据库中“剩余可报金额”保存的是60,
shary 发表于 2011-12-19 15:21:44 | 显示全部楼层
如果是这样的话您把您对剩余可报金额字段的更新放在保存动作执行前脚本中。
var doc=getCurrentDocument();
var sql="select top 1 item_剩余可报金额,id,domainid from  tlk_reimbursement_detail order by lastmodified desc";
var rs = queryBySQL(sql);
var bmoney = 0;
var money = 0;
var t=0;
money=doc.getItemValueAsString("amount");//本条记录的金额数

if(rs != null && rs.size() > 0) {
for (var iter = rs.iterator(); iter.hasNext();) {               
             var sdoc= iter.next();
                bmoney=sdoc.getItemValueAsString("剩余可报金额");//获取最后一条记录数
break
    }
}
t=bmoney - money;
doc.findItem("剩余可报金额").setValue(t);
 楼主| fengzhong 发表于 2011-12-19 15:40:50 | 显示全部楼层
回复 4# shary


    这段代码的那些需要放在,保存的动作执行前脚本里面,那些放在“剩余可报金额”值脚本里面。如果如果“金额”不选中‘刷新’“剩余可保金额”不选中 ‘重计算’,页面“剩余可报金额”里面的值不会做改变,但是保存后数据库的值就会减一次,这个时候数据库保存的值就是正确的。
 楼主| fengzhong 发表于 2011-12-19 15:46:22 | 显示全部楼层
回复 4# shary


    可不可以在保存里面 ,写个什么脚本让它只保存页面上的值,不在进行脚本里面的操作
shary 发表于 2011-12-19 15:49:40 | 显示全部楼层
您好,不能在保存动作同时执行脚本
 楼主| fengzhong 发表于 2011-12-19 15:53:07 | 显示全部楼层
回复 7# shary


    到底怎么写,我保存里面什么脚本都没写
shary 发表于 2011-12-19 16:03:22 | 显示全部楼层
刚刚不是说了在保存动作执行前写吗?
 楼主| fengzhong 发表于 2011-12-19 16:10:27 | 显示全部楼层
回复 9# shary


    些什么,那些脚本都写到执行前脚本里面吗?“剩余可保金额”还写东西吗?我还要获得数据库的值啊

本版积分规则

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

GMT+8, 2026-8-12 18:54

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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