现在的位置: 首页 > 综合 > 正文

EAS Bos 合计行代码

2013年09月21日 ⁄ 综合 ⁄ 共 1718字 ⁄ 字号 评论关闭
/** 
 * 功能:添加合计行 
 *  
 * @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);  
   }  
  }  
 }  

 

抱歉!评论已关闭.