zoukankan      html  css  js  c++  java
  • 金蝶EAS BOS二次开发_F7控件的查询

    简介

    业务单元A中用到业务单元B中的数据,即在业务单元A中建立一个[数据来源]-[基础资料类别]的F7字段,基础资料为业务单元B的名称,显示字段为名称。

     

    在业务单元A的[业务单元EditUI]中(一般是在JAVA透视图-com.kingdee.eas.custom.业务单元A.basedata.client中)的onLoad方法(代码中任意地方右键-源代码-覆盖/实现方法,上右图)中添加如下代码:

    第一种

     // 商户的销售市场控件设置查询信息
            String queryInfoStr = "com.kingdee.eas.custom.业务单元A.basedata.app.业务单元BQuery";
            this.prmt业务单元B.setQueryInfo(queryInfoStr);
            
            EntityViewInfo evi = new EntityViewInfo(); // 实体视图信息
            FilterInfo fi = new FilterInfo();// 过滤信息
            FilterItemCollection fc = fi.getFilterItems();// 过滤信息组信息
            
            // 过滤信息项信息(作废状态为普通的值1)
            FilterItemInfo fii1 = new FilterItemInfo("DeletedStatus", DeletedStatusEnum.NORMAL_VALUE);
            fc.add(fii1);
            
            // 过滤信息项信息(公司组织单位的ID包含为控件取来的值)
            // 通过控件取公司组织单位对象
            CompanyOrgUnitInfo companyInfo = (CompanyOrgUnitInfo)this.prmtFICompany.getValue();
            FilterItemInfo fii2 = new FilterItemInfo("FICOMPANY.ID", companyInfo.getId().toString(), CompareType.INCLUDE);
            fc.add(fii2);
            
            // 实体视图信息设置
            evi.setFilter(fi);
            
            // 商户的销售市场控件上设置新的实体视图信息
            this.prmtSellMarket.setEntityViewInfo(evi);
            this.prmtSellMarket.getQueryAgent().resetRuntimeEntityView();// 重新加载

    第二种

            CompanyOrgUnitInfo companyInfo = (CompanyOrgUnitInfo)this.prmtFICompany.getValue();
            UtilClass.setF7(this.prmt业务单元B,
                " DeletedStatus = " + DeletedStatusEnum.NORMAL_VALUE + " AND FICOMPANY.ID IN ('"
                    + companyInfo.getId().toString() + "')",
                "com.kingdee.eas.custom.butcher.basedata.app.业务单元BQuery",
                "$number$",
                "$name$",
                "$number$");
    /**
         * 设置F7
         * 
         * @param F7Name F7名称
         * @param ConditionSQL 过滤条件SQL(如果输入值不等于"",则添加条件) 例 " fbilltypestatr = '1' and (entrys.id is null or entrys.seq = 1)"
         * @param Query 属性 例:"com.kingdee.eas.cmt.basedata.app.OperatorOrgQuery"
         * @param EditFrmat 属性 例:"$number$"
         * @param DisplayFormat 属性 例:"$name$"
         * @param CommitFormat 属性 例:"$number$"
         * @throws BOSException
         */
        public static void setF7(KDBizPromptBox F7Name, String ConditionSQL, String Query, String EditFrmat,
            String DisplayFormat, String CommitFormat)
        {
            // 添加分录过滤条件
            try
            {
                EntityViewInfo view = new EntityViewInfo();
                if (ConditionSQL != "")
                {
                    view.setFilter(ConditionSQL);
                }
                // 设置F7属性
                F7Name.setQueryInfo(Query);// 关联Query
                F7Name.setEditFormat(EditFrmat);// 编辑样式
                F7Name.setDisplayFormat(DisplayFormat);// 展现样式
                F7Name.setCommitFormat(CommitFormat);// 提交样式
                F7Name.setEntityViewInfo(view);
                F7Name.setEnabledMultiSelection(false);
            }
            catch (Exception e)
            {
                alert2("F7[" + F7Name + "]初始化出错,请联系管理员!", e.getMessage());
            }
        }

    这时候我在业务单元A中打开对应业务单元B中选项时,会根据条件筛选信息(即执行一次SQL查询后的结果)。

    我这个是在业务单元A中选业务单元B中的值时,会踢出业务单元B中已经作废的条目。

  • 相关阅读:
    TV
    [转载]如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧
    search result
    floating-camera
    HDU 1032.The 3n + 1 problem【注意细节】【预计数据不强】【8月21】
    C语言socket send()数据缓存问题
    Marlin固件之—:基础入门与測试
    java语句顺序有时非常重要
    Android Studio 使用正式签名进行调试
    插入排序、交换排序、选择排序、归并排序、基数排序
  • 原文地址:https://www.cnblogs.com/yforg/p/4266781.html
Copyright © 2011-2022 走看看