根据应用菜单打开不同的列表界面效果

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

根据应用菜单打开不同的列表界面效果

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 源码

源码.zip












根据应用菜单打开不同的列表界面效果

1 业务背景某个应用内有多个菜单引用了相同的单据列表,但是需要显示不同的查询范围2 思路(1)可以通过配置默认查询方案实现,但是每个...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息