/**
* 设置合计行
* @param table
* @param fields
*/
public static void apendFootRow(KDTable table, String fields[]) {
int size = fields.length;
if (size == 0)
return;
Map<String,BigDecimal> sumValue = new HashMap<String,BigDecimal>();
int count = table.getRowCount3();
for (int i = 0; i < fields.length; i++) {
sumValue.put(fields[i], new BigDecimal("0.00"));
}
IRow footRow = null;
KDTFootManager footManager = table.getFootManager();
if (footManager == null) {
footManager = new KDTFootManager(table);
footManager.addFootView();
table.setFootManager(footManager);
}
// 计算所有指定行的合计值
footRow = footManager.getFootRow(0);
for (int i = 0; i < count; i++) {
IRow row = table.getRow(i);
for (int j = 0; j < size; j++) {
sumValueForCell(row, fields[j], sumValue);
}
}
if (footRow == null) {
footRow = footManager.addFootRow(0);
}
// 设置合计行显示样式
String total = EASResource.getString(FrameWorkClientUtils.strResource+ "Msg_Total");
table.getIndexColumn().setWidthAdjustMode(KDTIndexColumn.WIDTH_MANUAL);
table.getIndexColumn().setWidth(30);
footManager.addIndexText(0, total);
footRow.getStyleAttributes().setBackground(new Color(0xf6, 0xf6, 0xbf));
for (int i = 0; i < size; i++) {
String colName = fields[i];
StyleAttributes style = footRow.getCell(colName).getStyleAttributes();
style.setNumberFormat(LoanConstant.dataColFormat);
style.setHorizontalAlign(HorizontalAlignment.RIGHT);
style.setFontColor(Color.black);
}
// 设置合计行的值
for (int i = 0; i < size; i++) {
footRow.getCell(fields[i]).setValue(sumValue.get(fields[i]));
}
}
private static void sumValueForCell(IRow row, String key, Map sumValue) {
ICell cell = row.getCell(key);
if (cell != null) {
Object obj = cell.getValue();
if (obj != null) {
BigDecimal keyValue = (BigDecimal) sumValue.get(key);
keyValue = keyValue.add(new BigDecimal(obj.toString()));
sumValue.put(key, keyValue);
}
}
}
分录数据添加合计行
最新推荐文章于 2021-04-20 14:30:01 发布