金蝶BOS开发中Edit编辑界面和List叙事薄界面需要写的代码

本人刚开始从事金蝶EAS开发,对于这个也是刚刚解除,下面是一些学习整理,

EditUI中的代码

 

public class MyBillEditUI extends AbstractMyBillEditUI
{
    public MyBillEditUI() throws Exception
    {
        super();
    }
    //把数据对象加载到当前UI界面相应的控件
    public void loadFields()
    {
        super.loadFields();
    }
    //同步当前UI业务数据到数据对象
    public void storeFields()
    {
        super.storeFields();
        
    }
    //进行某些控件或数据设置
    public void onLoad() throws Exception {
        IColumn column = this.kdtEntries.getColumn(1);
        column.getStyleAttributes().setLocked(true);
	 super.onLoad();
        this.actionSubmit.addService( new ForewarnService() ) ;
        this.actionSubmit.addService( new WorkFlowService() ) ;
        this.actionSubmit.setBindWorkFlow( true ) ;
   }
//创建新的数据对象,并设置初始值
protected IObjectValue createNewData() {
	MyBillInfo result = new MyBillInfo();
	result.set*(value);
	result.getEntries();
	return result;
} 
//创建分录数据对象,并设置初始值
protected IObjectValue createNewDetailData(KDTable table) {
     return new MyBillEntryInfo();
}
//获取分录table
protected KDTable getDetailTable() {
    return kdtEntries;
}
//获取业务接口
protected ICoreBase getBizInterface() throws Exception {
   return MyBillFactory.getRemoteInstance();
}
//检验数据的合法性,并抛出异常
protected void verifyInput(ActionEvent e) throws Exception {
    if (this.getDataObject()==null){ throw new Exception();}
}
//设置某些字段==null  
protected void setFieldsNull(AbstractObjectValue newData) {
       newData.set**(null);
}  
//保存数据
public IObjectPK runSave() throws Exception {
   //设置editData的某些值
   super.runSave();
}
//同runSave
public IObjectPK runSubmit() throws Exception
    {
   …
   super.runSubmit();
}
//修改后是提交或暂存 true为暂存 false为提交
 protected boolean isModifySave()
 {
      return false;
 }


ListUI中的代码

 

 

   public class MyBillListUI extends AbstractMyBillListUI
{
    public MyBillListUI() throws Exception{
        super();
        this.setUITitle("单据测试");
    }
   
 /**
  *把数据对象加载到当前UI界面相应的控件,针对序事薄没有用处      
*/
    public void loadFields(){
        super.loadFields();
}
/**
    *同步当前UI业务数据到数据对象,针对序事薄没有用处    
*/
     public void storeFields(){
        super.storeFields();
     }
/**
     *提供序事薄需要打开的编辑界面UI的类名
*/
    protected String getEditUIName() {
	       return MyBillEditUI.class.getName();
     }
/**
     *返回当前业务的远程或本地业务接口
*/
     protected ICoreBase getBizInterface() throws Exception {
	       return MyBillFactory.getRemoteInstance();
     }
/**
     *由开发人员提供当前table的主键字
*/
protected String getKeyFieldName() {
       return "id";
}
/**
     *如果业务需要融合某些列,需要提供这些列的key(即融合单据头)
*/
 public String[] getMergeColumnKeys(){
        String[] mergeColumn = new String[2];
        mergeColumn[0] = new String("id");
      mergeColumn[1] = new String("number");
      return mergeColumn;
 }
/**
     *要在状态栏显示当前的单据条数,需要业务返回计算单据条数的字段
*/
protected String[] getCountQueryFields(){
        return new String[] {“id“};
     }
/**
     *可以指定当前窗口的打开模式,默认情况下不用指定
     * UIFactoryName.MODEL,UIFactoryName.NEWWIN,UIFactoryName.NEWTAB
*/
 protected String getEditUIModal(){
         return UIFactoryName.MODEL;
     }
 /**
     *是否需要进行表格排序,业务可以覆盖返回false,屏蔽点击单据头排序动作
*/
  protected boolean isOrderForClickTableHead(){
         return true;
     }
/**
     *返回不需要排序的表列数组,默认返回null
*/
protected String[] getNotOrderColumns(){
        return null;
      }
/**
     *可以在父类的onload后做一些自己的事情
*/
public void onLoad() throws Exception {
        super.onLoad();
      //如设置滚动条隐藏
     //this.getMainTable().setScrollStateVertical(KDTStyleConstants.SCROLL_STATE_HIDE);
     }
/**
     *允许构造传递给EditUI的UIContext,继承类实现
*/

 
 protected void prepareUIContext(UIContext uiContext, ActionEvent e){
      super.prepareUIContext(uiContext,e);
      //传递自己的上下文参数或其他值
      uiContext.put(key,value);
}
/**
   *关闭窗口
*/
public boolean destroyWindow() {
     super.destoryWindow();
     //做自己的一下销毁动作
   }
}

 

EditeUI 类是客户端编辑界面对应的类


ListUI 类是客户端叙事簿界面对应的类



 

posted @ 2012-05-01 21:02  范永强  阅读(1210)  评论(0编辑  收藏  举报