以文本方式查看主题

-  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=63291)

--  作者:syczmg
--  发布时间:2015/1/18 10:33:00
--  请教动态目录树列表问题!

ylx表与ylxzy表以"xmbh"关联,用于表达式汇总数据。

pz表与ylxly表以pzbh关联。

在ylxzy表的xmbh列属性中将ylx表列为目录树表,设置为:目录树列nd|xmbh、数据来源列cs|dw|cgr|nd|xmbh、数据接收列cs|dw|cgr|nd|xmbh。

为解决目录树列自动更新问题,参照http://www.foxtable.com/help/index.html?n=2127.htm,将项目MainTableChanged事件设置为:

If MainTable.Name = "ylxly" Then
    Dim tb1 As New DropTreeBuilder
    tb1.SourceTable = DataTables("ylx") \'指定目录树表
    tb1.TreeCols = "nd|xmbh" \'指定用于生成目录树的列
    tb1.SourceCols = "cs|dw|cgr|nd|xmbh" \'指定数据来源列
    tb1.ReceiveCols = "cs|dw|cgr|nd|xmbh" \'指定数据接收列
    Tables("ylxly").Cols("xmbh").DropTree = tb1.Build()
End If

完成后,在在ylxzy表中增加行时,目录树列自动更新;在窗口pz.ylxzy表中增加行时,目录树列不能自动更新!

如何解决?请指教,谢谢!


--  作者:有点甜
--  发布时间:2015/1/18 11:02:00
--  

 这段代码写到prepareEdit事件即可

 

    Dim tb1 As New DropTreeBuilder
    tb1.SourceTable = DataTables("ylx") \'指定目录树表
    tb1.TreeCols = "nd|xmbh" \'指定用于生成目录树的列
    tb1.SourceCols = "cs|dw|cgr|nd|xmbh" \'指定数据来源列
    tb1.ReceiveCols = "cs|dw|cgr|nd|xmbh" \'指定数据接收列
    Tables("ylxly").Cols("xmbh").DropTree = tb1.Build()

[此贴子已经被作者于2015-1-18 11:02:10编辑过]

--  作者:syczmg
--  发布时间:2015/1/18 11:34:00
--  

 

没有成功!

我操作两次,分别在子表和项目全局表事件将DataColChanged事件设为以上代码。

有什么差错吗?


--  作者:有点甜
--  发布时间:2015/1/18 11:48:00
--  

 改成,写到prepareEdit事件啊

 

    Dim tb1 As New DropTreeBuilder
    tb1.SourceTable = DataTables("ylx") \'指定目录树表
    tb1.TreeCols = "nd|xmbh" \'指定用于生成目录树的列
    tb1.SourceCols = "cs|dw|cgr|nd|xmbh" \'指定数据来源列
    tb1.ReceiveCols = "cs|dw|cgr|nd|xmbh" \'指定数据接收列
    e.Table.Cols("xmbh").DropTree = tb1.Build()


--  作者:syczmg
--  发布时间:2015/1/18 12:39:00
--  

问题已解决。但是速度极慢,计算机跟死机一样!


--  作者:有点甜
--  发布时间:2015/1/18 14:54:00
--  

 回复5楼,你要判断列名

 

If e.IsFocusCell AndAlso e.Col.Name = "xmbh" Then

    \'生成代码

End If


--  作者:syczmg
--  发布时间:2015/1/18 16:02:00
--  
问题解决,万分感谢!