自定义快捷新增界面

栏目:云星瀚知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

自定义快捷新增界面

背景

客户期望物料字段在模糊搜索时,支持快捷新增,并且满足以下几点:

  • 快捷新增不直接跳转到物料的新增界面,而是打开一个自定义页面,在这个自定义界面只维护基本的计量单位等信息,点击确认后自动生成物料。

  • 如果模糊搜索的内容不存在,在跳转到快捷新增界面时,将直接把模糊搜索的内容填写到物料的编码字段上。

由于后台自动生成物料这个逻辑比较简单,这里就不再单独描写了。

实现方案

  • 元数据放开快捷新增的功能

上传图片

  • 监听模糊搜索的事件

表单插件继承基类:BasedataFuzzySearchListener

注册监听:

BasedataEdit materialEdit = this.getControl(KEY_MATERIAL);
materialEdit.addBasedataFuzzySearchListener(this);

触发了物料的模糊搜索时,先将模糊搜索的内容缓存起来:

@Override
 public void handleData(BasedataFuzzySearchEvent e) {
     BasedataEdit source = (BasedataEdit)e.getSource();
     String key = source.getKey();
     if(KEY_MATERIAL.equals(key)) {
         QFilter searchFilter = source.getSearchFilter();
         if (searchFilter != null) {
             //获取模糊搜索的内容
             Object value = searchFilter.getValue();
             if (value != null) {
                 String s = value.toString();
                 //按#分割,#前面是搜索的自动标识,#后面是搜索的内容
                 String[] split = s.split("#");
                 if (split.length == 2) {
                     String inputString = split[1];
                     inputString = inputString.replaceFirst("%", "");
                     this.getPageCache().put(CACHE_MATERIAL_F7_SEARCH, inputString);
                 }
             }
         } else {
             this.getPageCache().put(CACHE_MATERIAL_F7_SEARCH, "");
         }
     }
 }
  • 监听快捷新增的事件

表单插件继承基类:BeforeQuickAddNewListener

注册监听:

BasedataEdit materialEdit = this.getControl(KEY_MATERIAL);
materialEdit.addBeforeQuickAddNewListener(this);

触发了物料的快捷新增后,取消原来的事件,打开我们自定义的快捷新增界面:

@Override
 public void beforeQuickAddNew(BeforeQuickAddNewEvent e) {
     Control source = (Control) e.getSource();
     String key = source.getKey();
     if(KEY_MATERIAL.equals(key)) {
         //跳转自定义物料快速新增页面
         showMaterialQuickAddNewForm();
         e.setCancel(true);
     }
 }
 
 /**
  * 跳转自定义物料快速新增页面
  */
 private void showMaterialQuickAddNewForm() {
     //缓存的模糊搜索的内容
     String partNo = this.getPageCache().get(CACHE_MATERIAL_F7_SEARCH);
 
     FormShowParameter parameter = new FormShowParameter();
     parameter.setFormId(xxx);
     parameter.getOpenStyle().setShowType(ShowType.Modal);
     //如果需要将快速新增的物料直接填到单据上,可以监听回调事件
     //parameter.setCloseCallBack(new CloseCallBack(this, xxx));
     //将缓存的模糊搜索的内容传过去
     parameter.setCustomParam(“partNo”, partNo); 
     this.getView().showForm(parameter);
 }
  • 跳转到自定义页面后的逻辑就不再赘述了,根据具体的业务来设计页面、写后台逻辑即可。


自定义快捷新增界面

背景客户期望物料字段在模糊搜索时,支持快捷新增,并且满足以下几点:快捷新增不直接跳转到物料的新增界面,而是打开一个自定义页面,在这...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息