我就是这样做的啊, 你看看 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '在此处放置初始化页的用户代码 Dim src = Server.UrlDecode(Trim(Request.QueryString("src"))) If src = "" Then Response.Write("<script language=javascript>alert('错误,参数不能为空');window.close();</script>") Response.End() End If Dim type = Server.UrlDecode(Trim(Request.QueryString("type"))) Dim SqlCmd = "select * from 设备检修计划表 where 检修计划名称='" & src & "'" DeviceConnection.Open() Dim ada As New SqlClient.SqlDataAdapter(SqlCmd, DeviceConnection) Dim dts As New Data.DataSet() ada.Fill(dts, "设备检修计划表") Response.ContentEncoding = System.Text.Encoding.Default Response.Write("<?xml version='1.0' encoding='GB2312' ?>") 'If dts.Tables(0).Rows.Count = 0 Then 'Response.Write("<TREENODES><TREENODE TEXT='没有检修计划'/></TREENODES>") 'Response.End() 'End If Response.Write("<TREENODES>") Response.Write("<TREENODE TEXT='炼油设备部<FONT color=red>(" & dts.Tables(0).Rows.Count & "个)</FONT>'>") DeviceConnection.Close() If dts.Tables(0).Rows.Count <> 0 Then If type = "1" Then read_xml() Else read_xml1() End If End If Response.Write("</TREENODE>") Response.Write("</TREENODES>") End Sub '############################################## '按照部门生成xml '############################################## Sub read_xml() Dim reader As New System.Xml.XPath.XPathDocument(Server.MapPath("..") & "//settings//xml//设备参数范围.xml") Dim objnav As System.Xml.XPath.XPathNavigator = reader.CreateNavigator Dim objite As System.Xml.XPath.XPathNodeIterator = objnav.Select("descendant::设备参数范围/设备信息主表/部门/name") While objite.MoveNext Dim SqlCmd = "select 设备信息主表.设备名称,设备信息主表.部门 from 设备信息主表,设备检修计划表 where 设备检修计划表.检修计划名称='" & Trim(Request.QueryString("src")) & "' and 设备信息主表.设备工艺编号=设备检修计划表.设备工艺编号 and 设备信息主表.部门='" & objite.Current.Value & "'" DeviceConnection.Open() Dim ada As New SqlClient.SqlDataAdapter(SqlCmd, DeviceConnection) Dim dts As New Data.DataSet() ada.Fill(dts, "部门表") DeviceConnection.Close() If dts.Tables(0).Rows.Count <> 0 Then Response.Write("<TREENODE TEXT='" & objite.Current.Value & "<font color=maroon>(" & dts.Tables(0).Rows.Count & ")</font>'>") Dim objite1 As System.Xml.XPath.XPathNodeIterator = objnav.Select("descendant::设备参数范围/设备信息主表/设备大类/name") While objite1.MoveNext Dim SqlCmd1 = "select 设备信息主表.设备名称,设备信息主表.部门,设备检修计划表.检修任务,设备检修计划表.id from 设备信息主表,设备检修计划表 where 设备检修计划表.检修计划名称='" & Trim(Request.QueryString("src")) & "' and 设备信息主表.设备工艺编号=设备检修计划表.设备工艺编号 and 设备信息主表.部门='" & objite.Current.Value & "' and 设备信息主表.设备大类='" & objite1.Current.Value & "' order by 设备信息主表.设备名称" DeviceConnection.Open() Dim ada1 As New SqlClient.SqlDataAdapter(SqlCmd1, DeviceConnection) Dim dts1 As New Data.DataSet() ada1.Fill(dts1, "部门表") DeviceConnection.Close() If dts1.Tables(0).Rows.Count > 0 Then Response.Write("<TREENODE TEXT='" & objite1.Current.Value & "<font color=blue>(" & dts1.Tables(0).Rows.Count & ")</font>'>") Dim j For j = 0 To dts1.Tables(0).Rows.Count - 1 Response.Write("<TREENODE TEXT='" & Trim(dts1.Tables(0).Rows(j).Item("设备名称")) & "(" & Trim(dts1.Tables(0).Rows(j).Item("检修任务")) & ")' ID='a" & Trim(dts1.Tables(0).Rows(j).Item("id")) & "'/>") Next Response.Write("</TREENODE>") End If End While Response.Write("</TREENODE>") End If End While End Sub '############################################## '按照设备分类生成xml '############################################## Sub read_xml1() Dim reader As New System.Xml.XPath.XPathDocument(Server.MapPath("..") & "//settings//xml//设备参数范围.xml") Dim objnav As System.Xml.XPath.XPathNavigator = reader.CreateNavigator Dim objite As System.Xml.XPath.XPathNodeIterator = objnav.Select("descendant::设备参数范围/设备信息主表/设备大类/name") While objite.MoveNext Dim SqlCmd = "select 设备信息主表.设备名称,设备信息主表.部门 from 设备信息主表,设备检修计划表 where 设备检修计划表.检修计划名称='" & Trim(Request.QueryString("src")) & "' and 设备信息主表.设备工艺编号=设备检修计划表.设备工艺编号 and 设备信息主表.设备大类='" & objite.Current.Value & "'" DeviceConnection.Open() Dim ada As New SqlClient.SqlDataAdapter(SqlCmd, DeviceConnection) Dim dts As New Data.DataSet() ada.Fill(dts, "部门表") DeviceConnection.Close() If dts.Tables(0).Rows.Count <> 0 Then Response.Write("<TREENODE TEXT='" & objite.Current.Value & "<font color=maroon>(" & dts.Tables(0).Rows.Count & ")</font>'>") Dim objite1 As System.Xml.XPath.XPathNodeIterator = objnav.Select("descendant::设备参数范围/设备信息主表/部门/name") While objite1.MoveNext Dim SqlCmd1 = "select 设备信息主表.设备名称,设备信息主表.部门,设备检修计划表.检修任务,设备检修计划表.id from 设备信息主表,设备检修计划表 where 设备检修计划表.检修计划名称='" & Trim(Request.QueryString("src")) & "' and 设备信息主表.设备工艺编号=设备检修计划表.设备工艺编号 and 设备信息主表.设备大类='" & objite.Current.Value & "' and 设备信息主表.部门='" & objite1.Current.Value & "' order by 设备信息主表.设备名称" DeviceConnection.Open() Dim ada1 As New SqlClient.SqlDataAdapter(SqlCmd1, DeviceConnection) Dim dts1 As New Data.DataSet() ada1.Fill(dts1, "部门表") DeviceConnection.Close() If dts1.Tables(0).Rows.Count > 0 Then Response.Write("<TREENODE TEXT='" & objite1.Current.Value & "<font color=blue>(" & dts1.Tables(0).Rows.Count & ")</font>'>") Dim j For j = 0 To dts1.Tables(0).Rows.Count - 1 Response.Write("<TREENODE TEXT='" & Trim(dts1.Tables(0).Rows(j).Item("设备名称")) & "(" & Trim(dts1.Tables(0).Rows(j).Item("检修任务")) & ")' ID='a" & Trim(dts1.Tables(0).Rows(j).Item("id")) & "'/>") Next Response.Write("</TREENODE>") End If End While Response.Write("</TREENODE>") End If End While End Sub
你看看
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
Dim src = Server.UrlDecode(Trim(Request.QueryString("src"))) If src = "" Then
Response.Write("<script language=javascript>alert('错误,参数不能为空');window.close();</script>")
Response.End()
End If
Dim type = Server.UrlDecode(Trim(Request.QueryString("type")))
Dim SqlCmd = "select * from 设备检修计划表 where 检修计划名称='" & src & "'"
DeviceConnection.Open()
Dim ada As New SqlClient.SqlDataAdapter(SqlCmd, DeviceConnection)
Dim dts As New Data.DataSet()
ada.Fill(dts, "设备检修计划表")
Response.ContentEncoding = System.Text.Encoding.Default
Response.Write("<?xml version='1.0' encoding='GB2312' ?>")
'If dts.Tables(0).Rows.Count = 0 Then
'Response.Write("<TREENODES><TREENODE TEXT='没有检修计划'/></TREENODES>")
'Response.End()
'End If
Response.Write("<TREENODES>")
Response.Write("<TREENODE TEXT='炼油设备部<FONT color=red>(" & dts.Tables(0).Rows.Count & "个)</FONT>'>")
DeviceConnection.Close()
If dts.Tables(0).Rows.Count <> 0 Then
If type = "1" Then
read_xml()
Else
read_xml1()
End If
End If
Response.Write("</TREENODE>")
Response.Write("</TREENODES>")
End Sub
'##############################################
'按照部门生成xml
'##############################################
Sub read_xml()
Dim reader As New System.Xml.XPath.XPathDocument(Server.MapPath("..") & "//settings//xml//设备参数范围.xml")
Dim objnav As System.Xml.XPath.XPathNavigator = reader.CreateNavigator
Dim objite As System.Xml.XPath.XPathNodeIterator = objnav.Select("descendant::设备参数范围/设备信息主表/部门/name") While objite.MoveNext
Dim SqlCmd = "select 设备信息主表.设备名称,设备信息主表.部门 from 设备信息主表,设备检修计划表 where 设备检修计划表.检修计划名称='" & Trim(Request.QueryString("src")) & "' and 设备信息主表.设备工艺编号=设备检修计划表.设备工艺编号 and 设备信息主表.部门='" & objite.Current.Value & "'"
DeviceConnection.Open()
Dim ada As New SqlClient.SqlDataAdapter(SqlCmd, DeviceConnection)
Dim dts As New Data.DataSet()
ada.Fill(dts, "部门表")
DeviceConnection.Close()
If dts.Tables(0).Rows.Count <> 0 Then
Response.Write("<TREENODE TEXT='" & objite.Current.Value & "<font color=maroon>(" & dts.Tables(0).Rows.Count & ")</font>'>")
Dim objite1 As System.Xml.XPath.XPathNodeIterator = objnav.Select("descendant::设备参数范围/设备信息主表/设备大类/name")
While objite1.MoveNext
Dim SqlCmd1 = "select 设备信息主表.设备名称,设备信息主表.部门,设备检修计划表.检修任务,设备检修计划表.id from 设备信息主表,设备检修计划表 where 设备检修计划表.检修计划名称='" & Trim(Request.QueryString("src")) & "' and 设备信息主表.设备工艺编号=设备检修计划表.设备工艺编号 and 设备信息主表.部门='" & objite.Current.Value & "' and 设备信息主表.设备大类='" & objite1.Current.Value & "' order by 设备信息主表.设备名称"
DeviceConnection.Open()
Dim ada1 As New SqlClient.SqlDataAdapter(SqlCmd1, DeviceConnection)
Dim dts1 As New Data.DataSet()
ada1.Fill(dts1, "部门表")
DeviceConnection.Close()
If dts1.Tables(0).Rows.Count > 0 Then
Response.Write("<TREENODE TEXT='" & objite1.Current.Value & "<font color=blue>(" & dts1.Tables(0).Rows.Count & ")</font>'>")
Dim j
For j = 0 To dts1.Tables(0).Rows.Count - 1
Response.Write("<TREENODE TEXT='" & Trim(dts1.Tables(0).Rows(j).Item("设备名称")) & "(" & Trim(dts1.Tables(0).Rows(j).Item("检修任务")) & ")' ID='a" & Trim(dts1.Tables(0).Rows(j).Item("id")) & "'/>")
Next
Response.Write("</TREENODE>")
End If
End While
Response.Write("</TREENODE>")
End If End While
End Sub '##############################################
'按照设备分类生成xml
'############################################## Sub read_xml1()
Dim reader As New System.Xml.XPath.XPathDocument(Server.MapPath("..") & "//settings//xml//设备参数范围.xml")
Dim objnav As System.Xml.XPath.XPathNavigator = reader.CreateNavigator
Dim objite As System.Xml.XPath.XPathNodeIterator = objnav.Select("descendant::设备参数范围/设备信息主表/设备大类/name") While objite.MoveNext
Dim SqlCmd = "select 设备信息主表.设备名称,设备信息主表.部门 from 设备信息主表,设备检修计划表 where 设备检修计划表.检修计划名称='" & Trim(Request.QueryString("src")) & "' and 设备信息主表.设备工艺编号=设备检修计划表.设备工艺编号 and 设备信息主表.设备大类='" & objite.Current.Value & "'"
DeviceConnection.Open()
Dim ada As New SqlClient.SqlDataAdapter(SqlCmd, DeviceConnection)
Dim dts As New Data.DataSet()
ada.Fill(dts, "部门表")
DeviceConnection.Close()
If dts.Tables(0).Rows.Count <> 0 Then
Response.Write("<TREENODE TEXT='" & objite.Current.Value & "<font color=maroon>(" & dts.Tables(0).Rows.Count & ")</font>'>")
Dim objite1 As System.Xml.XPath.XPathNodeIterator = objnav.Select("descendant::设备参数范围/设备信息主表/部门/name")
While objite1.MoveNext
Dim SqlCmd1 = "select 设备信息主表.设备名称,设备信息主表.部门,设备检修计划表.检修任务,设备检修计划表.id from 设备信息主表,设备检修计划表 where 设备检修计划表.检修计划名称='" & Trim(Request.QueryString("src")) & "' and 设备信息主表.设备工艺编号=设备检修计划表.设备工艺编号 and 设备信息主表.设备大类='" & objite.Current.Value & "' and 设备信息主表.部门='" & objite1.Current.Value & "' order by 设备信息主表.设备名称"
DeviceConnection.Open()
Dim ada1 As New SqlClient.SqlDataAdapter(SqlCmd1, DeviceConnection)
Dim dts1 As New Data.DataSet()
ada1.Fill(dts1, "部门表")
DeviceConnection.Close()
If dts1.Tables(0).Rows.Count > 0 Then
Response.Write("<TREENODE TEXT='" & objite1.Current.Value & "<font color=blue>(" & dts1.Tables(0).Rows.Count & ")</font>'>")
Dim j
For j = 0 To dts1.Tables(0).Rows.Count - 1
Response.Write("<TREENODE TEXT='" & Trim(dts1.Tables(0).Rows(j).Item("设备名称")) & "(" & Trim(dts1.Tables(0).Rows(j).Item("检修任务")) & ")' ID='a" & Trim(dts1.Tables(0).Rows(j).Item("id")) & "'/>")
Next
Response.Write("</TREENODE>")
End If
End While
Response.Write("</TREENODE>")
End If End While
End Sub