using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using TX.DataAccess;
using TX.FrameWorks;
using LT.Production.DataAccess;
using Infragistics.Win.UltraWinGrid;
namespace LT.Production.FormLibraries
{
public partial class frmRightUserInfo : Form
{
SqlExecuteMaster sqlcon = new SqlExecuteMaster();
private DataTable dt1 = null;
public frmRightUserInfo()
{
InitializeComponent();
this.txMultiLanguage1.GetFormLanguage(this);
BindRoot();
BindUserCode();
}
private void BindGridView()
{
string strSql = "EXEC spG_RightUserDate @ActionType='Query8',@DBNo='" + GlobalVariables.UserInfo.DBNo + "',@UserCode='" + this.cmbUserCode.SelectedValue + "'";
dt1 = sqlcon.GetDataTable(strSql);
this.dgRightUserInfo.DataSource = dt1;
}
/// <summary>
/// 绑定用户信息
/// </summary>
private void BindUserCode()
{
string strSql = "EXEC spG_RightUserDate @ActionType='Query7',@DBNo='" + GlobalVariables.UserInfo.DBNo + "'";
DataTable dt = sqlcon.GetDataTable(strSql);
DataRow dr = dt.NewRow();
dr["UserName"] = "";
dr["UserCode"] = "";
dt.Rows.InsertAt(dr, 0);
this.cmbUserCode.DisplayMember = "UserName";
this.cmbUserCode.ValueMember = "UserCode";
this.cmbUserCode.DataSource = dt;
}
/// <summary>
/// 绑定树菜单
/// </summary>
private void BindRoot()
{
this.treeView1.Nodes.Clear();
string strSql = "EXEC spG_RightUserDate @ActionType='Query3',@DBNo='" + GlobalVariables.UserInfo.DBNo + "'";
DataTable dt = sqlcon.GetDataTable(strSql);
for (int i = 0; i < dt.Rows.Count; i++)
{
TreeNode rootNode = new TreeNode();
string partid = dt.Rows[i]["PartID"].ToString().Trim();
string partname = dt.Rows[i]["PartName1"].ToString().Trim();
rootNode.Name = partid;
rootNode.Text = partname;
treeView1.Nodes.Add(rootNode);
rootNode.ExpandAll();
string strSql2 = "EXEC spG_RightUserDate @ActionType='Query4',@PartID='" + partid + "'";
DataTable dt2 = sqlcon.GetDataTable(strSql2);
for (int c2 = 0; c2 < dt2.Rows.Count; c2++)
{
TreeNode rootNode2 = new TreeNode();
string partid2 = dt2.Rows[c2]["PartID2"].ToString().Trim();
string partname2 = dt2.Rows[c2]["PartName2"].ToString().Trim();
rootNode2.Name = partid2;
rootNode2.Text = partname2;
rootNode.Nodes.Add(rootNode2);
rootNode2.ExpandAll();
string strSql3 = "EXEC spG_RightUserDate @ActionType='Query5',@PartID2='" + partid2 + "'";
DataTable dt3 = sqlcon.GetDataTable(strSql3);
for (int c3 = 0; c3 < dt3.Rows.Count; c3++)
{
TreeNode rootNode3 = new TreeNode();
string partid3 = dt3.Rows[c3]["PartID3"].ToString().Trim();
string partname3 = dt3.Rows[c3]["PartName3"].ToString().Trim();
rootNode3.Name = partid3;
rootNode3.Text = partname3;
rootNode2.Nodes.Add(rootNode3);
string strSql4 = "EXEC spG_RightUserDate @ActionType='Query6',@PartID3='" + partid3 + "'";
DataTable dt4 = sqlcon.GetDataTable(strSql4);
for (int c4 = 0; c4 < dt4.Rows.Count; c4++)
{
TreeNode rootNode4 = new TreeNode();
string partid4 = dt4.Rows[c4]["PartID4"].ToString().Trim();
string partname4 = dt4.Rows[c4]["PartName4"].ToString().Trim();
rootNode4.Name = partid4;
rootNode4.Text = partname4;
rootNode3.Nodes.Add(rootNode4);
}
}
}
}
}
private void cmbUserCode_SelectedIndexChanged(object sender, EventArgs e)
{
this.Cursor = Cursors.WaitCursor; // 等待光标
BindGridView();
//清空所有节点
for (int i = 0; i < this.treeView1.Nodes.Count; i++)
{
CheckNode(this.treeView1.Nodes[i], false);
}
if (this.cmbUserCode.SelectedIndex > 0)
{
for (int i = 0; i < this.treeView1.Nodes.Count; i++)
{
GetNodeText2(this.treeView1.Nodes[i]);
}
}
this.Cursor = Cursors.Default; // 默认光标
}
private void CheckNode(TreeNode node, bool flag)
{
node.Checked = flag;
if (node.Nodes.Count != 0)
{
for (int i = 0; i < node.Nodes.Count; i++)
{
CheckNode(node.Nodes[i], flag);
}
}
}
private void GetNodeText2(TreeNode node)
{
if (node.Nodes.Count != 0)
{
for (int i = 0; i < node.Nodes.Count; i++)
{
for (int j = 0; j < dt1.Rows.Count; j++)
{
if (node.Nodes[i].Name.Trim() == dt1.Rows[j]["PartID"].ToString().Trim())
{
node.Nodes[i].Checked = true;
}
else
{
GetNodeText2(node.Nodes[i]);
}
}
}
}
}
string str = "";
private void cmdSave_Click(object sender, EventArgs e)
{
if (this.cmbUserCode.SelectedIndex > 0)
{
str = "";
for (int i = 0; i < this.treeView1.Nodes.Count; i++)
{
GetNodeText(this.treeView1.Nodes[i]);
}
string strSql = "EXEC spG_RightUserDate @ActionType='Add1',@UserCode='" + this.cmbUserCode.SelectedValue.ToString().Trim() + "',@Str='" + str.Trim() + "',@CreatedBy='" + GlobalVariables.UserInfo.UserCode + "',@DBNo='" + GlobalVariables.UserInfo.DBNo + "'";
if (sqlcon.ExecuteSql(strSql) > 0)
{
this.txMessenger1.Show(TX.Winforms.EnumFactory.MessengerEnum.MessageType.Info, this.txMultiLanguage1.GetMessageById(11));
BindGridView();
}
else
this.txMessenger1.Show(TX.Winforms.EnumFactory.MessengerEnum.MessageType.Info, this.txMultiLanguage1.GetMessageById(12));
}
else
this.txMessenger1.Show(TX.Winforms.EnumFactory.MessengerEnum.MessageType.Info, this.txMultiLanguage1.GetMessageById(124));
}
private void GetNodeText(TreeNode node)
{
if (node.Checked)
str += node.Name.Trim() + "&" + node.Text.Trim() + "^";
if (node.Nodes.Count != 0)
{
for (int i = 0; i < node.Nodes.Count; i++)
{
GetNodeText(node.Nodes[i]);
}
}
}
}
}
递归树节点的使用
最新推荐文章于 2024-07-22 19:06:27 发布