以文本方式查看主题

-  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=61096)

--  作者:ypp1420
--  发布时间:2014/12/7 1:32:00
--  非关联表之间的数据同步问题
老师好:我的设计是一个表格(区队领用表)可以完整接收其他三个表格(一队领用表、二队领用表、三队领用表)输入的数据,几个表格之间没有关联。现在我设计两个表格数据同步的时候出现了问题,参考帮助文件的跨表引用,在一队材料领用表datacolchange中输入代码如下:

\'非关联表之间的数据同步(884)
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("规格型号")
            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

\'从材料信息表中提取输入材料的单价
 Select Case e.DataCol.Name
     Case "材料名称","规格型号"
         Dim dr As DataRow = e.DataRow
         Dim pr As DataRow
         If dr.IsNull("材料名称") OrElse dr.IsNull("规格型号")  Then
             dr("单价") = Nothing
             dr("单位") = Nothing
         Else
             Dim filter As String
              filter = "材料名称 = \'" & dr("材料名称") & "\' And 规格型号 = \'" & dr("规格型号") & "\'"
             pr = DataTables("材料信息表").Find(filter)
             If pr IsNot Nothing Then
                 dr("单价") = pr("单价")
                 dr("单位") = pr("单位")
             End If
         End If
End Select
这个代码执行后,在区队材料领用表中只有材料名称、单位和数量,没有领用区队、使用地点和领用时间,但是在一队领用表中都有!
还有一个问题是同一材料输入2次以上,都显示最后一次的数据,前几次清零,我知道是第一段代码不对,但是修改了好多次,都不行,请多多指教

--  作者:有点甜
--  发布时间:2014/12/7 9:09:00
--  

 你是不是要统计啊?具体问题请上传例子,说明目的

 

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

 

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

 


--  作者:ypp1420
--  发布时间:2014/12/7 9:23:00
--  
甜版主,不是统计,就是简单的数据同步,一队、二队、三队 3个表中任意一个表添加或删除的材料名称,规格型号、使用地点、领用时间等都能同时在区队材料领用表中自动更新,就算是同一种材料使用地点、规格型号不同,数据也不累加,还是自动添加一行!我试了好多次,第一段代码是先在区队领用表中找材料名称,没有材添加一行,有的话就在原来的材料名称列添加数字,这个不是我想要的!根基尚浅,更改了很多次,都达不到我想要的结果!谢谢!
--  作者:ypp1420
--  发布时间:2014/12/7 9:37:00
--  
一队材料领用表的单价和单位是从材料信息表中引用的,但是同样的代码输到区队领用表DATACOCHANGE,我现在想做的就对是我在一队中输入什么,就在区队材料表中增加什么,除非材料名称和使用地点都相同!如果太麻烦的话就实现在一队输入什么,就在区队材料表中增加什么就可以了,以后的我自己慢慢研究
图片点击可在新窗口打开查看此主题相关图片如下:一队材料领用表.png
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看此主题相关图片如下:区队材料领用表.png
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2014/12/7 10:16:00
--  
 例子发上来
--  作者:ypp1420
--  发布时间:2014/12/7 13:01:00
--  
甜版主,例子发了,请看一下 444字节的那个!
--  作者:有点甜
--  发布时间:2014/12/7 14:15:00
--  
 要跟上传图片那样上传附件。
--  作者:ypp1420
--  发布时间:2014/12/7 15:23:00
--  
一队材料领用表的单价和单位是从材料信息表中引用的,但是同样的代码输到区队领用表DATACOCHANGE,我现在想做的就对是我在一队中输入什么,就在区队材料表中增加什么,除非材料名称和使用地点都相同!如果太麻烦的话就实现在一队输入什么,就在区队材料表中增加什么就可以了,以后的我自己慢慢研究。

--  作者:有点甜
--  发布时间:2014/12/7 15:24:00
--  
 上传具体例子啊。
--  作者:ypp1420
--  发布时间:2014/12/7 15:25:00
--  
正在传,刚刚没成功!