EAS Bos 合计行代码

来源:互联网 发布:软件开发教学 编辑:程序博客网 时间:2024/05/16 18:02
 /**  * 功能:添加合计行  *   * @param table  *            指定的KDTable  * @param fields  *            需要合计的列  */ public static void apendFootRow(KDTable table, String fields[]) {  int size = fields.length;  if (size == 0)   return;  Map sumValue = new HashMap();  // 利用getRowCount的到的行可能不正确  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 < fields.length; j++) {    sumValueForCell(row, fields[j], sumValue);   }  }  if (footRow == null) {   footRow = footManager.addFootRow(0);  }  // 设置合计行显示样式  String colFormat = "%{0.00}f";  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];   footRow.getCell(colName).getStyleAttributes().setNumberFormat(     colFormat);   footRow.getCell(colName).getStyleAttributes().setHorizontalAlign(     HorizontalAlignment.RIGHT);   footRow.getCell(colName).getStyleAttributes().setFontColor(     Color.black);  }  // 设置合计行的值  for (int i = 0; i < fields.length; 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);   }  } }


原创粉丝点击