以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关联自动引用  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=50891)

--  作者:xiaohuli
--  发布时间:2014/5/15 9:27:00
--  关联自动引用
老师们帮帮忙,有入库表,库存表,出库表,库存和入库建立了关联,库存是父表,入库是子表,出库和库存建立了关联,库存是父表,出库是子表,三个表都有几个相同的字段,如产品编号,产品名称,单位等。我现在遇到了一个问题,就是我想入库的时候相同的字段的值自动填入到库存表中,可因为库存表是父表,所以入库的时候相同的字段没有办法自动填入到库存表中,这个问题怎么能解决?
--  作者:Bin
--  发布时间:2014/5/15 9:39:00
--  
只是关联的字段不可重复而已,库存表也不应该有重复的关联字段. 产品编号应该是唯一的
--  作者:有点甜
--  发布时间:2014/5/15 9:53:00
--  

 入库时相同的字段填入库存表?这个是不可能的。只能是子表引用父表的内容。

 

 你是想子表填入的数据父表没有对应的,就自动添加?


--  作者:xiaohuli
--  发布时间:2014/5/15 10:06:00
--  
有点甜,能不能给我一个思路,我的库存表和入库表,出库表都建立了关联,库存是父表,库存表中的入库数量,入库金额,出库数量,出库金额都是表达式,
入库_数量 Sum(Child(rk).数量)
入库_金额 Sum(Child(rk).金额)
出库_数量 Sum(Child(ck).数量)
出库_金额 Sum(Child(ck).金额)
库存_数量 IsNull([初始库存],0) + IsNull([入库_数量],0) - IsNull([出库_数量],0)
库存_金额 [库存_数量] * [库存_单价]

可是我还想入库的时候,把和库存表中相同的字段给自动填入,这个该怎么解决,给我个启发。

要是所有的表达式列都改为数据列的话,可是实现数据的自动引用,可是库存数量的代码我又不会写?


--  作者:有点甜
--  发布时间:2014/5/15 10:36:00
--  

 你说的相同字段自动填入,是什么字段?如果是比如 编号、名称 等等,用代码填入不就行了?只要这些字段不是表达式即可。

 

 你还是上传例子吧。

 

 http://www.foxtable.com/help/topics/1451.htm

 


--  作者:xiaohuli
--  发布时间:2014/5/15 11:33:00
--  

库存表和产品登记表,消费表建立了关联,并且库存表是父表,我的想法是当产品登记表中录入数据的时候,库存表能将产品编号,产品名称,价格等相同的列自动填入,可就因为我将库存表作为了父表,所以没办法,父表引用子表的数据呀。


--  作者:有点甜
--  发布时间:2014/5/15 11:49:00
--  

 产品登记表录入数据的时候,如果库存表没有存在这个产品,就自动在库存表插入一条记录即可。

 

 http://www.foxtable.com/help/topics/2292.htm

 


--  作者:有点甜
--  发布时间:2014/5/15 11:50:00
--  
以下是引用xiaohuli在2014-5-15 11:33:00的发言:

库存表和产品登记表,消费表建立了关联,并且库存表是父表,我的想法是当产品登记表中录入数据的时候,库存表能将产品编号,产品名称,价格等相同的列自动填入,可就因为我将库存表作为了父表,所以没办法,父表引用子表的数据呀。

 

如果琢磨不出代码,就上传你的项目。


--  作者:有点甜
--  发布时间:2014/5/15 11:59:00
--  

 参考下面代码,写到产品表的datacolchanged事件,列名和表名自己改一下(列名就是你的各个关联列)

 

Select Case e.DataCol.Name
    Case "产品", "名称", "价格"
        If e.DataRow.IsNull("产品") = False AndAlso e.DataRow.IsNull("名称") = False AndAlso e.DataRow.IsNull("价格") = False Then
            Dim fdr As DataRow = DataTables("库存表").Find("产品 = \'" & e.DataRow("产品") & "\' and 名称 = \'" & e.DataRow("名称") & "\' and 价格 = \'" & e.DataRow("价格") & "\'")
            If fdr IsNot Nothing Then
                fdr("产品") = e.DataRow("产品")
                fdr("名称") = e.DataRow("名称")
                fdr("价格") = e.DataRow("价格")
            End If
        End If
End Select


--  作者:xiaohuli
--  发布时间:2014/5/15 13:04:00
--  

谢谢有点甜,我已经解决了。