以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  CurrentChanged 问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=95443)

--  作者:linshizhc
--  发布时间:2017/1/19 20:37:00
--  CurrentChanged 问题
CurrentChanged 加入以下代码后,选择发行明细表不同行,会很卡,在项目信息表中选择不同行再回到发行明细表会滚动好长时间,为什么!!
If e.Table.Current Is Nothing Then 
    Return
Else
    Dim wz As Integer
    Dim dr As DataRow
    dr = DataTables("项目信息").Find("[项目名称] = \'" & e.Table("发行明细").Current("项目名称") & "\'")
     If dr IsNot Nothing Then
        wz = Tables("项目信息").FindRow(dr)
        If wz >= 0 Then
            Tables("项目信息").Position = wz
        End If        
    End If
End If

--  作者:有点色
--  发布时间:2017/1/20 1:11:00
--  

 你是不是两个表都写了代码?

 

 做个例子上来看看,定位一行,不应该这样的。


--  作者:linshizhc
--  发布时间:2017/1/20 10:37:00
--  
我这个项目信息和发行明细表单项关联了,调试时发现 e.Table会在发行明细、项目信息.发行明细不断跳来跳去,然后不断执行代码。把关联去除,或者把关联生成关联表改成无就没问题了。现在在CurrentChanged 第一行加个 If e.Table.name ="发行明细" Then 暂时解决了,不知这个算不算个BUG,望改进。
--  作者:有点色
--  发布时间:2017/1/20 10:43:00
--  
 你应该要在 CurrrentChanged 那里加上表名的判断的,不判断,那么 主表、关联表、副本表,都会进来执行。
--  作者:linshizhc
--  发布时间:2017/1/20 23:06:00
--  
嗯,知道了