以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  目录树不能自动更新  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=111153)

--  作者:chengjingliang
--  发布时间:2017/12/15 23:29:00
--  目录树不能自动更新
帮助内提到:目录树自动更新,如果需要根据其它列已经输入的内容来生成列表项目或目录树,那么就只能将代码放在表事件PrepareEdit中了。
我做了一个,还是不行,不能自动更新


\'目录树自动更新

If MainTable.Name = "单价明细" Then

    Dim tb As New DropTreeBuilder

    tb.SourceTable = DataTables("单价列表") \'指定目录树表

    tb.TreeCols = "工料一类|工料二类|工料名称" \'指定用于生成目录树的列

    tb.SourceCols = "工料一类|工料二类|工料名称|工料单位|工料单价|单价列表ID" \'指定数据来源列

    tb.ReceiveCols = "工料一类|工料二类|工料名称|工料单位|工料单价|单价列表ID" \'指定数据接收列

    Tables("单价明细").Cols("工料一类").DropTree = tb.Build()

End If


--  作者:有点蓝
--  发布时间:2017/12/16 8:40:00
--  
代码放到单价明细AfterSelChange事件

Dim cl As Col = e.Table.Cols(e.NewRange.ColSel)
If cl.Name = "工料一类" Then
    Dim tb As New DropTreeBuilder
    tb.SourceTable = DataTables("单价列表") \'指定目录树表
    tb.TreeCols = "工料一类|工料二类|工料名称" \'指定用于生成目录树的列
    tb.SourceCols = "工料一类|工料二类|工料名称|工料单位|工料单价|单价列表ID" \'指定数据来源列
    tb.ReceiveCols = "工料一类|工料二类|工料名称|工料单位|工料单价|单价列表ID" \'指定数据接收列
    e.Table.Cols("工料一类").DropTree = tb.Build()
End If

--  作者:chengjingliang
--  发布时间:2017/12/16 13:16:00
--  
如果我希望点击目录树列,自动找到已录入数据的目录树末级,好不好修改上面代码来实现?
--  作者:有点蓝
--  发布时间:2017/12/16 14:41:00
--  
这种目录树没有办法做其它控制。