在executQuery()方法中调用。(可以参考com.kingdee.eas.scm.common.client. MaterialQueryListUI)
@Override
protected boolean isFootVisible() {
return true;
}
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;
}
在executQuery()方法中调用。(可以参考com.kingdee.eas.scm.common.client. MaterialQueryListUI)
@Override
protected boolean isFootVisible() {
return true;
}
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;
}