如何做类似于F7的弹出选择界面?

在很多时候我们选择单行或多行记录都是在F7控件上完成的,点击F7的查询按钮,弹出选择界面,选择记录填入到F7,但有的时候我们要将数据填充到F7之外的表格列表中,这时候F7控件就不能用了,但在实现的思想上却和F7大致相同,具体如下:

1、先做一个query用来返回结果集

2、借助KDCommonPromptDialog控件完成弹出界面

3、返回数组的结果集

 

我们以币别多选为例:

    public static Object[] getCurrencyByF7(Window owner, boolean isMultiSelect)
    {
        KDCommonPromptDialog dlg;
        if(owner instanceof Frame)
            dlg = new KDCommonPromptDialog((Frame)owner);
        else
            dlg = new KDCommonPromptDialog((Dialog)owner);
        QueryAgent queryAgent = new QueryAgent();
        queryAgent.setQueryInfoPK(new MetaDataPK("com.kingdee.eas.basedata.assistant.app.CurrencyQuery"));
        queryAgent.setEnabledMultiSelection(isMultiSelect);
        SelectorItemCollection sic = new SelectorItemCollection();
        sic.add(new SelectorItemInfo("*"));
        queryAgent.setSelectorCollection(sic);
        dlg.setQueryInfo(queryAgent.getQueryInfo());
        dlg.setSelectorCollection(queryAgent.getSelectorCollection());
        dlg.setQueryExecutor(queryAgent.getQueryExecutor());
        dlg.setEnabledMultiSelection(queryAgent.isEnabledMultiSelection());
        dlg.setReturnValueType(queryAgent.getReturnValueType());
        dlg.show();
        if(!dlg.isCanceled())
            return (Object[])dlg.getData();
        else
            return null;
    }

调用代码如下:

            java.awt.Window owner = ComponentUtil.getOwnerWindow(this);
            Object arrObj[] = getCurrencyByF7(owner, true);

 

参数为拥有者的window和是否多选,这样我们就可以取到由类似于F7的选择界面返回的数据集.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值