📄 fjsyhwhgj.cs
字号:
}
}
catch (Exception ex)
{
MessageBox.Show("创建应用信息分类发生异常:" + ex.Message);
}
finally
{
if (dsYyXx != null)
dsYyXx.Dispose();
tvwYyXx.EndUpdate();
}
}
#endregion
#region TabControl的选择事件
private void TabControlJsQx_SelectedIndexChanged(object sender, EventArgs e)
{
if (m_TabControlSelected == true)
{
//创建应用信息分类
CreateYyXx();
m_TabControlSelected = false;
}
}
#endregion
#region treeview的选择事件
private void tvwYyXx_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
string yycdId = e.Node.Tag.ToString();
//初始化应用菜单分类
TreeNode rootNode = new TreeNode();
try
{
m_YyCdXz = false;
InitJsCd(yycdId, m_JsId);
tvwYyCd.BeginUpdate();
tvwYyCd.Nodes.Clear();
tvwYyCd.CheckBoxes = true;
this.CreateYyCd(rootNode, yycdId);
}
catch (Exception ex)
{
MessageBox.Show("初始化应用菜单分类发生异常:" + ex.Message);
}
finally
{
tvwYyCd.EndUpdate();
m_YyCdXz = true;
}
}
#endregion
#region 初始化应用菜单
private void InitYyCd()
{
try
{
DbProxyClient proxy = new DbProxyClient();
m_DsYyCd = new QDataStore();
//数据源
m_DsYyCd.LibraryList = PBL.GyPbl;
m_DsYyCd.DataWindowObject = GyDataObjects.d_Gy_JsWh_YyCd;
proxy.Clear();
proxy.Retrieve(m_DsYyCd);
//排序
m_DsYyCd.SetSort("PXXH");
m_DsYyCd.Sort();
}
catch (Exception ex)
{
MessageBox.Show("初始化应用菜单发生异常:" + ex.Message);
}
}
#endregion
#region 关闭窗口事件
private void FJsYhWhGj_FormClosed(object sender, FormClosedEventArgs e)
{
if (m_DsYyCd != null)
m_DsYyCd.Dispose();
if (m_DsJsCd != null)
m_DsJsCd.Dispose();
}
#endregion
#region 创建应用菜单分类
private void CreateYyCd(TreeNode ParentNode, string yycdId)
{
string cdId = "";
string cdWz = "";
int findRow = 0;
TreeNode node;
int rowCount = m_DsYyCd.RowCount;
if (ParentNode.Text == "")
{
findRow = m_DsYyCd.FindRow("YYID ='" + yycdId + "' and SJCDID = '0'", 1, rowCount);
}
else
{
findRow = m_DsYyCd.FindRow("SJCDID ='" + yycdId + "'", 1, rowCount);
}
while (findRow > 0)
{
cdId = m_DsYyCd.GetItemString(findRow, "CDID");
cdWz = m_DsYyCd.GetItemString(findRow, "CDWZ");
if (ParentNode.Text == "")
{
//增加节点
TreeNode rootNode = tvwYyCd.Nodes.Add(cdId, cdWz);
rootNode.ImageKey = QTreeView.ImageKeyEnum.Level1_Close.ToString();
rootNode.SelectedImageKey = QTreeView.ImageKeyEnum.Level1_Open.ToString();
rootNode.Tag = cdId;
CheckedJsCd(rootNode, cdId);
CreateYyCd(rootNode, cdId);
rootNode.Expand();
}
else
{
//增加节点
node = ParentNode.Nodes.Add(cdId, cdWz);
if (node.Level == 1)
{
node.ImageKey = QTreeView.ImageKeyEnum.Level2_Close.ToString();
node.SelectedImageKey = QTreeView.ImageKeyEnum.Level2_Open.ToString();
}
else
{
node.ImageKey = QTreeView.ImageKeyEnum.Level3_Close.ToString();
node.SelectedImageKey = QTreeView.ImageKeyEnum.Level3_Open.ToString();
}
node.Tag = cdId;
CheckedJsCd(node, cdId);
CreateYyCd(node, cdId);
node.Expand();
}
if (findRow >= rowCount)
break;
//继续查找
if (ParentNode.Text == "")
{
findRow = m_DsYyCd.FindRow("YYID ='" + yycdId + "' and SJCDID = '0'", findRow + 1, rowCount);
}
else
{
findRow = m_DsYyCd.FindRow("SJCDID ='" + yycdId + "'", findRow + 1, rowCount);
}
}
}
#endregion
#region 初始化角色所拥有菜单列表
private void InitJsCd(string yyid, string jsid)
{
try
{
if (m_DsJsCd != null)
m_DsJsCd.Dispose();
DbProxyClient proxy = new DbProxyClient();
m_DsJsCd = new QDataStore();
//数据源
m_DsJsCd.LibraryList = PBL.GyPbl;
m_DsJsCd.DataWindowObject = GyDataObjects.d_Gy_JsWh_JsCd;
proxy.Clear();
proxy.AddRetrieveParam(":p_jsid", jsid);
proxy.AddRetrieveParam(":p_yyid", yyid);
proxy.Retrieve(m_DsJsCd);
//排序
m_DsJsCd.SetSort("cdId");
m_DsJsCd.Sort();
}
catch (Exception ex)
{
MessageBox.Show("初始化应用菜单发生异常:" + ex.Message);
}
}
#endregion
#region 判断是否要在treeview的checkbox上打勾
private void CheckedJsCd(TreeNode node, string cdId)
{
//查找该用户是否拥有些菜单权限(有则打勾)
if (m_DsJsCd.FindRow("cdId = '" + cdId + "'", 1, m_DsJsCd.RowCount) > 0)
{
node.Checked = true;
}
else
{
node.Checked = false;
}
}
#endregion
#region treeview中checkbox的选择事件
private void tvwYyCd_AfterCheck(object sender, System.Windows.Forms.TreeViewEventArgs e)
{
if (m_YyCdXz == true)
{
BTsave.Enabled = true;
}
//子节点选中后自动将其父节点选中
selectParentNode(e.Node);
//父节点取消选择后自动将其子节点取消选择
foreach (TreeNode node in e.Node.Nodes)
{
if (!e.Node.Checked)
node.Checked = e.Node.Checked;
}
}
#endregion
#region 角色菜单的数据更新
private void UpdateJsCd()
{
foreach(TreeNode node in tvwYyCd.Nodes)
{
getTreeNode(node);
}
try
{
DbProxyClient proxy = App.DbProxy;
proxy.Clear();
proxy.AddDataWindow(this.m_DsJsQx);
proxy.Update();
BTsave.Enabled = false;
}
catch (Exception ex)
{
MessageBox.Show("角色菜单数据更新时发生异常:" + ex.Message, MsgTitle.Error);
}
}
#endregion
#region 检查此菜单在此角色是否已存在
private bool IsExist(string cdId, ref int findRow)
{
int rowCount = m_DsJsQx.RowCount;
findRow = m_DsJsQx.FindRow("CDID ='" + cdId + "' and JSID='" + m_JsId + "'", 1, rowCount);
if (findRow > 0)
return true;
else
return false;
}
#endregion
#region 初始化角色权限
private void InitJsQx()
{
try
{
if (m_DsJsQx != null)
m_DsJsQx.Dispose();
DbProxyClient proxy = new DbProxyClient();
m_DsJsQx = new QDataStore();
//数据源
m_DsJsQx.LibraryList = PBL.GyPbl;
m_DsJsQx.DataWindowObject = GyDataObjects.d_Gy_JsWh_JsQx;
proxy.Clear();
proxy.Retrieve(m_DsJsQx);
}
catch (Exception ex)
{
MessageBox.Show("初始化角色权限发生异常:" + ex.Message);
}
}
#endregion
#region 遍历树菜单
private void getTreeNode(TreeNode node)
{
string cdId = "";
int rowNumber = 0;
cdId = node.Tag.ToString();
bool isExist;
try
{
isExist = IsExist(cdId, ref rowNumber);
}
catch(Exception ex)
{
MessageBox.Show("检查此菜单在此角色是否已存在时出现异常" + ex.Message);
return;
}
if (node.Checked)
{
//检查此菜单在此角色是否已存在
if (!isExist)
{
rowNumber = m_DsJsQx.InsertRow(0);
m_DsJsQx.SetItemString(rowNumber, "JSID", m_JsId);
m_DsJsQx.SetItemString(rowNumber, "CDID", cdId);
}
}
else
{
//检查此菜单在此角色是否已存在
if (isExist)
{
m_DsJsQx.DeleteRow(rowNumber);
}
}
//处理子节点
if (node.Nodes.Count>0)
{
foreach (TreeNode nn in node.Nodes)
{
getTreeNode(nn);
}
}
}
#endregion
#region 子节点选中后自动将其父节点选中
private void selectParentNode(TreeNode node)
{
TreeNode pNode;
if (node.Parent is TreeNode)
{
pNode = node.Parent;
if (node.Checked)
pNode.Checked = true;
selectParentNode(pNode);
}
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -