Foxtable(狐表)用户栏目专家坐堂 → [求助]


  共有1861人关注过本帖平板打印复制链接

主题:[求助]

帅哥哟,离线,有人找我吗?
9602084
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:341 积分:3400 威望:0 精华:0 注册:2013/5/17 10:55:00
[求助]  发帖心情 Post By:2018/9/4 11:37:00 [只看该作者]

以下是一个生成目录树的内部函数的代码

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",请大神们指点迷津。

[此贴子已经被作者于2018/9/4 11:49:06编辑过]

 回到顶部