EAS 表格树结构

本文介绍了如何在EAS中创建表格树结构,通过`createCellTreeNode`方法构建节点,并在`onLoad`事件中填充数据,根据数据动态调整表格内容,实现表格行的增删,以及节点的展开与折叠状态设置。

////////////////////

protected void tblMain_tableClicked(com.kingdee.bos.ctrl.kdf.table.event.KDTMouseEvent e) throws Exception

{
super.tblMain_tableClicked(e);

int index = e.getRowIndex();
int colIndex = e.getColIndex();
if(colIndex == tblMain.getColumnIndex("number") || e.getClickCount()==1){
Object object = tblMain.getCell(index, colIndex).getValue();
if(object instanceof CellTreeNode){
CellTreeNode node = (CellTreeNode) object;
node.doTreeClick(tblMain,tblMain.getCell(index, colIndex));
}
}

}

///////////////////////

private CellTreeNode createCellTreeNode(String name,int level,boolean isLeaf){
    CellTreeNode node = new CellTreeNode();
    node.setTreeLevel(level);
    node.setValue(name);
    node.setCollapse(false);
    node.setHasChildren(!isLeaf);
    return node;
   }

///////////////////////////

public void onLoad() throws Exception {
   
    DataSynchronismFacadeFactory.getRemoteInstance().deleteUnUnit();
   
    super.onLoad();
    tblMain.getDataRequestManager().setDataRequestMode(KDTDataRequestManager.REAL_MODE);
//     DataSynchronismFacadeFactory.getRemoteInstance().DataSynchronism();
   
    btnAddNew.setVisible(false);
   
    tblMain.addKDTDataFillListener(new KDTDataFillListener(){


public void afterDataFill(KDTDataRequestEvent arg0) {
int rowIndex = tblMain.getRowCount();
for(int i=rowIndex-1;i>=0;i--){
if(!isNeed(UIRuleUtil.getString(tblMain.getCell(i,"number").getValue()))){
tblMain.removeRow(i);
continue;
}
int level = UIRuleUtil.getIntValue(tblMain.getCell(i,"level").getValue());
boolean isLeaf = UIRuleUtil.getBooleanValue(tblMain.getCell(i,"isLeaf").getValue());
String name = tblMain.getCell(i,"promAdminUnit.name").getValue().toString();
CellTreeNode cellTreeNode = createCellTreeNode(name.trim(), level, isLeaf);
tblMain.getCell(i, "promAdminUnit.name").setValue(cellTreeNode);
}
}
    });
   
    tblMain.getStyleAttributes().setHorizontalAlign(HorizontalAlignment.LEFT);
    }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值