天天看點

NC65添加自定義按鈕

以收款單節點卡片顯示添加【退回】按鈕為例:

(如果按鈕沒顯示,頁面出現按鈕注冊,不要慌,分别檢視配置檔案和類是不是正确)

1、先去功能注冊裡找到這個節點的配置檔案:jzpr_receive_config.xml,然後定義按鈕bean以及對應的類。(可以複制已有的按鈕配置進行修改,我這裡就是根據添加按鈕修改的)

NC65添加自定義按鈕
NC65添加自定義按鈕

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;

    }

}