Dim e As object = args(0)
Dim NodeTextFormat As String = args(1)
Dim DtCount As DataTable
If NodeTextFormat= "on"
Dim q As new QueryBuilder
q.TableName = "人数统计"
q.C
q.S electString = "s elect 一级,二级,三级,四级, count(*) as 人数 f rom (S elect substring(编制号,1,4) As 一级, substring(编制号,5,4) As 二级, substring(编制号,9,4) As 三级, substring(编制号,13,4) As 四级 from {" & Vars("basetable") & "}) As a group by 一级,二级,三级,四级"
DtCount = q.build
End If
'''''生成目录树
Dim DtContents As DataTable
Dim tr As WinForm.TreeView
msgbox("调试1")
tr = e.Form.controls("TreeView1")
'tr = Forms("在职人员").Controls("TreeView1")
msgbox("调试1")
Dim nd As WinForm.TreeNode
Dim cmd As new SQLCommand
cmd.C
cmd.C ommandText = "S elect * from {单位目录} where 单位代码 Like '%" & SysDataRow("UserIndex").Substring(0,(1 + SysDataRow("Class"))*4) & "%'"
DtContents = cmd.ExecuteReader
tr.StopRedraw
Dim DtCols() As String = {"一级","二级","三级","四级"}
tr.Nodes.Clear
Dim sum As Integer
For Each dr As DataRow In DtContents.S elect("","单位代码")
If dr.IsNull("单位代码") = False AndAlso dr("单位代码").Length = 4 * (1 + SysDataRow("Class")) Then
nd = tr.Nodes.Add(dr("单位代码"), dr("单位名称"))
If NodeTextFormat= "on"
Dim CountFilter As String = ""
For t As Integer = 0 To nd.level + SysDataRow("Class")
CountFilter = iif(t = nd.Level + SysDataRow("Class"),CountFilter & DtCols(t) & "='" & nd.name.Substring(4*t,4) & "'",CountFilter & DtCols(t) & "='" & nd.name.Substring(4*t,4) & "' and ")
Next
sum = DtCount.Compute("sum(人数)",CountFilter)
nd.text= dr("单位名称") & "(" & iif(sum > 0 ,sum,0) & "人)"
End If
Functions.Execute("目录树递归函数",nd,DtContents,DtCount,DtCols,NodeTextFormat)
End If
Next
tr.ResumeRedraw()
上面画红线的两句代码,在以前的FT版中,开发版和发布版都能正常运行。升级8月30日的FT后,现在运行到红色代码部分时,开发版运行正常,发布的程序提示找不到控件"TreeView1",请大神们指点迷津。