BeforeF7Select实现有权限的业务组织过滤

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

BeforeF7Select实现有权限的业务组织过滤

一、【业务需求】

需要设置分步式调出单的【调出库存组织】、【调入库存组织】都只能选择用户有权限的组织


二、【功能分析】

跨组织的调拨,调出组织作为主业务组织,F8组织列表只展示对应用户有权限的组织。调入库存组织目前没有做控制,过滤条件为:启用库存管理职能 且已做库存初始化的组织

image.webp


image.webp


三、【功能实现】


import clr
clr.AddReference("System")
clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference('Kingdee.BOS.ServiceHelper')

from System import *
from System import StringComparison
from Kingdee.BOS.ServiceHelper import * 
from Kingdee.BOS.Core.Permission import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *

def BeforeF7Select(e):
    if e.FieldKey.Equals("FSTOCKINORGID", StringComparison.OrdinalIgnoreCase):
        filter = ""
        orgIds = GetPermissionViewOrg()
        if len(orgIds) > 0:
            filter = "("
            for orgId in orgIds:
                filter += str(orgId) + ","  
            filter = filter.strip(',') + ")"
            filter = " FORGID IN " + filter
        else:
            filter += " 1 <> 1"
        if e.ListFilterParameter.Filter == "":
            e.ListFilterParameter.Filter = filter
        else:
            e.ListFilterParameter.Filter += " AND " + filter
    
def GetPermissionViewOrg():
    bizObject = BusinessObject()
    bizObject.Id = "STK_TRANSFEROUT"
    bizObject.PermissionControl = 1
    bizObject.SubSystemId = "21"
    
    orgList = PermissionServiceHelper.GetPermissionOrg(this.Context, bizObject, "6e44119a58cb4a8e86f6c385e14a17ad") # Kingdee.BOS.Core.Permission.PermissionConst.View
    return orgList


可选组织满足3个条件:

1、用户已分配组织  

2、组织有库存职能 

3、组织完成库存初始化


组织查询权限过滤筛选BeforeF7Select.rar


Mark

BeforeF7Select实现有权限的业务组织过滤

一、【业务需求】需要设置分步式调出单的【调出库存组织】、【调入库存组织】都只能选择用户有权限的组织二、【功能分析】跨组织的调拨,调...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息