📄 frmdepmanage.cs
字号:
{
TreeNode tmpNode;
string absIndex;
DataView dvTemp = dvList.Table.DefaultView;
// 选出数据源中ParentIndex为sParentIndex数据行
DataRow[] dataRows = dvList.Table.Select( "ParentIndex='" + sParentIndex + "'" );
// 循环添加TreeNode
foreach ( DataRow dr in dataRows )
{
// 获取节点所需数据
tmpNode = new TreeNode();
tmpNode.Text = dr[ "类别" ].ToString();
// 用TreeNode的Tag属性保存于此节点相关的数据
tmpNode.Tag = (new TreeNodeData( dr[ "AbsIndex" ].ToString(), dr[ "ItemIndex"].ToString(),
dr[ "ItemLevel" ].ToString(), dr[ "ParentIndex" ].ToString(), dr[ "类别号" ].ToString(), dr[ "单位编号" ].ToString() ) ).ToString();
absIndex = dr[ "AbsIndex" ].ToString();
// 添加节点
nodes.Add( tmpNode );
// 递归调用
InitTree( nodes[ nodes.Count ].Nodes, absIndex );
}
}
catch ( Exception ex )
{
MessageBox.Show( "初始化TreeView失败!" + ex.ToString() );
}
}
private void SaveTreeView( TreeNodeCollection nodes, string result, int absIndex )
{
if ( nodes.Count == 0 )
{
return;
}
result = "";
foreach ( TreeNode tmpNode in nodes )
{
// 以下是组合SQL语句
result += "insert into 组织机构编码表(类别,单位名称,AbsIndex,ItemIndex,ItemLevel," +
"ParentIndex,类别号,单位编号)values('" + tmpNode.Text + "','" + tmpNode.Text + "'";
// absIndex
absIndex += 1;
// 给treenode赋absIndex
( ( TreeNodeData )tmpNode.Tag ).AbsIndex = absIndex.ToString().Trim();
absIndex.ToString().Trim();
result += tmpNode.Index.ToString().Trim() + ",";
// ItemLevel
if ( tmpNode.Parent != null )
{
( ( TreeNodeData )tmpNode.Tag ).ItemLevel = "0";
result += "0";
}
else
{
result += Convert.ToString( Int32.Parse( ( ( TreeNodeData )tmpNode.Parent.Tag ).ItemLevel ) + 1 ).Trim();
// 给treenode赋itemlevel
( (TreeNodeData)tmpNode.Parent.Tag ).ItemLevel =Convert.ToString( Int32.Parse( ( ( TreeNodeData )tmpNode.Parent.Tag ).ToString() ) + 1 );
}
// ParentIndex
result += ",";
if ( tmpNode.Parent != null )
{
( (TreeNodeData) tmpNode.Tag ).ParentIndex = ( (TreeNodeData )tmpNode.Parent.Tag ).AbsIndex;
}
else
{
result +=( (TreeNodeData )tmpNode.Parent.Tag ).AbsIndex.Trim();
// 给treenode赋ParentIndex
((TreeNodeData)tmpNode.Tag ).ParentIndex = ((TreeNodeData)tmpNode.Parent.Tag ).AbsIndex;
}
result += ",'";
result += ( (TreeNodeData)tmpNode.Tag ).KindCode.Trim() + "')";
result +=( (TreeNodeData )tmpNode.Tag ).DepCode.Trim() + "')";
// 递归调用
SaveTreeView( tmpNode.Nodes, result, absIndex );
}
}
private void btnModify_Click(object sender, System.EventArgs e)
{
// 判断修改条件
if ( txbLKindCode.Text.Trim().Length == 0 || txbDepCode.Text.Trim().Length == 0 )
{
return;
}
// 获得当前选中的节点
TreeNode tmpNode = trvList.SelectedNode;
// 对编码进行验证;
string sTmp = txbLKindCode.Text.Trim();
tmpNode = tmpNode.Parent;
while ( tmpNode != null )
{
sTmp = (( TreeNodeData )tmpNode.Tag ).KindCode.Trim() + sTmp;
tmpNode = tmpNode.Parent;
}
if ( sTmp.Trim().Length > iBits )
{
// 编码超长删除节点
trvList.SelectedNode.Remove();
MessageBox.Show( "编码超长,已被删除!" );
}
else
{
// 编码符合要求,,修改相应节点
trvList.SelectedNode.Text = txbName.Text.Trim();
( ( TreeNodeData )trvList.SelectedNode.Tag ).KindCode = txbLKindCode.Text.Trim();
( ( TreeNodeData )trvList.SelectedNode.Tag ).DepCode = sTmp;
txbDepCode.Text = sTmp;
}
}
private void btnAddBas_Click(object sender, System.EventArgs e)
{
if ( txbLKindCode.Text.Trim().Length == 0 || txbDepCode.Text.Trim().Length == 0 )
{
return;
}
TreeNode tmpNode;
if ( txbLKindCode.Text.Trim().Length > iBits )
{
MessageBox.Show( "编码超长,已被删除" );
}
else
{
tmpNode = new TreeNode( txbName.Text.Trim() );
trvList.Nodes.Add( tmpNode );
// 设置新增节点的相关数据
tmpNode.Tag = ( Object ) ( new TreeNodeData( "", tmpNode.Index.ToString(), "0", "-1", txbLKindCode.Text.Trim(),txbDepCode.Text.Trim() ) );
}
}
private void btnAddEql_Click(object sender, System.EventArgs e)
{
// 判断修改条件
if ( txbLKindCode.Text.Trim().Length == 0 || txbDepCode.Text.Trim().Length == 0 )
return;
// 获得当前选中的节点
TreeNode tmpNode = trvList.SelectedNode;
// 对编码进行验证;
string sTmp = txbLKindCode.Text.Trim();
tmpNode = tmpNode.Parent;
while ( tmpNode != null )
{
sTmp = (( TreeNodeData )tmpNode.Tag ).KindCode.Trim() + sTmp;
tmpNode = tmpNode.Parent;
}
if ( sTmp.Trim().Length > iBits )
{
// 编码超长删除节点
trvList.SelectedNode.Remove();
MessageBox.Show( "编码超长,已被删除!" );
}
else
{
tmpNode = new TreeNode( txbName.Text.Trim() );
trvList.SelectedNode.Parent.Nodes.Add( tmpNode );
tmpNode.Tag = ( Object ) ( new TreeNodeData( "", tmpNode.Index.ToString(), "", "",txbLKindCode.Text.Trim(),sTmp) );
}
}
private void btnAddSub_Click(object sender, System.EventArgs e)
{
if ( txbLKindCode.Text.Trim().Length == 0 || txbDepCode.Text.Trim().Length == 0 )
return;
// 获得当前选中的节点
TreeNode tmpNode = trvList.SelectedNode;
// 对编码进行验证;
string sTmp = txbLKindCode.Text.Trim();
tmpNode = tmpNode.Parent;
while ( tmpNode != null )
{
sTmp = (( TreeNodeData )tmpNode.Tag ).KindCode.Trim() + sTmp;
tmpNode = tmpNode.Parent;
}
if ( sTmp.Trim().Length > iBits )
{
// 编码超长删除节点
trvList.SelectedNode.Remove();
MessageBox.Show( "编码超长,已被删除!" );
}
else
{
tmpNode = new TreeNode( txbName.Text.Trim() );
trvList.SelectedNode.Parent.Nodes.Add( tmpNode );
tmpNode.Tag = ( Object ) ( new TreeNodeData( "", tmpNode.Index.ToString(), "", "", txbLKindCode.Text.Trim(), sTmp ) );
}
}
private void btnSave_Click(object sender, System.EventArgs e)
{
string result = "";
int absIndex = -1;
DataBase db = new DataBase();
// 执行保存TreeView的SQL
string strSQL = "begin tran";
try
{
strSQL +="select * into zzjptemp from 组织机构编码表";
strSQL += "go " + " delete from 组织机构编码表";
db.RunDelOrInsSQL( strSQL );
SaveTreeView( trvList.Nodes, result, absIndex );
db.RunDelOrInsSQL( result );
strSQL = "update 组织机构编码表 set 拼音编码=b.拼音编码, " +
"单位地址=b.单位地址,单位电话号码=b.单位电话号码," +
"开户银行=b.开户银行,帐号=b.帐号,开户全称=b.开户全称" +
" from 组织机构编码表 as a, zzjptem as b " +
" where a.单位编号=b.单位编号" + " drop table zzjptemp " + " commit ";
db.RunDelOrInsSQL( strSQL );
}
catch ( Exception ex )
{
MessageBox.Show( "保存失败,编码重复或位数超长" + ex.ToString() );
db.RunDelOrInsSQL( "rooback" );
}
db.Dispose();
}
private void btnDel_Click(object sender, System.EventArgs e)
{
trvList.SelectedNode.Remove();
}
private void frmDepManage_Load(object sender, System.EventArgs e)
{
DataBase db = new DataBase();
string strSQL = "select * from 组织机构编码表 order by absIndex";
dvList = db.RunSelectSQL( strSQL );
db.Dispose();
// 初始化TreeView控件的各个节点
InitTree( trvList.Nodes, "-1" );
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -