以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=124309)

--  作者:9602084
--  发布时间: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编辑过]

--  作者:9602084
--  发布时间:2018/9/4 11:38:00
--  [求助]

请大神指点
 

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

--  作者:有点甜
--  发布时间:2018/9/4 11:50:00
--  

1、你的问题是什么?

 

2、你调用函数的时候,把e参数传递过来了没有?


--  作者:9602084
--  发布时间:2018/9/4 11:59:00
--  [求助]

调用了,

 

Functions.Execute("MainFormTreeLoad",e,NodeTextFormat)

 

以前都正常,现在开发程序也能正常运行,就是发布后现在运行到红色代码的时候,提示找不到控件"TreeView1",

 

改用直接调用窗口控件(红色注释部分代码)也不行

[此贴子已经被作者于2018/9/4 12:03:02编辑过]

--  作者:有点甜
--  发布时间:2018/9/4 12:11:00
--  
以下是引用9602084在2018/9/4 11:59:00的发言:

 

就是发布后现在运行到红色代码的时候,提示找不到控件"TreeView1",

 

 

[此贴子已经被作者于2018/9/4 12:03:02编辑过]

 

那就是你发布的问题。和客服核对一下你的激活码,重新发布。