以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]窗口表的临时列使用currentchanged事件出错  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=32015)

--  作者:chnfo
--  发布时间:2013/4/24 12:15:00
--  [求助]窗口表的临时列使用currentchanged事件出错
本意是在窗口中增加一个SQLtable型的表1。再增加一个绑定表2
然后在表1中增加临时列。

需要根据表1中临时列的值来确定表2是否显示。
但提示新增列不属于表1

请问该如何解决?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.table



如果放在preparedit事件中貌似可以不提示错误…………
但是如果锁定表1里的某些列后,切换行时不能达到效果
[此贴子已经被作者于2013-4-24 13:00:32编辑过]

--  作者:chnfo
--  发布时间:2013/4/24 21:49:00
--  
经过测试,可以通过,但有两点不明白
1.

Dim t As Table = Tables("窗口1_Table2")

If e.Table.Current Is Nothing Then
    Return
Else
    If e.Table.Cols.Contains("M") Then     \'加入这句就能使列“M”属于
Tables("窗口1_Table1")了?是什么原理呢? 
        Forms("窗口1").Controls("SplitContainer1").Panel2.Collapsed = e.Table.Current("M") = False
        t.Filter = " "
    End If
End If

2.

不加If e.Table.Cols.Contains("M") Then这一句判断,把这段代码放到preparedit中,也可以正确执行,算不算也是正解?


--  作者:狐狸爸爸
--  发布时间:2013/4/25 8:16:00
--  

因为在AfterOpenproject事件执行之前,会执行一次CurrentChanged事件。

根据错误提示调整代码就行了。