以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关联表问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=133754)

--  作者:湛江智
--  发布时间:2019/4/19 16:19:00
--  [求助]关联表问题
急,在等,求助:
  窗口中的表    表A.表B.表C    的第一列值修改后,为什么 表C里面的第一列值没变?
是两个表嘛? 怎样实现  表A.表B.表C  和表C 同步修改?
[此贴子已经被作者于2019/4/19 16:20:04编辑过]

--  作者:有点甜
--  发布时间:2019/4/19 16:25:00
--  

 

修改 【表A.表B.表C】 的值,表C对应行的值,绝对也一起修改了,请认真测试。

 

 


--  作者:湛江智
--  发布时间:2019/4/22 14:30:00
--  回复:(有点甜)?修改 【表A.表B.表C】 的值,...
窗口中的表:
表A.表B 单向生成关联表
表B.表C 单向生成关联表

【表A.表B.表C】  不可以设置为副本表嘛?
[此贴子已经被作者于2019/4/22 14:31:44编辑过]

--  作者:有点甜
--  发布时间:2019/4/22 15:02:00
--  
以下是引用湛江智在2019/4/22 14:30:00的发言:


【表A.表B.表C】  不可以设置为副本表嘛?
[此贴子已经被作者于2019/4/22 14:31:44编辑过]

 

不可以设置成副本表。关联表只有1个。

 

如果你需要,可以模拟关联 http://www.foxtable.com/webhelp/scr/2222.htm

 


--  作者:湛江智
--  发布时间:2019/4/22 16:05:00
--  回复:(有点甜)以下是引用湛江智在2019/4/22 14:30:...
 如果要实现 产品.客户.订单
订单表作为一个中间表 
想实现的产品当前行切换时,窗口中的客户表,只显示产品当前产品编号的所有(当前产品编号订单)的客户
下面代码怎么修改呢?

If Forms("窗口1").Opened() \'一定要判断用于模拟关联表的窗口是否已经打开
    Dim
t As Table = Tables("窗口1_Table1"
)
    With
Tables("产品"
)
        If
.Current Is Nothing
Then
            t.Filter =
"False"
       
Else
            t.Filter =
"产品编号 = " & .Current("产品编号")
        End
IF
   
End With
End
If


[此贴子已经被作者于2019/4/22 16:21:00编辑过]

--  作者:有点甜
--  发布时间:2019/4/22 16:27:00
--  

 

改成这样不行?

 

If Forms("窗口1").Opened() \'一定要判断用于模拟关联表的窗口是否已经打开
    Dim t As Table = Tables("窗口1_Table1")
    With Tables("产品")
        If .Current Is Nothing Then
            t.Filter = "False"
        Else
            t.Filter = "产品编号 = \'" & .Current("产品编号") & "\'"
        End If
    End With
End If

 

 


--  作者:湛江智
--  发布时间:2019/4/22 16:52:00
--  回复:(有点甜)?改成这样不行??If...

想实现的效果: 产品表当前行,右侧客户表只显示客户编号1 和 客户编号2 的2个客户

 


图片点击可在新窗口打开查看此主题相关图片如下:只显示当前产品编号的所有订单的客户.jpg
图片点击可在新窗口打开查看


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

[此贴子已经被作者于2019/4/22 16:52:13编辑过]

--  作者:有点甜
--  发布时间:2019/4/22 17:35:00
--  

If e.Table.Current Is Nothing Then Return

If Forms("窗口1").Opened() \'一定要判断用于模拟关联表的窗口是否已经打开
    Dim t As Table = Tables("窗口1_Table1")
    With Tables("产品")
        If .Current Is Nothing Then
            t.Filter = "False"
        Else
            t.Filter = "产品编号 = \'" & .Current("产品编号") & "\'"
        End If
    End With
End If

If Forms("窗口2").Opened() \'一定要判断用于模拟关联表的窗口是否已经打开
    Dim t As Table = Tables("窗口2_Table1")
    With Tables("产品")
        If .Current Is Nothing Then
            t.Filter = "False"
        Else
            t.Filter = "客户编号 in (\'" & DataTables("订单").GetComboListString("客户编号", "产品编号 = \'" & .Current("产品编号") & "\'").replace("|", "\',\'") & "\')"
        End If
    End With
End If


--  作者:湛江智
--  发布时间:2019/4/22 17:51:00
--  回复:(有点甜)If e.Table.Current Is Nothing Then...

坛主,上面代码,如果 产品.订单 不存在,报错,求助:

 

.NET Framework 版本:2.0.50727.5420
Foxtable 版本:2018.7.9.1
错误所在事件:
详细错误信息:
无法在 System.Int32 和 System.String 上执行“=”操作。


--  作者:有点甜
--  发布时间:2019/4/22 17:56:00
--  

If e.Table.Current Is Nothing Then Return

If Forms("窗口1").Opened() \'一定要判断用于模拟关联表的窗口是否已经打开
    Dim t As Table = Tables("窗口1_Table1")
    With Tables("产品")
        If .Current Is Nothing Then
            t.Filter = "False"
        Else
            t.Filter = "产品编号 = \'" & .Current("产品编号") & "\'"
        End If
    End With
End If

If Forms("窗口2").Opened() \'一定要判断用于模拟关联表的窗口是否已经打开
    Dim t As Table = Tables("窗口2_Table1")
    With Tables("产品")
        If .Current Is Nothing Then
            t.Filter = "False"
        Else
            Dim s = DataTables("订单").GetComboListString("客户编号", "产品编号 = \'" & .Current("产品编号") & "\'").replace("|", "\',\'")
            t.Filter = "客户编号 in (\'" & iif(s>"", s, "-1") & "\')"
        End If
    End With
End If