一、取单据分录上的合计值方法:
protected BigDecimal calculateSum(KDTable table, String colunmName) {
BigDecimal ret = new BigDecimal(0.0D);
String str = null;
Object o = null;
for (int i = 0; i < table.getRowCount(); i++) {
o = table.getRow(i).getCell(colunmName).getValue();
if (o == null)
continue;
str = o.toString();
if (str != null && StringUtil.isNumber(str)) {
BigDecimal value = new BigDecimal(str);
ret = ret.add(value);
}
}
return ret;
}
二、将分录单元格的值强制保留6位小数
taxprice=(BigDecimal)this.kdtEntries.getCell(e.getRowIndex(), "taxprice").getValue();
double f1 = taxprice.setScale(6, BigDecimal.ROUND_HALF_UP).doubleValue();
taxprice=new BigDecimal(f1).setScale(6, BigDecimal.ROUND_HALF_UP);
三、二开单据序时薄列添加合计行
ListUI中重写isFootVisible,设为true
四、序时薄界面通过DEP设置保留小数位不生效的处理方法
1、首先在onshow方法中,要循环整个tblMain,如下
for(int i=0;i<tblMain.getRowCount();i++){tblMain.getRow(i).getCell("entries.amount").getStyleAttributes().setNumberFormat("#,##0.00");
}
2、因为点击表头排序后表格样式又变了,需要再重新设置一下单元格的小数位
for(int i=0;i<tblMain.getRowCount();i++){tblMain.getRow(i).getCell("entries.amount").getStyleAttributes().setNumberFormat("#,##0.00");
}
推荐阅读