Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
我有一个表
1里面的“计划号”是不重复的
2里面“通打计划号”是把不重复的“计划号”合并成一个名称
3“通打数量”是把二个不同“计划号”的合同数量进行相加
4“通打数量”“半成品”“装窑”“成品”是需要人工输上去的
问题:我只想输入一个“通打计划号”里面的数据,但是我想同步和它相同的“通打计划号”里面数据就是当我把“计划号11001”里面输入数据的时候“计划号11002”里面相对应的自动输入 因为它们之间有一个“通打计划号”这个是共同的
如果不是共同就不需要同步数据
下载信息 [文件大小: 下载次数: ] | |
![]() |
这种问题并不难,但是我建议你修改设计,采用关联的形式。
就是做成两个表,就像订单表和订单明细表一样,一个订单对应有多个订单明细。
表结构的设计,一定要清晰明了,你这种设计很不规范。
狐狸爸爸 是这样子的 上传的这个表只是一个代表 我有一个真正的表 由于数据与内容的庞大 我以到了15个表的权限
我只想能在一个表上实现这样上的功能 为什么呢 因为我需要的内容只有一个计划号 不会经常出现通打计划号 我只是想在有二个不同计划号的时候 通打计划号的内容无论修改那一内容都会进行同步更新 这次还要在次的麻烦狐狸爸爸让您烦心了 谢谢您了
狐狸爸爸 让您烦心了
下载信息 [文件大小: 下载次数: ] | |
![]() |
不好意思狐狸爸爸 还要麻烦您一下 真是不好意思
我是想如果在表中在加一列"材质"是同个材质与同个通打计划号进行通打数量汇总与同步
同个通打计划号与不同的材质不需要汇总与同步
这样怎么能实现
真是不好意思谢谢您了
只需修改代码,将材质的条件加进去即可:
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
只需修改代码,将材质的条件加进去即可:
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
狐狸爸爸这个代码我用了很长时间发现了一个问题 但是不知道如何解决 就是当这个表输入了通打计划号会在半成品、成品、装窑、合同数量里面显示0 ,在什么地方加进代码可以改变输入通打计划号后,不会在半成品、成品、装窑、合同数量里面显示0,而是空。当输入数据的时候在显示能不能实现