根据应用菜单打开不同的列表界面效果
1 业务背景
某个应用内有多个菜单引用了相同的单据列表,但是需要显示不同的查询范围
2 思路
(1)可以通过配置默认查询方案实现,但是每个用户都需要配置。
不同的菜单有不同的业务场景,本质是不可以通过设置查询方案来回切换得
(2)需要扩展应用首页,进行二开处理,监听左侧菜单点击事件
3 解决方案
(1)随便创建一个单据A作为左侧菜单绑定的页面
(2)将单据A绑定两个不同得菜单
(3)对该应用得应用首页进行扩展,并注册插件
(4)实现kd.bos.form.control.events.TreeMenuClickListener接口,监听左树点击事件,并设置打开指定列表页面
public void registerListener(EventObject e) { super.registerListener(e); //监听左侧菜单栏 TreeMenu tree = this.getView().getControl("navigationbar"); tree.addTreeMenuClickListener(this); } @Override public void treeMenuClick(TreeNodeEvent treeNodeEvent) { //获取点击得当前菜单得源页面编码 String nodeId = (String) treeNodeEvent.getNodeId(); AppMenuInfo appMenuInfo = AppMetadataCache.getAppMenuInfo("应用编码", nodeId); //打开指定的列表页面 ListShowParameter listShowParameter = new ListShowParameter(); listShowParameter.setFormId("bos_list"); listShowParameter.setBillFormId("单据编码"); listShowParameter.getOpenStyle().setShowType(ShowType.MainNewTabPage); //判断点击不同的菜单进行传参 if(appMenuInfo!=null &&appMenuInfo.getFormId().equals("菜单绑定的源单编码")&&nodeId.equals("1988427567475984384")){ listShowParameter.setCustomParam("key","audit");//取已审核数据 listShowParameter.setCaption("列表1"); }else{ listShowParameter.setCaption("列表2"); } this.getView().showForm(listShowParameter); }
(5)编写目标单列表插件,解析上游得传参进行不同的效果展示
public void filterContainerInit(FilterContainerInitArgs args) { super.filterContainerInit(args); //解析参数 FormShowParameter listShowParameter = this.getView().getFormShowParameter(); String key = listShowParameter.getCustomParam("key"); if(key!=null&&key.equals("audit")){ FilterColumn filterColumn = args.getFilterColumn("billstatus"); filterColumn.setDefaultValues("C"); } }
(6)最后需要对单据A(绑定的源单)进行取消弹出的操作,否则点击菜单可能会同时打开两个页面
编写表单插件,在preOpenform事件中处理
public void preOpenForm(PreOpenFormEventArgs e) { super.preOpenForm(e); e.setCancel(true); } }
4 显示效果
6 源码
根据应用菜单打开不同的列表界面效果
1 业务背景某个应用内有多个菜单引用了相同的单据列表,但是需要显示不同的查询范围2 思路(1)可以通过配置默认查询方案实现,但是每个...
点击下载文档
上一篇:开发运行时许可解读下一篇:操作校验中确认弹窗的三种实现方式
本文2024-09-23 00:17:31发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-138531.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章