• eas bos 编辑界面 editUIt 属性值为空


    在编辑界面,我们可以正常的保存某个值到数据库,同时列表界面也可以正常显示。
    但是当我们再次打开这个编辑界面的时候,该属性值缺无法显示。
    通常情况下,通过下面两个方法可以解决

    方法一: 在编辑界面重写一个getSelectors()方法,因为显示的属性都是通过这个方法设定

       public SelectorItemCollection getSelectors(){
       SelectorItemCollection sic = super.getSelectors();
             sic.add(new SelectorItemInfo("isMargin"));//这是不能正常显示的字段
             sic.add(new SelectorItemInfo("bidBond"));//这是不能正常显示的字段
             sic.add(new SelectorItemInfo("bidBondDate"));//这是不能正常显示的字段
             return sic;
       }
    方法二 (不推荐) 重写另外一个方法,直接查数据库
        public void setDataObject(IObjectValue dataObject)
        {
         String fid=dataObject.getString("id");
         IRowSet rs=null;
         Boolean bool=false;
         BigDecimal  bidBond = new BigDecimal("0");
         Date bidBondDate =null;
         try {
       rs=DataUtils.clientExecuteSQL(" select cfismargin,cfbidBond,CFBIDBONDDATE from T_BD_Supplier  where fid='"+fid+"' and cfismargin is not null ");
       if(rs.next()){
        int b=rs.getInt("cfismargin");
        if(1==b){
         bool=true;
        }
        if(rs.getRow()==1)
        {
         bidBond=rs.getBigDecimal("cfbidBond");
        }
        bidBondDate=rs.getDate("CFBIDBONDDATE");
       }
      } catch (Exception e) {
       e.printStackTrace();
      }
      //System.out.println(dataObject.getBoolean("isMargin"));
      dataObject.setBoolean("isMargin", bool);
      dataObject.setBigDecimal("bidBond", bidBond);
      dataObject.setDate("bidBondDate", bidBondDate);
            IObjectValue ov = dataObject;           
            super.setDataObject(ov);
            this.editData = (com.kingdee.eas.basedata.master.cssp.SupplierInfo)ov;
          
        }

    其实,归根结底还是getvalue方法起作用 getValue(pk, getSelectors()); 如果用重写过getvalue方法,那就要注意了

  • 相关阅读:
    面向对象三 组合 特殊成员
    面向对象二 成员 嵌套
    面向对象
    模块和包
    异常处理
    os模块和序列化模块
    常用模块一
    常用模块 re模块
    内置函数二
    Algs4-2.2.14归并有序的队列
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3362582.html
Copyright © 2020-2023  润新知