以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  删除行时窗口出错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=122963)

--  作者:ZJZK2018
--  发布时间:2018/8/5 20:52:00
--  删除行时窗口出错
我在CurrentChanged事件中关闭下面代码就不出现错误提示,如何调整下面代码:

\'\'\'=======台帐模拟关联表1:招标信息与项目联系人===========

If Forms("招标信息台帐").Opened() \'一定要判断用于模拟关联表的窗口是否已经打开

    Dim t As Table = Tables("招标信息台帐_Table2")

    With Tables("招标信息台帐_Table1")

        If .Current Is Nothing Then

            t.Filter = "False"

        Else

            t.Filter = "系统编号 = \'" & .Current("系统编号") & "\'"

        End If

    End With

End If



图片点击可在新窗口打开查看此主题相关图片如下:66619.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:77740.png
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2018/8/5 23:50:00
--  

在头部加入代码 msgbox(e.Table.name) 看弹出什么,看是不是重复执行了事件。


--  作者:ZJZK2018
--  发布时间:2018/8/6 19:18:00
--  
弹出的是当前talbes的名称,如上图“招标信息”
[此贴子已经被作者于2018/8/6 19:18:10编辑过]

--  作者:有点蓝
--  发布时间:2018/8/6 20:34:00
--  
Table1和Table2绑定的是什么表?分别什么类型的窗口表?副本?sqltable?
--  作者:ZJZK2018
--  发布时间:2018/8/6 21:10:00
--  
我用的是外部SQL数据库,table1绑定tables("招标信息")并为副本,table2绑定tables("项目联系人")并为副本,类型为Normal,主要是二个副本做一个模拟关联表。

事件中代码:

\'\'在不同表之间同时选定一个项目名称
If e.Table.Current IsNot Nothing Then \'如果Current为Nothing
    Return \'则返回
Else
    If e.Table.Name = "招标信息" Then
        \'\'\'=======台帐模拟关联表1:招标信息与项目联系人===========
        If Forms("招标信息台帐").Opened() \'一定要判断用于模拟关联表的窗口是否已经打开
            Dim t As Table = Tables("招标信息台帐_Table2")
            With Tables("招标信息台帐_Table1")
                If .Current Is Nothing Then
                    t.Filter = "False"
                Else
                    t.Filter = "系统编号 = \'" & .Current("系统编号") & "\'"
                End If
            End With
        End If
    End If
    
    \'\'=========在不同表之间同时选定一个项目名称===========
    Dim wz As Integer
    Dim dr As DataRow
    dr = DataTables("抽签入围").Find("[系统编号] = \'" & Tables("开标记录").Current("系统编号") & "\'")
    If dr IsNot Nothing Then
        wz = Tables("抽签入围").FindRow(dr)
        If wz >= 0 Then
            Tables("抽签入围").Position = wz
        End If
    End If
End If

[此贴子已经被作者于2018/8/6 21:13:18编辑过]

--  作者:有点蓝
--  发布时间:2018/8/6 21:31:00
--  
1、
If e.Table.Current Is Nothing Then
    Return \'则返回

2、不应该在主表的CurrentChanged事件中对副本重新筛选,因为主表的CurrentChanged事件同样会对副本生效,副本也会触发这个事件

--  作者:ZJZK2018
--  发布时间:2018/8/6 23:00:00
--  
老师我上传附件,帮我查一下,谢谢!



 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:二个副本的模拟关联表.table



--  作者:有点蓝
--  发布时间:2018/8/6 23:06:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:二个副本的模拟关联表.zip