NC65添加自定义按钮
以收款單節點卡片顯示添加【退回】按鈕為例:
(如果按鈕沒顯示,頁面出現按鈕注冊,不要慌,分別查看配置文件和類是不是正確)
1、先去功能注冊里找到這個節點的配置文件:jzpr_receive_config.xml,然后定義按鈕bean以及對應的類。(可以復制已有的按鈕配置進行修改,我這里就是根據添加按鈕修改的)
2、定義nc.ui.jzcm.jzpr0505.PrReceiveSendAction這個類,把這個類放在添加按鈕類相同的包下。
/*** Eclipse Class Decompiler plugin, copyright (c) 2012 Chao Chen (cnfree2000@hotmail.com) ***/
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;
?? ?}
?? ?
}
?
?
總結
以上是生活随笔為你收集整理的NC65添加自定义按钮的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: resgin
- 下一篇: FLAG_SECURE:安卓无法抓取页面