在executQuery()方法中調用。(可以參考com.kingdee.eas.scm.common.client. MaterialQueryListUI)
protected IRow appendFootRow() throws Exception { if(!isFootVisible()) return null; Object footVisible = getUIContext().get("SumVisible"); if(footVisible != null && !Boolean.valueOf(footVisible.toString()).booleanValue()) return null; java.util.List fieldSumList; IRowSet singleRowSet; fieldSumList = getFieldSumList(); if(fieldSumList.size() <= 0) abort(); QueryFieldInfo fieldInfo[] = new QueryFieldInfo[fieldSumList.size()]; System.arraycopy(((Object) (fieldSumList.toArray())), 0, fieldInfo, 0, fieldSumList.size()); IQueryExecutor iexec = getQueryExecutor(mainQueryPK, getEntityViewInfo()); singleRowSet = iexec.sum(fieldInfo); if(singleRowSet == null) return null; try { singleRowSet.next(); IRow footRow = null; KDTFootManager footRowManager = detailTable.getFootManager(); if(footRowManager == null) { String total = EASResource.getString("com.kingdee.eas.framework.FrameWorkResource.Msg_Total"); footRowManager = new KDTFootManager(detailTable); footRowManager.addFootView(); detailTable.setFootManager(footRowManager); footRow = footRowManager.addFootRow(0); footRow.getStyleAttributes().setHorizontalAlign(com.kingdee.bos.ctrl.kdf.util.style.Styles.HorizontalAlignment.getAlignment("right")); detailTable.getIndexColumn().setWidthAdjustMode((short)1); detailTable.getIndexColumn().setWidth(30); footRowManager.addIndexText(0, total); } else { footRow = footRowManager.getFootRow(0); } String colFormat = "%{0.##########}f"; int columnCount = detailTable.getColumnCount(); for(int c = 0; c < columnCount; c++) { String fieldName = detailTable.getColumn(c).getFieldName(); for(int i = 0; i < fieldSumList.size(); i++) { QueryFieldInfo info = (QueryFieldInfo)fieldSumList.get(i); String name = info.getName(); if(name.equalsIgnoreCase(fieldName)) { ICell cell = footRow.getCell(c); cell.getStyleAttributes().setNumberFormat(colFormat); cell.getStyleAttributes().setHorizontalAlign(com.kingdee.bos.ctrl.kdf.util.style.Styles.HorizontalAlignment.getAlignment("right")); cell.getStyleAttributes().setFontColor(Color.BLACK); cell.setValue(singleRowSet.getBigDecimal(name)); } } } footRow.getStyleAttributes().setBackground(new Color(246, 246, 191)); return footRow; } catch(Exception E) { E.printStackTrace(); } return null; }