直接SQL报表设置数据权限
过滤条件中包含基础资料-客户,权限里设置了客户数据权限
希望数据源中获取客户的数据权限进行筛选
BeforeLoadReportData在这个方法中去解析数据源 增加数据权限,现在的问题是:调用 基础资料接口,数据规则不起作用
QueryBuilderParemeter queryParameter = new QueryBuilderParemeter();
queryParameter.FormId = "BD_Customer";
//获取业务对象字段名称
queryParameter.SelectItems = SelectorItemInfo.CreateItems("FNUMBER,FNAME".ToUpperInvariant());
queryParameter.RequiresDataPermission = true;//数据权限
queryParameter.IsDistincted = true;
//queryParameter.ParentFormId = "BGL_KHSALE";
queryParameter.PermissionItemId = PermissionConst.View;
queryParameter.FilterClauseWihtKey = ""; //报表过滤界面传递过来的与该基础资料相关的过滤条件
//var salerData = QueryServiceHelper.GetDataTable(this.Context, queryParameter);
DynamicObjectCollection salerData = QueryServiceHelper.GetDynamicObjectCollection(this.Context, queryParameter);
QueryServiceHelper.GetDynamicObjectCollection返回的结果集未缩小范围,请老师帮忙分析一下
图一:设置 了基础资料查看的数据权限
图二:设置 了直接SQL报表对应基础资料的数据权限
图三:过滤条件中的基础资料数据权限已经生效
推荐阅读