玩溜组织F7-组织控件高级配置
相信您阅读本文之前,已经熟练掌握了基础资料F7列表设置自定义过滤条件的方法,或是通过表单插件设置ListShowParameter的QFilter,或是在设计器里设置元数据的“过滤条件”,或是扩展元数据增加列表插件等。那么为什么组织F7还要单独增加参数控制呢?这是因为组织模型由多实体组成,有时候想要设置过滤条件的字段并不在组织F7对应的基础资料元数据上,比如常用的“上级组织”就不能通过设置“过滤条件”进行过滤。因此,需要增加特定的参数来支持自定义的过滤条件。
1 业务场景
场景一:动态修改“组织职能类型”
当需要根据不同的场景打开不同职能的组织F7时,如A场景下需要选择“核算组织”,B场景下需要选择“采购组织”,此时可以通过以下两个参数控制。
orgFuncId orgViewSchemeNumber
场景二:指定默认的“组织职能类型”
众所周知,组织F7未设置职能类型时,可以通过职能类型下拉列表进行切换,默认的职能类型下拉列表是未选择状态,通过下列参数可以指定默认的组织职能类型。
initOrgFuncId
场景三:指定组织树根组织
可以选择一个组织作为组织F7左树的根组织,左树和列表可选范围将被限定在此组织以及其下级组织。
场景四: 控制“包含下级”开关
组织F7列表查询默认不包含所有下级组织,可以通过下列参数打开“包含下级”开关。
isIncludeAllSub
场景五:其他
其他参数控制,请参照“PC端参数说明”以及“移动端参数说明”。
(一)PC端参数说明
应用场景 | 参数名 |
指定组织职能类型 | orgFuncId |
指定默认组织职能类型 | initOrgFuncId |
指定视图方案编码 | orgViewSchemeNumber |
指定组织树根节点 | rootId |
指定[包含下级]开关默认值 | isIncludeAllSub |
指定可选组织的范围 | range |
设置是否添加管理员管辖范围 | isOrgBaseAdmin |
设置是否只可以选择末级组织 | isOnlyDisplayOrgLeaves |
(二)移动端参数说明
应用场景 | 参数名 |
指定初始化时显示的组织 | initOrgId |
指定可选的组织范围 | range |
设置是否只可以选择末级组织 | isOnlyDisplayOrgLeaves |
2 开发流程
步骤一:开发插件
支持表单插件或者KDE脚本插件。开发请参照以下步骤执行(详情可参照“开发示例”):
1. 新增插件(表单已有插件时,可以跳过此步骤)
2. 注册组织F7控件的事件监听
3. 监听实现里设置上述参数说明里支持的自定义参数
步骤二:添加插件
1. 新增的插件需要添加到表单里(在原有插件修改的时候,可以跳过此步骤)
3 开发示例
3.1 PC端
(一)表单插件开发示例
public class ExampleFormPlugin extends AbstractFormPlugin { @Override public void registerListener(EventObject e) { OrgEdit orgEdit = this.getControl("orgfield"); if (orgEdit != null) { orgEdit.addBeforeF7SelectListener(new BeforeF7SelectListener() { @Override public void beforeF7Select(BeforeF7SelectEvent evt) { evt.getFormShowParameter().setCustomParam("orgFuncId", OrgViewType.admin); } }); } } }
(二)KDE脚本开发示例
var plugin = new FormPlugin({ registerListener : function(e){ var bdEdit = this.getControl("orgfield"); bdEdit.addBeforeF7SelectListener({ beforeF7Select: function(e){ var param = e.getFormShowParameter(); param.setCustomParam("rootId",100001); } }); } });
3.2 移动端
(一) 表单插件开发示例
public class ExampleMobileFormPlugin extends AbstractMobFormPlugin { @Override public void registerListener(EventObject e) { OrgEdit orgEdit = this.getControl("orgfield"); if (orgEdit != null) { orgEdit.addBeforeF7SelectListener(new BeforeF7SelectListener() { @Override public void beforeF7Select(BeforeF7SelectEvent evt) { evt.getFormShowParameter().setCustomParam("initOrgId", 100001); } }); } } }
(二) KDE脚本开发示例
var plugin = new FormPlugin({ registerListener : function(e){ var bdEdit = this.getControl("orgfield"); bdEdit.addBeforeF7SelectListener({ beforeF7Select: function(e){ var param = e.getFormShowParameter(); param.setCustomParam("initOrgId",100001); } }); } });
相关链接请查看金蝶云苍穹开发者生态平台的接口文档。
#往期推荐#
更多精彩内容,“码”上了解!↓
玩溜组织F7-组织控件高级配置
本文2024-09-23 00:32:21发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-140107.html