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);
}
文章转载于:https://blog.csdn.net/bronzehammer/article/details/115215878