分享pyton过滤条件框开发插件——多选组织原创
6人赞赏了该文章
929次浏览
编辑于2021年11月01日 15:08:29
接上文python简单账表开发
简单账表过滤条件框,主要使用系统自带功能,完成二开条件字段,进行参数传递。
下文参考简单账表过滤条件框多选组织,改写完成。欢迎大家共同学习交流,谢谢!
import clr clr.AddReference("System") clr.AddReference("Kingdee.BOS") clr.AddReference("Kingdee.BOS.Core") clr.AddReference("Kingdee.BOS.App") from Kingdee.BOS import * from Kingdee.BOS.JSON import * from Kingdee.BOS.Core import * from Kingdee.BOS.Core.CommonFilter import * from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import * from Kingdee.BOS.Core.Metadata import * from Kingdee.BOS.Core.Permission import * from Kingdee.BOS.Core.SqlBuilder import * from Kingdee.BOS.Orm import * from Kingdee.BOS.Orm.DataEntity import * from Kingdee.BOS.ServiceHelper import * from System import * from System.ComponentModel import * from System.Collections.Generic import * from System.Linq import * from System.Text import * from System.Threading.Tasks import * lstOrgList = List[long](); def TreeNodeClick(e): SetDefaultValue("FOrgId"); def SetDefaultValue(sOrgFieldKey): global lstOrgList if this.View.ParentFormView: lstOrgList = GetPermissionOrg(this.View.ParentFormView.BillBusinessInfo.GetForm().Id); organization = GetOrganization(sOrgFieldKey); fieldEditor = this.View.GetFieldEditor(sOrgFieldKey,0); fieldEditor.SetComboItems(organization); value = this.Model.GetValue(sOrgFieldKey); if String.IsNullOrWhiteSpace(value): item = 101L if sOrgFieldKey.ToUpperInvariant().Equals("FORGID") else 107L; if this.Context.CurrentOrganizationInfo.FunctionIds.Contains(item): this.Model.SetValue(sOrgFieldKey,this.Context.CurrentOrganizationInfo.ID); def GetOrganization(sOrgFieldKey): enumlist = List[EnumItem](); num = 101L if sOrgFieldKey.ToUpperInvariant().Equals("FORGID") else 107L; text = (String.format("FORGID IN ({0})", ",".join(list(map(str,lstOrgList))) )) if len(lstOrgList) > 0 else "FORGID = -1"; text += String.format(" AND FORGFUNCTIONS LIKE '%{0}%' ",num.ToString()); para = QueryBuilderParemeter(); para.FormId = "ORG_Organizations"; para.SelectItems = SelectorItemInfo.CreateItems("FORGID","FNUMBER","FNAME"); para.FilterClauseWihtKey = text; dynamicObjectCollection = QueryServiceHelper.GetDynamicObjectCollection(this.View.Context,para); for current in dynamicObjectCollection: enumItem = EnumItem(); enumItem.EnumId = current["FORGID"].ToString(); enumItem.Value = current["FORGID"].ToString(); enumItem.Caption = LocaleValue(current["FNAME"].ToString(),this.Context.UserLocale.LCID); enumlist.Add(enumItem); return enumlist; def GetPermissionOrg(formId): bizObject = BusinessObject(); bizObject.Id = formId; bizObject.PermissionControl = this.View.ParentFormView.BillBusinessInfo.GetForm().SupportPermissionControl; bizObject.SubSystemId = this.View.ParentFormView.Model.SubSytemId; return PermissionServiceHelper.GetPermissionOrg(this.Context, bizObject, "6e44119a58cb4a8e86f6c385e14a17ad");
推荐阅读