using System.Data; using System.Linq; using System.Windows.Forms; using Mesnac.Action.Base; using Mesnac.Codd.Session; namespace Mesnac.Action.Default.Purview { public class BindRole : DatabaseAction , IAction { public void Run( Controls.Base.IBaseControl sender , string design , string runtime ) { base.Run( sender ); base.LogDebug( "初始化绑定角色下拉列表" ); DbMCControl basRoleControl = this.GetDbMCControlByKey( DbType.local , "BasRole" ).FirstOrDefault(); if ( basRoleControl == null ) { base.LogError( "角色信息加载 缺少角色组合框控件..." ); return; } DbHelper dbhelper; if (!DbHelpers.TryGetValue(basRoleControl.DesignSource, out dbhelper)) { return; } dbhelper.ClearParameter(); dbhelper.CommandType = CommandType.Text; dbhelper.CommandText = "SELECT * FROM BasRole WHERE DeleteFlag='0';"; basRoleControl.BaseControl.BindDataSource = dbhelper.ToDataTable(); } } public class LoadFormPurview : DatabaseAction , IAction { public void Run( Controls.Base.IBaseControl sender , string design , string runtime ) { base.Run( sender ); base.LogDebug( "向树控件初始化加载窗体级权限..." ); DbMCControl basRolePurviewControl = this.GetDbMCControlByKey( DbType.local , "BasRolePurview" ).FirstOrDefault(); if ( basRolePurviewControl == null || typeof(TreeView).IsInstanceOfType(basRolePurviewControl.BaseControl) ) { base.LogError( "窗体级权限加载 缺少权限树形控件..." ); return; } DbHelper dbhelper; if ( !DbHelpers.TryGetValue( basRolePurviewControl.DesignSource , out dbhelper ) ) { return; } dbhelper.ClearParameter(); dbhelper.CommandType = CommandType.Text; dbhelper.CommandText = "SELECT * FROM BasForm WHERE DeleteFlag='0' ORDER BY FormText;"; DataTable dt = dbhelper.ToDataTable(); if ( dt == null ) { base.LogError( "窗体级权限加载 信息加载失败..." ); return; } TreeView tv = basRolePurviewControl.BaseControl as TreeView; FormPurview frmPur; TreeNode nodeL1; foreach ( DataRow dr in dt.Rows ) { frmPur = new FormPurview( dr[ "ObjID" ].ToString() , dr[ "FormName" ].ToString() , dr[ "FormText" ].ToString() , dr[ "FromType" ].ToString() ); nodeL1 = new TreeNode( frmPur.FormText ); nodeL1.Tag = frmPur; tv.Nodes.Add( nodeL1 ); } } } public class LoadFunctionPurview : DatabaseAction , IAction { public void Run( Controls.Base.IBaseControl sender , string design , string runtime ) { base.Run( sender ); base.LogDebug( "向树控件初始化加载控件级权限" ); DbMCControl basRolePurviewControl = this.GetDbMCControlByKey( DbType.local , "BasRolePurview" ).FirstOrDefault(); if ( basRolePurviewControl == null || typeof( TreeView ).IsInstanceOfType( basRolePurviewControl.BaseControl ) ) { base.LogError( "控件级权限加载 缺少权限树形控件..." ); return; } DbHelper dbhelper; if ( !DbHelpers.TryGetValue( basRolePurviewControl.DesignSource , out dbhelper ) ) { return; } dbhelper.ClearParameter(); dbhelper.CommandType = CommandType.Text; dbhelper.CommandText = "SELECT * FROM BasFormFunction WHERE DeleteFlag='0' ORDER BY FunctionText;"; DataTable dt = dbhelper.ToDataTable(); if ( dt == null ) { base.LogError( "控件级权限加载 信息加载失败..." ); return; } TreeView tv = basRolePurviewControl.BaseControl as TreeView; FormPurview frmPur; FunctionPurview funcPur; TreeNode nodeL2; foreach ( DataRow dr in dt.Rows ) { funcPur = new FunctionPurview( dr[ "ObjID" ].ToString() , dr[ "FormID" ].ToString() , dr[ "FunctionName" ].ToString() , dr[ "FunctionText" ].ToString() , dr[ "FunctionType" ].ToString() ); foreach(TreeNode nodeL1 in tv.Nodes) { frmPur = nodeL1.Tag as FormPurview; if ( frmPur.ObjID == funcPur.ObjID ) { nodeL2 = new TreeNode( funcPur.FunctionText ); nodeL2.Tag = funcPur; nodeL1.Nodes.Add( nodeL2 ); break; } } } } } public class InitPurview : DatabaseAction , IAction { public void Run( Controls.Base.IBaseControl sender , string design , string runtime ) { base.Run( sender ); base.LogDebug( "当班计划——窗体加载,即初始化操作" ); } } }