以文本方式查看主题

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

--  作者:jianghong_11140
--  发布时间:2015/6/25 17:27:00
--  求助

截图见下图:

 


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20150625171607.png
图片点击可在新窗口打开查看
窗口中目录树依据所有者表生成,上面两个表与下面的表建立了关联,三个表中数据列企业名称、证照名称列内容编辑后,以及通过增加行、删除行、克隆行按钮操作三个表后,希望目录树同步更新。用全局表事件datacolchanged能否实现?或者用在窗口中设置一个不可见按钮,click事件代码为生成目录树的代码,然后用performclick模拟触发实现?
--  作者:Bin
--  发布时间:2015/6/25 17:30:00
--  
最好就是,做个刷新按钮. 然后点击刷新.

写到DataColChanged事件去,效率很低

非要那么做,也可以写成内部函数,然后到事件调用

--  作者:jianghong_11140
--  发布时间:2015/6/25 17:32:00
--  
谢谢!
--  作者:jianghong_11140
--  发布时间:2015/6/25 17:46:00
--  

我想实现自动更新目录树,不用全局表事件(效率低),还有办法没?


--  作者:大红袍
--  发布时间:2015/6/25 18:16:00
--  
 写到datacolchanged事件去即可。
--  作者:jianghong_11140
--  发布时间:2015/6/25 19:01:00
--  

谢了!


--  作者:jianghong_11140
--  发布时间:2015/6/25 19:44:00
--  

所有者表datacolchanged事件代码如下:

 

Select Case e.DataCol.Name
    Case "企业名称","证照名称"
        If Forms("企业证照管理").Opened Then
            Dim trv As WinForm.TreeView = Forms("企业证照管理").Controls("TreeView1")
            trv.BuildTree("证照内容","企业名称|证照名称")
            trv.Nodes.Insert("显示所有企业证照",0)
            trv.ExpandAll
        End If
End Select

 

 

应该解决问题了吧?

谢谢两位老师指导!


--  作者:jianghong_11140
--  发布时间:2015/6/25 19:51:00
--  

好像删除行和添加行后不能自动更新。还要在所有者表datarowdeleted事件和datarowaddeg事件设置重建目录树代码如下:

Dim trv As WinForm.TreeView = Forms("企业证照管理").Controls("TreeView1")
trv.BuildTree("证照内容","企业名称|证照名称")
trv.Nodes.Insert("显示所有企业证照",0)
trv.ExpandAll

两位老师,我理解的对不?


--  作者:大红袍
--  发布时间:2015/6/25 20:00:00
--  

 添加行可以不加代码;

 

 删除行,添加一下代码


--  作者:jianghong_11140
--  发布时间:2015/6/25 20:02:00
--  

明白了!谢谢!