如果在单据上查或下查的“单据关联”界面添加功能

问题:有时候需要在单据上查或下查出来的“单据关联”界面添加一下通用的功通,以方便用户的操作,提搞系统效率。

实现方法:

1、找到以下UI元数据:com.kingdee.eas.base.btp.client.BTPRelationNavUI  加上面添加按钮和相关的action。发布此元数据。

2、实现BTPRelationNavUICTEx类。并重写相关的Action方法。

(以上示例代码主要是展示如何获取“界据关联”界面中选中的行中某一列的值)。

package com.kingdee.eas.base.btp.client;

import java.awt.Component;
import java.awt.event.ActionEvent;
import java.util.HashMap;
import java.util.Vector;

import com.kingdee.bos.ctrl.kdf.table.IRow;
import com.kingdee.bos.ctrl.kdf.table.KDTable;
import com.kingdee.bos.ctrl.swing.KDPanel;
import com.kingdee.eas.base.btp.BTPException;
import com.kingdee.eas.base.btp.BTPManagerFactory;
import com.kingdee.eas.base.btp.IBTPManager;
import com.kingdee.eas.custom.util.MediaUtil;
import com.kingdee.eas.framework.batchHandler.RequestContext;
import com.kingdee.eas.framework.client.ListUI;
import com.kingdee.eas.util.client.MsgBox;
import com.kingdee.util.StringUtils;

public class BTPRelationNavUICTEx extends BTPRelationNavUI{

public BTPRelationNavUICTEx() throws Exception {
  super();
}

@Override
public void onLoad() throws Exception {
  super.onLoad();
  this.btnViewImg.setEnabled(true);
}

/**
  * 在单据关联界面 增加一个通用功能:查看影像功能
  */
public void actionViewImg_actionPerformed(ActionEvent e) throws Exception {

  String selectedBarcode = getSelectedBarcode();
  System.out.println(selectedBarcode);
  if(null != selectedBarcode && !"".equals(selectedBarcode)){
   MediaUtil.viewImg(selectedBarcode);//业务逻辑方法,跟据你的需要去实现
  }else{
   MsgBox.showInfo("条形码为空的单据不存在影像。");
  }
}

/**
  * 获取选中记录的条形码
  * @return
  * @throws BTPException
  * @throws Exception
  */
private String getSelectedBarcode() throws BTPException, Exception {
  String barcode = "";  //选中行的条形码
  if (innerGetListUIComponentXLQ() != null) {
   KDTable kdTable = ((ListUI) innerGetListUIComponentXLQ()).getMainTable();
   if (kdTable.getSelectManager().getActiveRowIndex() >= 0) {
    if(null != kdTable.getCell(kdTable.getSelectManager().getActiveRowIndex(), "barCode")){
     barcode = (String)kdTable.getCell(kdTable.getSelectManager().getActiveRowIndex(), "barCode").getValue();
    }else if(null != kdTable.getCell(kdTable.getSelectManager().getActiveRowIndex(), "barcode")){
     barcode = (String)kdTable.getCell(kdTable.getSelectManager().getActiveRowIndex(), "barcode").getValue();
    }
   } else {
    throw new BTPException(BTPException.NOSELECTROW);
   }
  } else {
   throw new BTPException(BTPException.NOSELECTROW);
  }
  return barcode;
}

private Component innerGetListUIComponentXLQ() {
  if ((this.tpRelatedBills == null)
    || ((KDPanel) this.tpRelatedBills.getSelectedComponent() == null)
    || (((KDPanel) this.tpRelatedBills.getSelectedComponent())
      .getComponentCount() <= 0)) {
   return null;
  }
  return ((KDPanel) this.tpRelatedBills.getSelectedComponent()).getComponent(0);
}

}

你可能感兴趣的:(如果在单据上查或下查的“单据关联”界面添加功能)