给直接sql账表加基础资料数据权限原创
9人赞赏了该文章
3,214次浏览
编辑于2021年06月19日 10:32:53
直接sql账表默认是没有数据权限,也无法通过业务授权给其设置基础资料权限,只能设置功能权限。如果一些关键字是基础资料又需要控制其权限,则可以通过插件给实现。
示例:把单据A中的部门基础资料数据范围权限适应到其对应的直接sql账表
单据A部门基础资料数据范围权限设计,部门的编码包含006
单据A直接sql账表,包含部门基础资料关键字
部门列表插件代码
using System; using System.Collections.Generic; using System.Linq; using System.ComponentModel; using Kingdee.BOS.Contracts; using Kingdee.BOS.Core.List.PlugIn.Args; using Kingdee.BOS.Core.List.PlugIn; using Kingdee.BOS.ServiceHelper; using Kingdee.BOS.App.Data; using Kingdee.BOS.Util; using Kingdee.BOS.Core.Permission.Objects; using Kingdee.BOS.Core.Permission; namespace Kingdee.BOS.TestPlugIn.ListPlugIn { [HotUpdate] [Description("部门列表权限控制插件")] public class DirectSqlListPlugIn : AbstractListPlugIn { /// <summary> /// 创建sql构建参数后 /// </summary> /// <param name="e"></param> public override void AfterCreateSqlBuilderParameter(SqlBuilderParameterArgs e) { base.AfterCreateSqlBuilderParameter(e); //this.view是部门列表的;this.View.ParentFormView 是过滤方案的view; this.View.ParentFormView.ParentFormView是直接sql帐表 if (this.View.ParentFormView != null && this.View.ParentFormView.ParentFormView != null) { var sqlForm = this.View.ParentFormView.ParentFormView.BillBusinessInfo.GetForm(); //直接sql帐表的表单Id if (sqlForm.Id == "k54306f8b1a4b45428fbe737e7a5ffe01") { var billFormId = "KKK_BillA"; //取单据A中配置的部门数据权限 //构建数据规则过滤参数 DataRuleFilterParamenter filterParameter = new DataRuleFilterParamenter(billFormId, DataRuleFilterVersion.V2) { ParentFormId = billFormId, PermissionItemId = PermissionConst.View, BusinessInfo = this.View.BillBusinessInfo, IsLookUp = true, IsEnabledObjectDRInLookUp = true, IsSupportSqlParam = true, }; //得到单据A部门数据规则过滤对象 DataRuleFilterObject filterObject = PermissionServiceHelper.LoadDataRuleFilter(this.Context, filterParameter); //过滤对象的过滤字符串传给部门列表sql构建参数 e.sqlBuilderParameter.DataRuleFilterString = e.sqlBuilderParameter.DataRuleFilterString.JoinFilterString(filterObject.FilterString); } } } } }
4. 上面列表插件注册到部门列表插件中
5. 运行结果,选择部门职能看到编码包含006的数据
赞 9
9人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读