以收款单节点卡片显示添加【退回】按钮为例:
(如果按钮没显示,页面出现按钮注册,不要慌,分别查看配置文件和类是不是正确)
1、先去功能注册里找到这个节点的配置文件:jzpr_receive_config.xml,然后定义按钮bean以及对应的类。(可以复制已有的按钮配置进行修改,我这里就是根据添加按钮修改的)
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;
/**
* i. 财务系统根据【付款申请单】生成的【付款单】提交拜特资金支付成功并回写PM系统支付结果成功后,因为收款账号错误银行返回拜特支付失败信息时,
* ,财务系统会生成一张收款单,财务人员将资金系统退回的【收款单】与【付款单】关联,提交审批
* ii. 资金系统退回的【收款单】与【付款单】关联生效后,调用项目管理系统【付款申请单】支付结果接口,将收款单的金额转为负数及收款单日期回写对应的
* 【付款申请单】支付明细,并将【收款单】单据号回写到支付明细的备注中
* @author xueyl
*
*/
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;
}
}
原文链接:https://blog.csdn.net/qq_34951913/article/details/110817071