如何设置树形基础资料的左树焦点原创
1人赞赏了该文章
901次浏览
编辑于2022年12月22日 16:39:56
关键词:树形基础资料、左树、焦点
一、需求
根据节点编码,在打开树形基础资料F7列表后,显示左树聚焦于编码对应的节点,并展开,同时右表只显示改节点下的数据
二、思路与方案
首先根据编码查到对应树形基础资料数据的id,并传参到树形基础资料列表插件,在列表插件的afterBindData中判断设置焦点信息,由于树形基础资料列表会触发两次afterBindData事件,一次是在走源表单列表kded_tree119的BillList的初始化,一次是对整个树形基础资料模板ListView的初始化,所以只要在最后一次的afterBindData事件中设置焦点即可。
三、实现过程
1、传递F7列表的参数
//单据插件 public class DemoJBillPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener { @Override public void registerListener(EventObject e) { BasedataEdit bd = this.getView().getControl("kded_basedatafield"); bd.addBeforeF7SelectListener(this); super.registerListener(e); } @Override public void beforeF7Select(BeforeF7SelectEvent bf7) { String name = bf7.getProperty().getName(); if (name.equals("kded_basedatafield")){ Object number = this.getModel().getValue("kded_textfield"); //根据父页面传过来的编码查询节点id DynamicObject queryObj = QueryServiceHelper.queryOne("kded_tree119", "id,number", new QFilter[]{new QFilter("number", QCP.equals, number)}); if (queryObj==null){ this.getView().showTipNotification("编码对应的节点不存在"); bf7.setCancel(true); return; } ListShowParameter lsp = (ListShowParameter) bf7.getFormShowParameter(); lsp.setCustomParam("nodeId",queryObj.getString("id")); } } }
2、设置树形基础资料的左树焦点
/** * 树形基础资料列表插件 */ public class SetTreeNodeFocuListPlugin extends StandardTreeListPlugin { @Override public void afterBindData(EventObject e) { super.afterBindData(e); //回走两次afterBindData事件,在最后一次再初始化 if (e.getSource() instanceof ListView) { String nodeId = this.getView().getFormShowParameter().getCustomParam("nodeId"); if (!StringUtil.isEmpty(nodeId)&&this.getTreeModel().getGroupProp() != null) { TreeNode root = this.getTreeModel().getRoot(); TreeNode treeNode = root.getTreeNode(nodeId); //设置当前节点 this.getTreeModel().setCurrentNodeId(nodeId); //设置焦点 this.getTreeListView().getTreeView().focusNode(treeNode); //设置是否展开节点 this.getTreeListView().getTreeView().showNode(nodeId); //刷新设置的节点信息,这样才可以更新右表的数据 this.getTreeListView().refreshTreeNode(nodeId); } } } }
四、效果图
先输入编码,再点击基础资料,弹出的树形基础资料列表如下效果
五、开发环境版本
V5.0.012
六、参考资料
kded_mycloud-kded_reqord-20221 …(24.48KB)
demojplugin.zip(2.14KB)
推荐阅读