EAS Bos 合计行代码

来源:互联网 发布:淘宝拍照用哪款相机好 编辑:程序博客网 时间:2024/05/22 09:03
/**  * 功能:添加合计行  *   * @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);     }    }   }