以收款單節點卡片顯示添加【退回】按鈕為例:
(如果按鈕沒顯示,頁面出現按鈕注冊,不要慌,分别檢視配置檔案和類是不是正确)
1、先去功能注冊裡找到這個節點的配置檔案:jzpr_receive_config.xml,然後定義按鈕bean以及對應的類。(可以複制已有的按鈕配置進行修改,我這裡就是根據添加按鈕修改的)
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL6VEVPhXVU9EMNpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL4MTM4ETM0MTM3AjMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
2、定義nc.ui.jzcm.jzpr0505.PrReceiveSendAction這個類,把這個類放在添加按鈕類相同的包下。
package nc.ui.jzcm.jzpr0505;
import java.awt.event.ActionEvent;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.List;
import nc.bs.framework.common.NCLocator;
import nc.bs.framework.common.RuntimeEnv;
import nc.bs.logging.Logger;
import nc.bs.trade.business.HYPubBO;
import nc.itf.pubapp.pub.smart.IBillQueryService;
import nc.itf.uap.IUAPQueryBS;
import nc.jdbc.framework.processor.BeanProcessor;
import nc.ui.jzbase.uipub.action.JZBaseAddAction;
import nc.ui.jzbase.uipub.action.JZBaseNCAction;
import nc.ui.jzbase.uipub.model.JZBaseBillManageModel;
import nc.ui.jzbase.uipub.model.datamanager.JZBasePageModelDataManager;
import nc.ui.ml.NCLangRes;
import nc.ui.pub.beans.MessageDialog;
import nc.ui.pubapp.uif2app.view.BillForm;
import nc.ui.uif2.NCAction;
import nc.ui.uif2.model.AbstractAppModel;
import nc.vo.pub.AggregatedValueObject;
import nc.vo.pub.BusinessException;
import nc.vo.pubapp.AppContext;
import nc.vo.pubapp.pattern.model.entity.bill.AbstractBill;
public class PrReceiveSendAction extends JZBaseNCAction {
IUAPQueryBS queryBS = (IUAPQueryBS) NCLocator.getInstance().lookup(
IUAPQueryBS.class.getName());
private static final long serialVersionUID = -974680769981501211L;
private BillForm billfrom;
private JZBasePageModelDataManager dataManager;
public JZBasePageModelDataManager getDataManager() {
return this.dataManager;
}
public void setDataManager(JZBasePageModelDataManager dataManager) {
this.dataManager = dataManager;
}
public PrReceiveSendAction() {
this.setBtnName("退回");
this.setCode("sendback");
}
public BillForm getBillfrom() {
return this.billfrom;
}
public void setBillfrom(BillForm billfrom) {
this.billfrom = billfrom;
}
private AbstractAppModel model;
public AbstractAppModel getModel() {
return this.model;
}
public void setModel(AbstractAppModel model) {
this.model = model;
model.addAppEventListener(this);
}
public void doAction(ActionEvent e) throws Exception {
JZBaseBillManageModel model = (JZBaseBillManageModel) getModel();
Object[] objs = model.getSelectedOperaDatas();
// Object obj = getModel().getSelectedData();
if(null !=objs && 0<objs.length){
int flag = MessageDialog.showOkCancelDlg(getBillfrom(), "提示", "确定要退回嗎?");
if(1==flag){
for (Object object : objs) {
AggPrReceiveVO aggvo=(AggPrReceiveVO) object;
PrReceiveVO parentVO = aggvo.getParentVO();
FKSQData fysqdatavo=new FKSQData();
List<FKSQBean> fysqlists=new ArrayList<FKSQBean>();
FKSQBean beanvo = transforApplyMX(parentVO);
fysqlists.add(beanvo);
fysqdatavo.setApply(fysqlists);
String xml=JaxbUtil.convertToXml(fysqdatavo);
。。。。。。。。。。。
getModel().directlyUpdate(aggvo);
}
}
}else{
throw new Exception("請先選擇一條資料!");
}
}
protected boolean isActionEnable() {
Object obj = getModel().getSelectedData();
Boolean flag=true;
if(null !=obj){
AggPrReceiveVO aggvo=(AggPrReceiveVO) obj;
PrReceiveVO parentVO = aggvo.getParentVO();
//沒關聯上PM付款單按鈕置灰//如果收款單沒審批通過按鈕也置灰//如果已經同步
if((null==parentVO.getVdef12() || StringUtils.isEmpty(parentVO.getVdef12())) || 1!=parentVO.getFstatusflag() || "Y".equals(parentVO.getVdef13())){
flag= false;
}
}
return flag;
}
}