以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  引用关联表数据,而不修改关联表数据  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=84534)

--  作者:WAWSAywh
--  发布时间:2016/5/4 17:02:00
--  引用关联表数据,而不修改关联表数据
产品表A与客户表B关联,关联表为表A.表B
现想将关联表表A.表B的数据完全引用到空表C中,而不能修改关联表的数据。即表C的mc=表A.表B的mc,修改表C的mc不影响关联表表A.表B的mc
查找了好久的帮助文件都找不到答案,如果通过关联则表C中只能显示部分关联的数据,而非全部数据。用案例赋值的方法老是报错,不知道该用什么方法才能做到?


--  作者:njcyt
--  发布时间:2016/5/4 17:14:00
--  
http://www.foxtable.com/help/index.html?n=2079.htm
--  作者:大红袍
--  发布时间:2016/5/4 19:01:00
--  
上传实例说明问题。
--  作者:WAWSAywh
--  发布时间:2016/5/5 15:58:00
--  在新帮助里找到例子了

谢谢老师,在新帮助里找到例子了。

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=41733



[此贴子已经被作者于2016/6/16 17:19:44编辑过]

--  作者:WAWSAywh
--  发布时间:2016/5/5 16:41:00
--  [求助]
老师,这是新帮助里面的例子:非关联表之间的数据同步http://www.foxtable.com/help/index.html?n=2490.htm


  例子中是一对一的关系,增加一个产品对应增加一个库存
  如果是订单和客户,一对多的关系呢?
   一个订单对应几个不同的客户
   a订单有a、b、c三个客户
   b订单有a、b两个客户
   ……
   订单表新增一订单a,则空表增加对应的几个客户a、b、c
   订单表新增一订单b,则空表再次增加对应的几个客户a、b
   ……
   
 
这是帮助里面的例子,非关联表之间的数据同步http://www.foxtable.com/help/index.html?n=2490.htm:
假定有一个产品表和一个库存表,两个表都有产品编号、产品名称、产品规格三列,但是没有建立关联,我们希望:
1、在产品表增加一个产品,库存表对应也增加此产品。
2、在产品表删除一个产品,库存表对应也删除此产品。
3、在产品表更改某产品的产品编号、产品名称或产品规格后,库存表也能同步修改。
设计步骤
1、将产品表的DataColChanged事件代码设置为:
Select Case e.DataCol.name
    Case "产品编号"
        Dim dr As DataRow = DataTables("库存").Find("产品编号 = \'" & e.OldValue & "\'")
        If dr Is Nothing Then 
            dr = DataTables("库存").AddNew()
            dr("产品编号") = e.DataRow("产品编号")
            dr("产品名称") = e.DataRow("产品名称")
            dr("产品规格") = e.DataRow("产品规格")
        Else
            dr("产品编号") = e.DataRow("产品编号")
        End If
    Case "产品名称","产品规格"
        Dim dr As DataRow = DataTables("库存").Find("产品编号 = \'" & e.DataRow("产品编号") & "\'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
End Select
2、将产品表的DataRowDeleting事件代码设置为:
Dim dr As DataRow = DataTables("库存").Find("产品编号 = \'" & e.DataRow("产品编号") & "\'")
If dr IsNot Nothing Then
    dr.Delete()
End If
 
[此贴子已经被作者于2016/6/16 17:20:06编辑过]

--  作者:大红袍
--  发布时间:2016/5/5 17:18:00
--  
 请上传具体例子说明你要做什么。
--  作者:WAWSAywh
--  发布时间:2016/5/6 11:28:00
--  图片截图

[此贴子已经被作者于2016/6/16 17:19:01编辑过]

--  作者:大红袍
--  发布时间:2016/5/6 11:29:00
--  
上传foxtable实例啊
--  作者:WAWSAywh
--  发布时间:2016/5/6 11:32:00
--  这里说错了,应该是大红袍老师
图片点击可在新窗口打开查看
--  作者:大红袍
--  发布时间:2016/5/6 11:36:00
--  
上传实例。