金蝶EAS-BOS--一个业务单元对于多个菜单

2017-12-18  本文已影响0人  衣服不好拿

是这样的,一个业务单元里有很多个字段,现在需要建立三个菜单,三个菜单的数据都来自同一个业务单元,根据需求,不同的菜单只显示需要显示的字段。

1.新建一个业务单元。在金蝶EAS,系统-客户化菜单编辑,新建多个菜单。并绑定到同一个UI对象(com.kingdee.eas.user.client.SaleListUI)

2.在SaleLIstUI.java文件,重写onLoad()方法:

Map map = getUIContext();
String mainMenuName =  map.get("MainMenuName");//假如建了3个菜单,分别为a,b,c
if("a".equals(mainMenuName)){
   //设置标题名称
  setUITitle("a");
  //设置过滤条件,不需要的数据可以不展示,行
  setFilterForQuery(new FileterInfo("entrys.xxxx IS NOT null"));
  //隐藏不需要的列
  talMain.getColumn("entrys.yyy").getStyleAttributes().setHided(true);
}
  1. 上面时序簿就做好了,然后把菜单的名字作为参数传过去SaleEditUI.java
protected void prepareUIContext(UIContext uiContext, ActionEvent e) {
        super.prepareUIContext(uiContext, e);
        //获取参数
        String mainMenuName = getUIContext().get("MainMenuName").toString();
        //放到上下文
        uiContext.put("title", mainMenuName);
    }

4.在SaleEditUI.java中重写onLoad()方法

       //接收参数
       String tit = getUIContext().get("title").toString();
       setUITitle(tit);//设置标题名称        
       //隐藏不需要的字段
       if("a".equals(tit)){
           setUITitle(tit);
           kdtEntrys.getColumn("xxxxx").getStyleAttributes().setHided(true);
        }

5.设置字段属性

 
    //表单验证
   @Override
    public void kdtEntrys_validate() throws Exception {
       String tit = getUIContext().get("title").toString();
       if("a".equals(tit)){
           for (int rowIndex=0,n=kdtEntrys.getRowCount();rowIndex<n;rowIndex++) {
    //如果xxx字段为空,在保持的时候会提示“xxx不能为空”,不能保存      
  if (com.kingdee.bos.ui.face.UIRuleUtil.isNull(kdtEntrys.getCell(rowIndex,"xxx").getValue())) {
               com.kingdee.eas.util.client.MsgBox.showInfo(this,"xxx不能为空");com.kingdee.eas.util.SysUtil.abort();
           }

       }};                  
    }
上一篇 下一篇

猜你喜欢

热点阅读