如何扩展标准产品F7弹出窗口的功能

如何扩展标准产品F7弹出窗口的功能

第一步:编写扩展类,继承自com.kingdee.bos.ctrl.extendcontrols.KDCommonPromptDialog

如下示例:

package com.kingdee.eas.custom.medianterface.client;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.ArrayList;

import com.kingdee.bos.BOSException;

import com.kingdee.bos.ctrl.extendcontrols.KDCommonPromptDialog;

import com.kingdee.bos.ctrl.swing.KDWorkButton;

import com.kingdee.eas.common.EASBizException;

import com.kingdee.eas.custom.util.MediaUtil;

import com.kingdee.eas.fi.cas.PaymentBillFactory;

import com.kingdee.eas.fi.cas.PaymentBillInfo;

/**

* 在标准F7弹出窗的toolbar上添加一个按钮,并实现按钮的功能

* @author Tommy.Xiao

*/

public class UserKDCommonPromptDialog extends KDCommonPromptDialog {

    public UserKDCommonPromptDialog() {

       super();

    }

//  @Override

    protected void dialogInit() {

       super.dialogInit();

       //请在此处修改F7弹出窗口,可进行添加按钮,菜单等

       addUriButton();

    }

    protected void addUriButton()

    {

       KDWorkButton bar = new KDWorkButton();

       bar.addActionListener(new ActionListener(){

           public void actionPerformed(ActionEvent e) {

              //实现按钮功能

ActionUri_actionPerformed(e);

           }});

       bar.setText("查看影像 ");

       getSkinRootPane().getBarPartAreaOfOrientation(1).getToolBars()[0].add(bar);

    }

    protected void ActionUri_actionPerformed(ActionEvent e )

    {

       ArrayList list = getSelectedIdValues();

       if(list.size() > 0){

           String id = list.get(0).toString();

           String oql = "select * where id='" + id + "'";

           try {

              PaymentBillInfo payment = PaymentBillFactory.getRemoteInstance().getPaymentBillInfo(oql);

              String barcode = payment.getBarcode();

              MediaUtil.viewImg(barcode);

             

           } catch (EASBizException e1) {

              e1.printStackTrace();

           } catch (BOSException e1) {

              e1.printStackTrace();

           }

       }

      

    }

}

第二步:选中单据上的F7控制。设置其defaultF7UIName属性值上一步定义的类全路径。示例如下:

第三步:发布上一步修改的UI元数据。在其扩展类的onload()方法中添加以下代码:

QueryAgent agent = new QueryAgent();

       MetaDataPK pk = new MetaDataPK("com.kingdee.eas.custom.medianterface.app", "PaymentBillMediaQuery");    //具体的Query根据实际情况填写

       agent.setQueryInfoPK(pk);

       UserKDCommonPromptDialog userF7 = new UserKDCommonPromptDialog();

       userF7.setQueryInfo(agent.getQueryInfo());

       kDBizPayment.setSelector(userF7);

示例如下:

package com.kingdee.eas.fi.fa.manage.client;

import com.kingdee.bos.ctrl.extendcontrols.QueryAgent;

import com.kingdee.bos.metadata.MetaDataPK;

import com.kingdee.eas.custom.medianterface.client.UserKDCommonPromptDialog;

public class FaCurCardEditUICTEx extends FaCurCardEditUI{

    public FaCurCardEditUICTEx() throws Exception {

       super();

    }

   

    @Override

    public void onLoad() throws Exception {

       super.onLoad();

       QueryAgent agent = new QueryAgent();

       MetaDataPK pk = new MetaDataPK("com.kingdee.eas.custom.medianterface.app", "PaymentBillMediaQuery");

       agent.setQueryInfoPK(pk);

       UserKDCommonPromptDialog userF7 = new UserKDCommonPromptDialog();

       userF7.setQueryInfo(agent.getQueryInfo());

       kDBizPayment.setSelector(userF7);

    }

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值