Foxtable(狐表)用户栏目专家坐堂 → [求助]关联表问题


  共有3895人关注过本帖树形打印复制链接

主题:[求助]关联表问题

帅哥哟,离线,有人找我吗?
湛江智
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:812 积分:6676 威望:0 精华:0 注册:2014/11/26 12:32:00
[求助]关联表问题  发帖心情 Post By:2019/4/19 16:19:00 [只看该作者]

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/19 16:25:00 [只看该作者]

 

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

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
湛江智
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:812 积分:6676 威望:0 精华:0 注册:2014/11/26 12:32:00
回复:(有点甜)?修改 【表A.表B.表C】 的值,...  发帖心情 Post By:2019/4/22 14:30:00 [只看该作者]

窗口中的表:
表A.表B 单向生成关联表
表B.表C 单向生成关联表

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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

 


 回到顶部
帅哥哟,离线,有人找我吗?
湛江智
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:812 积分:6676 威望:0 精华:0 注册:2014/11/26 12:32:00
回复:(有点甜)以下是引用湛江智在2019/4/22 14:30:...  发帖心情 Post By:2019/4/22 16:05: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:21:00编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
湛江智
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:812 积分:6676 威望:0 精华:0 注册:2014/11/26 12:32:00
回复:(有点甜)?改成这样不行??If...  发帖心情 Post By:2019/4/22 16:52:00 [只看该作者]

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

 


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


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

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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


 回到顶部
帅哥哟,离线,有人找我吗?
湛江智
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:812 积分:6676 威望:0 精华:0 注册:2014/11/26 12:32:00
回复:(有点甜)If e.Table.Current Is Nothing Then...  发帖心情 Post By:2019/4/22 17:51:00 [只看该作者]

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

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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


 回到顶部
总数 18 1 2 下一页