|
版本: |
|
小版本号: |
|
|
|
数据库: |
Oracle |
服务器操作系统: |
Windows |
应用服务器: |
Tomcat |
客户端操作系统: |
Windows 8 |
浏览器: |
Chrome |
|
|
版本BEX3.6
问题描述:表中有三个字段,单价 数量 合计 都是 decimal 类型的,单价 * 数量 =合计
合计字段是自动赋值的。
页面实现:页面中放一个grid 组件,3个字段列中放input 组件,,对单价 和数量的input 组件的值改变事件添加操作,该操作就是给字段合计赋值。
数量字段对应的input 组件值改变事件代码如下:
Model.prototype.input18Change = function(event) {
var detailBudgetData = this.comp("detailBudgetData")
var fSL = event.value;// 获取 input 中输入的数量值
var fDJ = detailBudgetData.getValue('fDJ');//获取bizdata中单价的值
var old = detailBudgetData.getValue('fHJ');//获取bizdata中合计的值
var newValue = fSL * fDJ;
if (old != newValue) {//如果新计算的值和旧值不一致,则赋值 -----------这里是为了防止刷新造成的保存按钮常亮
detailBudgetData.setValue('fHJ', newValue);
}
};
问题来了:就是合计字段的小数精度无法得到控制!
分析原因:页面加载时会触发input组件的值改变事件,重新计算合计的值
所有字段对应的input 组件都设置了 0,000.00 格式,并且也设置了 pattern 属性 ^[0-9]+([.]{1}[0-9]{0,2})?$ ,但 合计字段 在自动赋值后,小数精度没起到作用?!
是不是不应该对 detailBudgetData.setValue('fHJ', newValue) 赋值,应该对 input 组件赋值呢?
那么如何获取到当前网格中当前行对应的合计字段中的input 组件呢,获取到该组件该怎样赋值呢?
|
|