NC65单据新增了个按钮,按钮方法中的isActionEnable
不生效
@Override
protected boolean isActionEnable() {
Object[] objs = getModel().getSelectedOperaDatas();
if (objs != null && objs.length > 0) {
for (int i = 0; i < objs.length; i++) {
AggReceivableChangeVO aggReceChangeVO = (AggReceivableChangeVO) objs[i];
NCObject ncObject = NCObject.newInstance(objs[i]);
Integer fstatusflag = nc.bs.pubapp.pf.util.ApproveFlowUtil.getBillStatus(ncObject);
if(!tryMakeFlow(fstatusflag)) return false;
if(isNotOSBill(aggReceChangeVO)) return false;
}
return super.isActionEnable();
}
return false;
}
纵使我直接只返回 false
,该按钮也是可点击的
解决办法:
在按钮类中的setModel()
方法添加一行代码
this.model.addAppEventListener(this);
最终如下所示
private BillManageModel model;
/**
* @return model
*/
public BillManageModel getModel() {
return model;
}
/**
* @param model 要设置的 model
*/
public void setModel(BillManageModel model) {
this.model = model;
this.model.addAppEventListener(this);
}