当前位置:编程学习 > 网站相关 >>

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方法,那就要注意了
补充:综合编程 , 其他综合 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,