Foxtable(狐表)用户栏目专家坐堂 → A表与B表 的列共享问题


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

主题:A表与B表 的列共享问题

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


加好友 发短信
等级:二尾狐 帖子:528 积分:5034 威望:0 精华:0 注册:2012/4/6 19:31:00
A表与B表 的列共享问题  发帖心情 Post By:2016/4/25 18:57:00 [只看该作者]

A表 与B表,想让B表与A表的几列与A表的几列相关的值,并且由A表的值决定,B表的值不能自主修改,我知道的方法是用A表与B表关联,然后B表用表达试的方式指定值为父表的某列,请问有其它用代码的方式实现没?怎么设计?或有帮助文档没?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/25 19:38:00 [只看该作者]


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


加好友 发短信
等级:二尾狐 帖子:528 积分:5034 威望:0 精华:0 注册:2012/4/6 19:31:00
  发帖心情 Post By:2016/4/25 21:47:00 [只看该作者]

谢谢!看来得再看一下帮助文档了,但这样提醒让我更有针对性,效率也更高。

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


加好友 发短信
等级:二尾狐 帖子:528 积分:5034 威望:0 精华:0 注册:2012/4/6 19:31:00
  发帖心情 Post By:2016/4/25 22:32:00 [只看该作者]

这个方式是可以的,但关键是他两个表是得有类似一样的产品编号等,但我的没有,是用identify 与 中一个表的序号做关联,并且没有做单向关联。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/25 22:40:00 [只看该作者]

那你代码就改一下啊,列名对应就行的。

 

 dr =  DataTables("产品").Find("[_Identify] = '" & e.NewValue &  "'")


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


加好友 发短信
等级:二尾狐 帖子:528 积分:5034 威望:0 精华:0 注册:2012/4/6 19:31:00
  发帖心情 Post By:2016/4/27 20:06:00 [只看该作者]

If e.DataCol.Name = "_Identify" Then '如果内容发生变动的是品名列
    If e.NewValue Is Nothing Then '如果新值是空白,也就是品名列的内容为空
        e.DataRow("客户名称") = Nothing '那么清空此行单价列的内容
    Else
        Dim dr As DataRow 
 dr = DataTables("客户资料").Find("[_Identify] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
            e.DataRow("客户名称") = dr("客户名称") 
        End If
    End If
End If

不得行,我是想把业务登记表的客户名称,从客户表上继承下来。这样好像不行哟。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/27 20:08:00 [只看该作者]

If e.DataCol.Name = "产品编号" Then '如果内容发生变动的是品名列
    If e.NewValue Is Nothing Then '如果新值是空白,也就是品名列的内容为空
        e.DataRow("客户名称") = Nothing '那么清空此行单价列的内容
    Else
        Dim dr As DataRow = DataTables("客户资料").Find("[_Identify] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
            e.DataRow("客户名称") = dr("客户名称") 
        End If
    End If
End If

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


加好友 发短信
等级:二尾狐 帖子:528 积分:5034 威望:0 精华:0 注册:2012/4/6 19:31:00
  发帖心情 Post By:2016/4/27 20:25:00 [只看该作者]

If e.DataCol.Name = "序号" Then '如果内容发生变动的是品名列
    If e.NewValue Is Nothing Then '如果新值是空白,也就是品名列的内容为空
        e.DataRow("客户名称") = Nothing '那么清空此行单价列的内容
    Else
        Dim dr As DataRow 
 dr = DataTables("客户资料").Find("[_Identify] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
            e.DataRow("客户名称") = dr("客户名称") 
            e.DataRow("联系人") = dr("主联系人") 
 End If
    End If
End If


这样已经可以了,但问题的关键来了,我是不想用关联表的方式,这样仍然避免不了用关联表,并且我要在关联表的子表下添加记录才可以继承下来,有什么好的办法不用关联的方式没? 我感觉这样跟用关联的效率差不多。因为我业务表的序号是不手动录入的,是靠在子表输入时,序号自动增加变化。

[此贴子已经被作者于2016/4/27 20:26:48编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/27 20:58:00 [只看该作者]

 为什么要用关联?你直接写代码就可以的啊。

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


加好友 发短信
等级:二尾狐 帖子:528 积分:5034 威望:0 精华:0 注册:2012/4/6 19:31:00
  发帖心情 Post By:2016/4/27 22:39:00 [只看该作者]

明天上传一下列子。。

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