⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tree.java

📁 这个是我们做土地局的一个项目。感觉不错。欢迎下载
💻 JAVA
字号:
package huayi.xt.tree;
import java.sql.*;

import javax.servlet.*;

public class tree {
huayi.gg.dbConn.dbConn DBbean=new huayi.gg.dbConn.dbConn();
huayi.gg.checkhtml.checkhtml checkhtml=new huayi.gg.checkhtml.checkhtml();
String BMMC;

public void init(javax.servlet.jsp.JspWriter out,javax.servlet.http.HttpServletRequest request,javax.servlet.http.HttpServletResponse response,int lc[]) throws Exception {
out.println("<title>用jsp种树</title>");
dowith(out,request,response);
buildTree(out,0,0,lc);//初始调用
}

private void dowith(javax.servlet.jsp.JspWriter out,javax.servlet.http.HttpServletRequest request,javax.servlet.http.HttpServletResponse response) throws Exception
	{
 int id;
 //String pBMBH="";
 String ID="",BMBH="";
 String PID=request.getParameter("PID");
 if(PID==null||PID.equals(""))return; //如果没有当前部门,返回
 String action=new String(request.getParameter("action").getBytes("ISO-8859-1"));
 String BMMC=new String(request.getParameter("BMMC").getBytes("ISO-8859-1"));
 
 if(action.equals("添加部门"))  
	if(BMMC.equals(""))  //新添加部门名称为空则不操作
  		return;
     else{
	  BMMC=checkhtml.toHTMLString(BMMC);
	  boolean ok=true; 
	  String BB="";
	  String sql1="select BMMC from T_QYJGSB where PID="+PID;  //新添加部门不允许与兄弟部门同名
      ResultSet rs1=DBbean.executeQuery(sql1);
      while (rs1.next())
		  {BB=rs1.getString("BMMC");
		   if (BB.equals(BMMC)) {ok=false;break;}
     	  }
     if (!ok) {	response.sendRedirect("XT_JGSZ_tjcfts.jsp");}
	  else               //符合条件的部门添加入表T_QYJGSB及T_BMXXB
	{	
	/*	int parentid=Integer.parseInt(PID);
		String sql3="select BMBH from T_QYJGSB where id="+parentid;
        ResultSet rs3=DBbean.executeQuery(sql3);
		while (rs3.next())
		{
		pBMBH=rs3.getString("BMBH");
		}   */
		
		BMBH= DBbean.executeProcedure("BM");  //BMBH=create(pBMBH);
		DBbean.executeUpdate("insert into T_QYJGSB(PID,BMMC,BMBH) values('"+PID+"','"+BMMC+"','"+BMBH+"')");
        String CLSJ=getCurrentDate();
        DBbean.executeUpdate("insert into T_BMXXB(BMBH,BMMC,CLSJ) values('"+BMBH+"','"+BMMC+"','"+CLSJ +"')"); 
       }
	  }
else if(action.equals("删除部门")) 
		{
        id=Integer.parseInt(PID);
		 delete(id);
		 }
  	}

private void delete(int id) throws Exception
{
String sql3="select BMBH from T_QYJGSB where id="+id;
ResultSet rs3=DBbean.executeQuery(sql3);
while(rs3.next()) 
	{
   String BMBH=rs3.getString("BMBH");
   int n=DBbean.executeUpdate("delete from T_BMXXB where BMBH='"+BMBH+"'");
   	}
DBbean.executeUpdate("delete from T_QYJGSB where id="+id);
String sql="select * from T_QYJGSB where PID="+id; //删除id的所有子部门
ResultSet rs=DBbean.executeQuery(sql);
while(rs.next())
	delete(rs.getInt("id")); 
    	}

private void buildTree(javax.servlet.jsp.JspWriter out,int PID,int level,int lc[]) throws Exception
	{  // 注:PID为0表示根结点
level++;
ResultSet rs1=DBbean.executeQuery("select * from T_QYJGSB where PID="+PID+" order by id");
int count=0;   //count记录当前节点兄弟总数;
while(rs1.next()){count++;}
//out.print(count);
ResultSet rs=DBbean.executeQuery("select * from T_QYJGSB where PID="+PID+" order by id");
int turn=0;   //turn记录当前节点排行;
while(rs.next()) {
turn++;
if (turn==count) { lc[level]=1; } else { lc[level]=0; }  //lc数组作用:记录每个节点回溯到其起始祖先是否最后一个孩子,以决定画verline.gif或blank.gif或branch-end.gif
out.println("<nobr><div>");
for (int k=level+1;k<=14;k++) lc[k]=2;
for (int i=2;i<=level;i++)
	{if (lc[i]==0) { out.print("<img src=\"image/verline.gif\"> ");}
	   else {if(lc[i-1]==0) { out.print("<img src=\"image/verline.gif\"> ");}
		 else  if ((lc[i+1]!=1)&&(lc[i+1]!=0)) {  out.print("<img src=\"image/branch-end.gif\"> ");  }
		     else {out.print("<img src=\"image/blank.gif\"> ");}
			 }}
int a=rs.getInt("id");
String b=rs.getString("BMMC");
if(has_child(a)) {                   //非叶子节点情况
  if(level==1)                      //根结点
	  {out.print("<img alt=\"展开\" style=\"cursor:hand;\" onclick=\"myClick3('"+a+"');\" id=\"img"+a+"\" src=\"image/minus-begin.gif\"> ");} 
   else   if(lc[level]==1)                 //最后一个孩子
	{out.print("<img alt=\"展开\" style=\"cursor:hand;\" onclick=\"myClick2('"+a+"');\" id=\"img"+a+"\" src=\"image/plus-end.gif\"> ");} 
  else                             //非最后一个孩子
	{out.print("<img alt=\"展开\" style=\"cursor:hand;\" onclick=\"myClick('"+a+"');\" id=\"img"+a+"\" src=\"image/plus.gif\"> ");}

out.print("<img id=\"im"+a+"\" src=\"image/closedfold.gif\"> <span onclick=\"myClick1('"+a+"');\" style=\"cursor:default;\" id=\"span"+a+"\"><a href='XT_JGSZ_xx.jsp?id=" +a+"' target=iframe>"+b+"</a></span>");

if (level>=2)                 //初始页面时,2层以上部门隐藏
out.println("<div style=\"display:none;\" id=\"div"+a+"\">");
    else out.println("<div style=\"display:block;\" id=\"div"+a+"\">");
buildTree(out,a,level,lc); //递归调用
out.println("</div>");
} else                            //叶子节点情况
{ResultSet rs2=DBbean.executeQuery("select BMBH from T_QYJGSB where id="+a);
while(rs2.next()){String BMBH=rs2.getString("BMBH");
 if(level==1)                      //根结点
	  {out.print("<img src=\"image/minus-begin-only.gif\"> ");} 
   else  if(lc[level]==1)              //最后一个孩子
	{out.print("<img src=\"image/minus-end.gif\"> ");} 
   else                       //非最后一个孩子
 	 {out.print("<img src=\"image/minus.gif\"> ");}
out.print("<img src=\"image/globe.gif\"> <span onclick=\"myClick1('"+a+"');\" style=\"cursor:default;\" id=\"span"+a+"\"><a href='XT_JGSZ_xx.jsp?id=" +a+"' target=iframe>"+b+"</a></span>");}
	}
	out.println("</div></nobr>");
}
rs.close();
rs=null;
}

private boolean has_child(int PID) throws Exception { //判断PID节点是否有孩子
ResultSet rs=DBbean.executeQuery("select * from T_QYJGSB where PID="+PID+" order by id");
return rs.next();
}

public String getOption() throws Exception { // 得到下拉部门列表
String option="";
ResultSet rs=DBbean.executeQuery("select * from T_QYJGSB order by id");
while(rs.next())
 option+="<option value="+rs.getInt("id")+">"+rs.getString("BMMC")+"</option>\n";
return option;
}


private String getCurrentDate()//得到当前系统时间
{
    return (new java.text.SimpleDateFormat ("yyyy-MM-dd")).format(new java.util.Date()); 
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -