玩溜组织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({
befor玩溜组织F7-组织控件高级配置
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



