|
版本: |
X5.2.7 |
小版本号: |
|
|
|
数据库: |
Oracle |
服务器操作系统: |
Windows |
应用服务器: |
Tomcat |
客户端操作系统: |
Windows 7 |
浏览器: |
Chrome |
|
|
1.grid的html列是data的计算关系字段(模型没有),其它为模型中的字段。现在是需要对grid部分字段求和,前者只能取到当前行的数据,后者能够读取所有行的数据。
2.如下图:
设计器
效果说明:
上图中:grid中的要求和的是在dataDetail中,
“本行价税合计”是模型中的,基表字段,在grid中type是ro。
“金额”是非基表字段,为计算关系。 type=html
“税额”同“金额”
3.1 方法1代码:
mainActivity.dataDetailValueChanged = function(event){
。。。。。
//calcHeJiJe();
var sumBHS = justep.XData.sum('dataDetail', 'BUHANSHJ');
var dMaster = justep.xbl('dataMaster');
dMaster.setValue('HEJIJEBHS', sumBHS);
var sumS = justep.XData.sum('dataDetail', 'ZengZhiSHJ');
var dMaster = justep.xbl('dataMaster');
dMaster.setValue('ZENGZHISHJ', sumS);
var sumJE = justep.XData.sum('dataDetail', 'JINE');
var dMaster = justep.xbl('dataMaster');
dMaster.setValue('HEJIJE', sumJE);
3.2 方法2代码:
//计算合计金额
function calcHeJiJe(){
debugger;
for(var i=0;i<dataDetail.getCount();i++){
var cid = dataDetail.getID(i);
var jine0=dataDetail.getValue("ZengZhiSHJ",cid );
var jine1=dataDetail.getValue("BUHANSHJ",cid );
var jine2=dataDetail.getValue("JINE",cid );
var tmpjine0 = 0,tmpjine1 = 0,tmpjine2 = 0;
if(!!jine0 && !isNaN(jine0)){
tmpjine0 = parseFloat(jine0);
}
cnt0 = cnt0 + tmpjine0;
if(!!jine1 && !isNaN(jine1)){
tmpjine1 = parseFloat(jine1);
}
cnt1 = cnt1 + tmpjine1;
if(!!jine2 && !isNaN(jine2)){
tmpjine2 = parseFloat(jine2);
}
cnt2 = cnt2 + tmpjine2;
}
justep.xbl("dataMaster").setValue("ZENGZHISHJ",parseFloat(cnt0).toFixed(2));
justep.xbl("dataMaster").setValue("HEJIJEBHS",parseFloat(cnt1).toFixed(2));
justep.xbl("dataMaster").setValue("HEJIJE",parseFloat(cnt2).toFixed(2));
|
|