组织机构上下级同级用户以及数据权限控制|C/S框架网

查询上下级及同级用户以及数据权限控制适用CSFrameworkV4.x(企业版)、CSFrameworkV5.x(旗舰版)。
本文涵盖三个部分的详细设计,请下载附件的SQL脚本:
1. 制单人复选框加载数据源
2. 制单人复选框状态控制(禁用/可选)
3. 查询数据存储过程设计

四个系统特殊角色介绍:

SR_EnableCreatedBy:
制单人查询条件允许选择(多项勾选)。
SR_ViewSiblingDoc:
允许查看当前用户所在部门的所有用户的单据。适用于部门经理或主管。
SR_ViewSiblingAndChildDoc:
允许查看当前用户所在部门或子级部门用户的单据。适用于部门经理或主管。
SR_ViewSiblingDeptAllDoc:
允许查看所有同级部门及子部门单据,获取当前用户所在部门的同级部门以及子级部门的所有用户。



C# Code:
//获取当前用户所在组织架构的子级用户
DataTable dtUser = new bllPermission().GetChildUser(Loginer.CurrentUser.Account);
//绑定数据源
DataBinder.BindingCheckedComboBoxSource(txt_CreatedBy, dtUser, tb_MyUser.UserName, tb_MyUser.Account);
//控制制单人复选组件是否可用
txt_CreatedBy.EditValue = Loginer.CurrentUser.Account;
txt_CreatedBy.RefreshEditValue();
txt_CreatedBy.Enabled = Loginer.CurrentUser.IsAdmin() || new bllPermission().IsUserBelongRole(Loginer.CurrentUser.Account, "SR_EnableCreatedBy");
//来源:C/S框架网(www.csframework.com) QQ:23404761
//获取当前用户所在组织架构的子级用户
DataTable dtUser = new bllPermission().GetChildUser(Loginer.CurrentUser.Account);
//绑定数据源
DataBinder.BindingCheckedComboBoxSource(txt_CreatedBy, dtUser, tb_MyUser.UserName, tb_MyUser.Account);
//控制制单人复选组件是否可用
txt_CreatedBy.EditValue = Loginer.CurrentUser.Account;
txt_CreatedBy.RefreshEditValue();
txt_CreatedBy.Enabled = Loginer.CurrentUser.IsAdmin() || new bllPermission().IsUserBelongRole(Loginer.CurrentUser.Account, "SR_EnableCreatedBy");
//来源:C/S框架网(www.csframework.com) QQ:23404761
数据查询结果:

DAL层调用存储过程:
C# Code:
public DataTable Query(QueryPI P)
{
CommandHelper sp = _Database.CreateSqlProc("usp_PI_Query");
sp.AddParam("@DataSetID", DbType.String, _Loginer.DBID);
sp.AddParam("@Account", DbType.String, _Loginer.Account);
sp.AddParam("@CreatedBy", DbType.String, P.CreatedBy);
//-----------------------------------------------------------------
sp.AddParam("PINO", DbType.String, P.PINO);
sp.AddParam("DocDate", DbType.DateTime, ConvertEx.ToSqlDateTime(P.DocDate));
sp.AddParam("DocDateTo", DbType.DateTime, ConvertEx.ToSqlDateTime(P.DocDateTo));
sp.AddParam("CustomerCode", DbType.String, P.CustomerCode);
sp.AddParam("RefPONO", DbType.String, P.RefPONO);
sp.AddParam("Sales", DbType.String, P.Sales);
return _Database.GetTable(sp.Command, tb_PI.__TableName);
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
public DataTable Query(QueryPI P)
{
CommandHelper sp = _Database.CreateSqlProc("usp_PI_Query");
sp.AddParam("@DataSetID", DbType.String, _Loginer.DBID);
sp.AddParam("@Account", DbType.String, _Loginer.Account);
sp.AddParam("@CreatedBy", DbType.String, P.CreatedBy);
//-----------------------------------------------------------------
sp.AddParam("PINO", DbType.String, P.PINO);
sp.AddParam("DocDate", DbType.DateTime, ConvertEx.ToSqlDateTime(P.DocDate));
sp.AddParam("DocDateTo", DbType.DateTime, ConvertEx.ToSqlDateTime(P.DocDateTo));
sp.AddParam("CustomerCode", DbType.String, P.CustomerCode);
sp.AddParam("RefPONO", DbType.String, P.RefPONO);
sp.AddParam("Sales", DbType.String, P.Sales);
return _Database.GetTable(sp.Command, tb_PI.__TableName);
}
//来源:C/S框架网(www.csframework.com) QQ:23404761
请参考附件的存储过程:usp_PI_Query

其他说明:
1. 账套是否启用继承权限,tb_DataSet表的PermissionInherited=Y(Y-启用,N-不启用)
2. 数据查询存储过程必须定义3个固定参数(@DataSetID,@Account,@CreatedBy)请下载附件
3. 三个固定名称的特殊角色(SR_ViewSiblingDoc,SR_ViewSiblingAndChildDoc,SR_EnableCreatedBy)
关联文档:
Winform快速开发框架之权限系统设计(1)
Winform快速开发框架之权限系统设计(2) - 功能模块介绍
Winform快速开发框架之权限系统设计(3) - 功能按钮权限控制基本原理
VIP会员下载附件(上下级权限控制SP.rar)
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网