import nc.ui.pub.beans.constenum.DefaultConstEnum;
DefaultConstEnum pk_srcprojectO = (DefaultConstEnum) billModelSrc.getValueObjectAt(rowNum, "pk_srcproject");
public void setPrjbdgarea(CardBodyAfterEditEvent e) {
if (e.getTableCode().equals("pk_brrecord_b")) {
boolean isAllProject = true;
//获取表体记录明细页签的行数
int rowNum = e.getBillCardPanel().getBillModel("pk_brrecord_b")
.getRowCount();
//利用nc枚举类型获取前台信息
DefaultConstEnum firstProjectO =(DefaultConstEnum)e.getBillCardPanel()
.getBillModel("pk_brrecord_b").getValueObjectAt(0, "pk_project");
String firstProject=null;
if(firstProjectO!=null){
firstProject=(String)firstProjectO.getValue();
}
for (int i = 0; i < rowNum; i++) {
DefaultConstEnum pk_projectO =(DefaultConstEnum)e.getBillCardPanel()
.getBillModel("pk_brrecord_b").getValueObjectAt(i, "pk_project");
String pk_project = (String) pk_projectO.getValue();
if (!pk_project.equals(firstProject)) {
isAllProject = false;
break;
}
}
if (isAllProject == true) {
StringBuffer sql = new StringBuffer();
// 统计同一项目的标段所对应的承建面积
sql.append("select sum(a.nconstructarea) ");
sql.append(" from ");
sql.append(" bgyqcbd_section a ");
sql.append("where a.pk_project ='" + firstProject + "' ");
IUAPQueryBS bs = (IUAPQueryBS) NCLocator.getInstance().lookup(
IUAPQueryBS.class.getName());
Object prjbdgareaO;
try {
prjbdgareaO = bs.executeQuery(sql.toString(),
new ColumnProcessor());
if (prjbdgareaO != null) {
UFDouble prjbdgarea = new UFDouble(
prjbdgareaO.toString());
e.getBillCardPanel().getHeadItem("prjbdgarea")
.setValue(prjbdgarea);
}
else{
//如果该项目下标段没有在建面积,则设为空
e.getBillCardPanel().getHeadItem("prjbdgarea")
.setValue("");
}
} catch (BusinessException e1) {
e1.printStackTrace();
}
}
else{
//如果记录明细页签项目有多个,则设为空
e.getBillCardPanel().getHeadItem("prjbdgarea")
.setValue("");
}
}
}