Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共10 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:实现数据同步

1楼
7032175 发表于:2011/11/5 10:06:00

我有一个表

1里面的“计划号”是不重复的
2里面“通打计划号”是把不重复的“计划号”合并成一个名称
3“通打数量”是把二个不同“计划号”的合同数量进行相加
4“通打数量”“半成品”“装窑”“成品”是需要人工输上去的

问题:我只想输入一个“通打计划号”里面的数据,但是我想同步和它相同的“通打计划号”里面数据就是当我把“计划号11001”里面输入数据的时候“计划号11002”里面相对应的自动输入 因为它们之间有一个“通打计划号”这个是共同的 

如果不是共同就不需要同步数据


 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table

2楼
7032175 发表于:2011/11/5 15:51:00
请狐狸爸爸有时间帮我解决一下  谢谢您了
3楼
狐狸爸爸 发表于:2011/11/5 16:32:00

这种问题并不难,但是我建议你修改设计,采用关联的形式。

就是做成两个表,就像订单表和订单明细表一样,一个订单对应有多个订单明细。

表结构的设计,一定要清晰明了,你这种设计很不规范。

 

 

 

 

4楼
7032175 发表于:2011/11/6 7:44:00

狐狸爸爸 是这样子的   上传的这个表只是一个代表   我有一个真正的表  由于数据与内容的庞大 我以到了15个表的权限 

 

我只想能在一个表上实现这样上的功能 为什么呢 因为我需要的内容只有一个计划号 不会经常出现通打计划号  我只是想在有二个不同计划号的时候  通打计划号的内容无论修改那一内容都会进行同步更新 这次还要在次的麻烦狐狸爸爸让您烦心了   谢谢您了

5楼
7032175 发表于:2011/11/6 9:00:00

狐狸爸爸  让您烦心了

6楼
狐狸爸爸 发表于:2011/11/6 9:10:00
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目12.rar

7楼
7032175 发表于:2011/11/6 10:42:00

不好意思狐狸爸爸 还要麻烦您一下   真是不好意思  

 

 我是想如果在表中在加一列"材质"是同个材质与同个通打计划号进行通打数量汇总与同步

 

同个通打计划号与不同的材质不需要汇总与同步  

 

 这样怎么能实现 

 

真是不好意思谢谢您了

8楼
狐狸爸爸 发表于:2011/11/6 22:13:00

只需修改代码,将材质的条件加进去即可:

 

If e.DataRow.Isnull("通打计划号") = False Then
    Select Case e.DataCol.Name
        Case "半成品","成品","装窑"
            For Each dr As DataRow In e.DataTable.Select("通打计划号 = '"  & e.DataRow("通打计划号") & "' And 材质 = '"  & e.DataRow("材质") & "'")
                dr(e.DataCol.Name) = e.NewValue
            Next
        Case "合同数量"
            Dim v As Integer = e.DataTable.Compute("Sum(合同数量)","通打计划号 = '"  & e.DataRow("通打计划号") & "' And 材质 = '"  & e.DataRow("材质") & "'")
            For Each dr As DataRow In e.DataTable.Select("通打计划号 = '"  & e.DataRow("通打计划号") & "' And 材质 = '"  & e.DataRow("材质") & "'")
                dr("通打数量") = v
            Next
        Case "通打计划号","材质"
            e.DataTable.DataCols("半成品").RaiseDataColChanged(e.DataRow)
            e.DataTable.DataCols("成品").RaiseDataColChanged(e.DataRow)
            e.DataTable.DataCols("装窑").RaiseDataColChanged(e.DataRow)
            e.DataTable.DataCols("合同数量").RaiseDataColChanged(e.DataRow)
    End Select
End If

 

[此贴子已经被作者于2011-11-6 22:21:00编辑过]
9楼
7032175 发表于:2011/12/6 13:09:00
以下是引用狐狸爸爸在2011-11-6 22:13:00的发言:

只需修改代码,将材质的条件加进去即可:

 

If e.DataRow.Isnull("通打计划号") = False Then
    Select Case e.DataCol.Name
        Case "半成品","成品","装窑"
            For Each dr As DataRow In e.DataTable.Select("通打计划号 = '"  & e.DataRow("通打计划号") & "' And 材质 = '"  & e.DataRow("材质") & "'")
                dr(e.DataCol.Name) = e.NewValue
            Next
        Case "合同数量"
            Dim v As Integer = e.DataTable.Compute("Sum(合同数量)","通打计划号 = '"  & e.DataRow("通打计划号") & "' And 材质 = '"  & e.DataRow("材质") & "'")
            For Each dr As DataRow In e.DataTable.Select("通打计划号 = '"  & e.DataRow("通打计划号") & "' And 材质 = '"  & e.DataRow("材质") & "'")
                dr("通打数量") = v
            Next
        Case "通打计划号","材质"
            e.DataTable.DataCols("半成品").RaiseDataColChanged(e.DataRow)
            e.DataTable.DataCols("成品").RaiseDataColChanged(e.DataRow)
            e.DataTable.DataCols("装窑").RaiseDataColChanged(e.DataRow)
            e.DataTable.DataCols("合同数量").RaiseDataColChanged(e.DataRow)
    End Select
End If

 

[此贴子已经被作者于2011-11-6 22:21:00编辑过]

狐狸爸爸这个代码我用了很长时间发现了一个问题 但是不知道如何解决 就是当这个表输入了通打计划号会在半成品、成品、装窑、合同数量里面显示0 ,在什么地方加进代码可以改变输入通打计划号后,不会在半成品、成品、装窑、合同数量里面显示0,而是空。当输入数据的时候在显示能不能实现

10楼
狐狸爸爸 发表于:2011/12/6 14:14:00

参考:

 

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

 

共10 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03906 s, 4 queries.