玩溜组织F7-组织控件高级配置

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

玩溜组织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


开发流程

步骤一:开发插件

支持表单插件或者KDE脚本插件。开发请参照以下步骤执行(详情可参照“开发示例”):

1.   新增插件(表单已有插件时,可以跳过此步骤)

2.   注册组织F7控件的事件监听

3.   监听实现里设置上述参数说明里支持的自定义参数


步骤二:添加插件

1.   新增的插件需要添加到表单里(在原有插件修改的时候,可以跳过此步骤)



开发示例

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-组织控件高级配置

相信您阅读本文之前,已经熟练掌握了基础资料F7列表设置自定义过滤条件的方法,或是通过表单插件设置ListShowParameter的QFilter,或是在设...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息