62,242
社区成员




USE [psBankOfChina]
GO
/****** 对象: Table [dbo].[PlaceInfo] 脚本日期: 03/25/2009 19:28:27 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[PlaceInfo](
[PlaceNo] [varchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,
[PlaceName] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[PlaceMemo] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
[Contact] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,
[Phone] [varchar](15) COLLATE Chinese_PRC_CI_AS NULL,
[ParentPlaceId] [varchar](10) COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT [PK_placeInfo] PRIMARY KEY CLUSTERED
(
[PlaceNo] ASC
) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="deptree.aspx.cs" Inherits="deptree" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>无标题页</title>
<%-- <link href="../Style/Basic.css" type="text/css" rel="stylesheet"/>--%>
</head>
<body alink="#0000ff" vlink="blue">
<form id="form1" runat="server">
<div>
<asp:ScriptManager id="ScriptManager1" runat="server">
</asp:ScriptManager>
<table cellpadding="0" cellspacing="0" width="100%" style=" border-color:#507CD1;">
<tr style="height:10px">
<td ></td>
</tr>
<tr>
<td background="images/admin_1bg.gif" style="height:35px;background-repeat: no-repeat">
<asp:Label ID="lbTop" runat="server" Width="100%" Font-Size="Small">机构管理</asp:Label> </td>
</tr>
<tr style="height:3px">
<td style="height: 3px" ></td>
</tr>
</table>
</div>
<div>
<asp:UpdatePanel id="UpdatePanel1" runat="server">
<contenttemplate>
<table style="width: 100%; height: 100%; border:1px; border-color: #507CD1; font-size:11pt;">
<tr>
<td style="width: 100%">
<table border="1" bordercolor="#507CD1" style="width: 100%; vertical-align: top; text-align: left; border:1px; border-color: #507CD1;">
<tr>
<td align="left" nowrap="nowrap" style="width:290px;">
</td>
<td>
<asp:Button ID="edit" runat="server" Text="编辑" OnClick="edit_Click" />
<asp:Button ID="delete" runat="server" Text="删除" OnClick="delete_Click" />
<asp:Button ID="addnew" runat="server" Text="新建" OnClick="addnew_Click" /></td>
</tr>
<tr>
<td nowrap="nowrap" style="text-align: center; height: 20px;width:290px;">
机构列表</td>
<td style="text-align: left; height: 20px;">
机构详细资料<asp:Label ID="ParentPlaceIDInLabel" runat="server" Text="Label" Visible="False"></asp:Label></td>
</tr>
<tr style="width: 100%; vertical-align: top; text-align: left;">
<td align="left" nowrap="nowrap" style="height:368px; width:290px;">
<asp:TreeView ID="TreeView1" runat="server" OnSelectedNodeChanged="TreeView1_SelectedNodeChanged">
</asp:TreeView>
</td>
<td style="width: 100%; height: 238px;">
<asp:Panel ID="Panel1" runat="server" Height="50px" Width="125px">
<table border="1" bordercolor="#507cd1" style="width: 400px; ">
<tr>
<td style="height: 26px" >
机构编号:</td>
<td style="height: 26px" >
<asp:TextBox ID="placeno" runat="server" ReadOnly="True" Width="220px"></asp:TextBox></td>
</tr>
<tr>
<td >
机构名称:</td>
<td >
<asp:TextBox ID="placename" runat="server" MaxLength="25" Width="219px"></asp:TextBox></td>
</tr>
<tr>
<td >
机构地址:</td>
<td >
<asp:TextBox ID="memo" runat="server" MaxLength="50" Width="219px"></asp:TextBox></td>
</tr>
<tr>
<td style="height: 26px" >
联系人:</td>
<td style="height: 26px" >
<asp:TextBox ID="contact" runat="server" Width="220px"></asp:TextBox></td>
</tr>
<tr>
<td >
联系电话:</td>
<td >
<asp:TextBox ID="phone" runat="server" MaxLength="15" Width="219px"></asp:TextBox></td>
</tr>
<tr>
<td >
上级机构:</td>
<td >
<asp:TextBox ID="parentPlaceName" runat="server" ReadOnly="True" Width="218px"></asp:TextBox></td>
</tr>
<tr>
<td style="text-align: center" colspan="2" >
<asp:Button ID="ok" runat="server" Text="确定" OnClick="ok_Click" />
<asp:Button ID="cancle" runat="server" Text="取消" OnClick="cancle_Click" /></td>
</tr>
</table>
</asp:Panel>
<asp:HiddenField ID="Hoperate" runat="server" Value="begin" />
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="width: 100%">
</td>
</tr>
<tr>
<td style="width: 100%; height: 21px;">
</td>
</tr>
</table>
</contenttemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>
protected void cancle_Click(object sender, EventArgs e)
{
TreeView1.Enabled = true;
delete.Enabled = true;
addnew.Enabled = true;
edit.Enabled = true;
Panel1.Enabled = false;
Hoperate.Value = "begin";//将操作命令回复到初始状态
}
protected void delete_Click(object sender, EventArgs e)
{
//如果用户没有选择节点,则出错误提示
if (placeno.Text == "")
{
ScriptManager.RegisterClientScriptBlock(UpdatePanel1, typeof(UpdatePanel), "CheckedBeforDelete", "alert('请选择一个机构再进行删除!');", true);
return;
}
//如果用户要删除下属机构非空的机构,则给出错误提示
if (TreeView1.SelectedNode.ChildNodes.Count != 0)
{
ScriptManager.RegisterClientScriptBlock(UpdatePanel1, typeof(UpdatePanel), "chkBeforDelParentNode", "alert('该机构有下属机构,请删除所有下属机构后再删除此机构!');", true);
return;
}
//操作命令设置为delete
Hoperate.Value = "delete";
//保存要删除的节点的placeno
ParentPlaceIDInLabel.Text = TreeView1.SelectedNode.Value.ToString();
//点“删除”的时候
TreeView1.Enabled = false;
delete.Enabled = false;
addnew.Enabled = false;
edit.Enabled = false;
Panel1.Enabled = true;
}
protected void addnew_Click(object sender, EventArgs e)
{
//如果用户没有选择节点,则出错误提示
if (placeno.Text == "")
{
ScriptManager.RegisterClientScriptBlock(UpdatePanel1, typeof(UpdatePanel), "CheckedBeforAdd", "alert('请选择要添加的机构的上级机构!');", true);
return;
}
//操作命令设置为:添加
//清空机构名称,机构编号、联系人、电话和地址:
placename.Text = "";
placeno.Text = "";
memo.Text = "";
phone.Text = "";
contact.Text = "";
parentPlaceName.Text = "";
//清空结束
//设置要添加节点的父节点为当前被选中的节点。
parentPlaceName.Text = TreeView1.SelectedNode.Text.ToString();
//设置要添加机构的机构编号和上级机构名称
string newid = "";//
//如果被选中节点无子节点,则直接把编号设置为该节点编号后加“01”,若有子节点,则取最大子节点编号,如果读取的编号的最后两位是'99',则报错。否则,把结果+1作为新节点的编号。
if (TreeView1.SelectedNode.ChildNodes.Count == 0)
{
placeno.Text = TreeView1.SelectedNode.Value.ToString() + "01";
}
//如果该节点有子节点,则从数据库中读取第一个空闲的机构编号
else
{
//获取空闲的第一个机构编号
int tmp = 0;
int tmp2 = 0;
string tmpstr = "", lastno = "";
SqlConnection getFreePNOCONN = new SqlConnection(ConfigurationManager.ConnectionStrings["iqmssup_bsConnectionString"].ConnectionString);
SqlCommand getFreePNOCMD = new SqlCommand("select placeno from placeinfo where parentplaceid ='" + TreeView1.SelectedNode.Value.ToString() + "' order by placeno asc", getFreePNOCONN);
getFreePNOCONN.Open();
SqlDataReader rdFreePNO = getFreePNOCMD.ExecuteReader();
while (rdFreePNO.Read())
{
tmpstr = rdFreePNO[0].ToString().Trim().Remove(0, TreeView1.SelectedNode.Value.ToString().Length);
tmp2 = int.Parse(tmpstr);
tmp++;
if (tmp != tmp2)
break;
}
rdFreePNO.Close();
getFreePNOCONN.Close();
if (tmp == 99)
{
ScriptManager.RegisterClientScriptBlock(UpdatePanel1, typeof(UpdatePanel), "MaxPlaceNoIsEndError", "alert('系统错误!\r机构编号已经超过最大值:“99”,\r请联系技术人员对数据库里的机构编号进行调整!');", true);
return;
}
if (tmp == tmp2)
tmp++;
lastno = tmp.ToString();
if (tmp < 10)
lastno = "0" + tmp.ToString();
//获取空闲的第一个机构编号结束
placeno.Text = TreeView1.SelectedNode.Value.ToString() + lastno;
}//end of else
ParentPlaceIDInLabel.Text = TreeView1.SelectedNode.Value.ToString();
//检查placeno的合法性
if (placeno.Text.ToString().Trim() == "" || ParentPlaceIDInLabel.Text.ToString().Trim()=="" || (!(placeno.Text.ToString().Trim().StartsWith(TreeView1.SelectedNode.Value.ToString()))))
{
ScriptManager.RegisterClientScriptBlock(UpdatePanel1, typeof(UpdatePanel), "PlacenoErrorBeforAdd", "alert('机构编号错误,请返回重新添加!');", true);
return;
}
//点“新建”的时候
TreeView1.Enabled = false;
delete.Enabled = false;
addnew.Enabled = false;
edit.Enabled = false;
Panel1.Enabled = true;
Hoperate.Value = "add";
}
}
protected void edit_Click(object sender, EventArgs e)
{
if (placeno.Text == "")
{
ScriptManager.RegisterClientScriptBlock(UpdatePanel1, typeof(UpdatePanel), "PLSChecked", "alert('请选择一个机构再进行编辑!');", true);
return;
}
//点“编辑”的时候
TreeView1.Enabled = false;
delete.Enabled = false;
addnew.Enabled = false;
edit.Enabled = false;
Panel1.Enabled = true;
Hoperate.Value = "edit";//告诉ok按钮:要进行的是编辑操作
}
protected void ok_Click(object sender, EventArgs e)
{
//定义变量,用来执行数据库操作
SqlConnection execconn = new SqlConnection(ConfigurationManager.ConnectionStrings["iqmsSup_BSConnectionString"].ConnectionString.ToString());
string execcmdtxt = "";
//根据Hoperate.Value判断要进行何种操作
if (Hoperate.Value == "add")
{
//执行添加操作
//已经在客户端检查用户输入的合法性
//检查机构名称是否为空
if (placename.Text.ToString().Trim() == "")
{
ScriptManager.RegisterClientScriptBlock(UpdatePanel1, typeof(UpdatePanel), "CheckPName", "alert('请填写机构名称!');", true);
Panel1.Enabled = true;//如果不加这一句,则弹出提示之后就各个控件都不可用
return;
}
else
execcmdtxt = "insert into placeinfo (placeno,placename,placememo,contact,phone,parentplaceid) values ('" + placeno.Text.ToString().Trim() + "','" + placename.Text.ToString().Trim() + "','" + memo.Text.ToString().Trim() + "','" + contact.Text.ToString().Trim() + "','" + phone.Text.ToString().Trim() + "','" +ParentPlaceIDInLabel.Text.ToString()+ "')";
}//执行添加操作结束
else
if (Hoperate.Value == "edit")
{
//执行编辑操作
//如果机构名称为空,则给出错误提示
if (placename.Text.ToString() == "")
{
ScriptManager.RegisterClientScriptBlock(UpdatePanel1, typeof(UpdatePanel), "CheckPNameBeforEdit", "alert('请填写机构名称!');", true);
Panel1.Enabled = true;//如果不加这一句,则弹出提示之后就各个控件都不可用
return;
}
else
execcmdtxt = "update placeinfo set placename='" + placename.Text.ToString().Trim() + "',placememo='" + memo.Text.ToString().Trim() + "',contact='" + contact.Text.ToString().Trim() + "',phone='"+phone.Text.ToString().Trim()+"' where placeno='"+placeno.Text.ToString()+"'";
} //执行编辑操作结束
else
if (Hoperate.Value == "delete")
{
//执行删除操作
execcmdtxt = "delete from placeinfo where placeno='"+ParentPlaceIDInLabel.Text.ToString()+"'";
}//执行删除操作结束
else
{
//如果既不是“新建”也不是“修改”也不是“删除”的话,则报错
ScriptManager.RegisterClientScriptBlock(UpdatePanel1, typeof(UpdatePanel), "OperateError", "alert('系统错误!');", true);
return;
}
//执行数据库操作
if (execcmdtxt == "")
{
ParentPlaceIDInLabel.Text = "";//清空临时label的值
return;
}
else
{
try
{
execconn.Open();
SqlCommand execcmd = new SqlCommand(execcmdtxt, execconn);
execcmd.ExecuteNonQuery();
}
catch (Exception ex2)
{
throw new Exception(ex2.Message + "%SQLtxt" + execcmdtxt + "%UserName" + Session["UserID"].ToString());
}
finally
{
execconn.Close();
CommonExecute.MakeLog(Session["UserID"].ToString(), execcmdtxt, Hoperate.Value);//添加日志记录
ParentPlaceIDInLabel.Text = "";//清空临时label的值
}
}
//给出操作成功提示
ScriptManager.RegisterClientScriptBlock(UpdatePanel1, typeof(UpdatePanel), "execSucess", "alert('操作成功!');", true);
//设置各控件的可用性
TreeView1.Enabled = true;
delete.Enabled = true;
addnew.Enabled = true;
edit.Enabled = true;
Panel1.Enabled = false;
Hoperate.Value = "begin";//将操作命令回复到初始状态
//刷新树
SqlConnection conn2 = new SqlConnection(ConfigurationManager.ConnectionStrings["iqmssup_bsConnectionString"].ToString());
SqlCommand cmd2 = new SqlCommand("select placeno,placename,parentplaceid from placeinfo where placeno like '" + Session["UserNamePlaceIDLike"].ToString() + "'", conn2);
SqlDataAdapter sad = new SqlDataAdapter(cmd2);
ds.Clear();//清空dataset
sad.Fill(ds);//填充dataset
TreeView1.Nodes.Clear();//清空树结构
AddNode(Session["UserNameParentPlaceID"].ToString(), (TreeNode)null, TreeView1);
TreeView1.ExpandAll();//展开所有的节点
//清空机构名称,机构编号、联系人、电话和地址:
placename.Text = "";
placeno.Text = "";
memo.Text = "";
phone.Text = "";
contact.Text = "";
parentPlaceName.Text = "";
//清空结束
}
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
placeno.Text = "";
placename.Text = "";
memo.Text = "";
contact.Text = "";
phone.Text = "";
parentPlaceName.Text = "";
//填充数据
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["iqmssup_bsConnectionString"].ToString());
SqlCommand cmd = new SqlCommand("select * from placeinfo where placeno='" + TreeView1.SelectedNode.Value.ToString() + "'", conn);
try
{
conn.Open();
SqlDataReader rdPlaceInfo = cmd.ExecuteReader();
while (rdPlaceInfo.Read())
{
placeno.Text = rdPlaceInfo["placeno"].ToString();
placename.Text = rdPlaceInfo["placename"].ToString();
memo.Text = rdPlaceInfo["placememo"].ToString();
contact.Text = rdPlaceInfo["contact"].ToString();
phone.Text = rdPlaceInfo["phone"].ToString();
}
}
catch (Exception e2)
{
throw new Exception(e2.Message + "%SQLtxt" + cmd.CommandText + "%UserName" + Session["UserID"].ToString());
}
finally
{
conn.Close();
}
SqlCommand cmd2 = new SqlCommand("select placename from placeinfo where placeno = (select parentplaceid from placeinfo where placeno='" + TreeView1.SelectedNode.Value.ToString() + "')", conn);
try
{
conn.Open();
SqlDataReader rdparentplaccename = cmd2.ExecuteReader();
while (rdparentplaccename.Read())
{
if (rdparentplaccename["placename"] == null)
{
return;
}
else
{
parentPlaceName.Text = rdparentplaccename["placename"].ToString();
}
}
}
catch (Exception e2)
{
throw new Exception(e2.Message + "%SQLtxt" + cmd2.CommandText + "%UserName" + Session["UserID"].ToString());
}
finally
{
conn.Close();
}
}
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class deptree : System.Web.UI.Page
{
DataSet ds = new DataSet();
protected void Page_Load(object sender, EventArgs e)
{
if (Session["UserName"] == null || Session["LogState"] == null)
{
Response.Redirect("error.aspx?id=1");
}
//如果用户不是机构管理员,则不能进行此项操作
if (Session["UserTYpe"].ToString() != "2")
Response.Redirect("error.aspx?id=3");
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["iqmssup_bsConnectionString"].ToString());
SqlCommand cmd = new SqlCommand("select placeno,placename,parentplaceid from placeinfo where placeno like '" + Session["UserNamePlaceIDLike"].ToString() + "'", conn);
SqlDataAdapter sad = new SqlDataAdapter(cmd);
sad.Fill(ds);
if (!IsPostBack)
{
AddNode(Session["UserNameParentPlaceID"].ToString(), (TreeNode)null, TreeView1);//应将此处的父节点编号替换为用户所在机构的上级机构的编号
}
Panel1.Enabled = false;
}
protected void AddNode(string ParentKey, TreeNode pNode, TreeView myTreeView)
{
DataView dvTree = new DataView(ds.Tables[0]);
dvTree.RowFilter = "[ParentplaceID] = " + ParentKey; //过滤ParentID,得到所有子节点
foreach (DataRowView Row in dvTree)
{
TreeNode Node = new TreeNode();
if (pNode == null)
{
Node.Text = Row["placeName"].ToString().Trim();
myTreeView.Nodes.Add(Node);
//Node.Expanded = true;
Node.Value = Row["placeno"].ToString().Trim();
Node.SelectAction = TreeNodeSelectAction.Select;
AddNode(Row["placeno"].ToString(), Node, myTreeView); //递归调用生成节点
}
else
{
Node.Text = Row["placename"].ToString().Trim();
pNode.ChildNodes.Add(Node);
Node.Expanded = true;
Node.Value = Row["placeno"].ToString().Trim();
Node.SelectAction = TreeNodeSelectAction.Select;
AddNode(Row["placeno"].ToString(), Node, myTreeView); //递归生成节点
}
}
}