以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 对其他表条件写入数据 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=63071) |
-- 作者:信达 -- 发布时间:2015/1/13 14:36:00 -- 对其他表条件写入数据 |
-- 作者:信达 -- 发布时间:2015/1/13 14:36:00 -- 老师,我这里有一个例子,想实现的是:当欠交数量为0的时候,将A表的有关数据写到B表(合同明细)。我在A表的DataColChanged加了这段代码,好像不对。同时我还想将与A表关联的C表(计划编号关联)也作为B表的相应列。怎么写啊? Select Case e.DataCol.Name Case "计划编号","生产数量","实际交货数量" Dim dr As DataRow Dim mr As DataRow = e.DataRow Dim drs As List(of DataRow) dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [计划编号] = \'" & mr("计划编号") & "\'", "[_SortKey] Desc") If dr Is Nothing Then mr("欠交数量") = mr("生产数量") - mr("实际交货数量") dr = mr End If drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [计划编号] = \'" & dr("计划编号") & "\'", "[_SortKey]") For i As Integer = 1 To drs.Count - 1 drs(i)("欠交数量") = drs(i-1)("欠交数量") + drs(i)("生产数量") - drs(i)("实际交货数量") Next If e.DataCol.Name = "计划编号" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [计划编号] = \'" & e.OldValue & "\'", "[_SortKey] Desc") If dr Is Nothing Then dr = e.DataTable.Find("[计划编号] = \'" & e.OldValue & "\'", "[_SortKey]") If dr IsNot Nothing Then dr("欠交数量") = dr("生产数量") - dr("实际交货数量") End If End If If dr IsNot Nothing Then drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [计划编号] = \'" & dr("计划编号") & "\'", "[_SortKey]") For i As Integer = 1 To drs.Count - 1 drs(i)("欠交数量") = drs(i-1)("欠交数量") + drs(i)("生产数量") - drs(i)("实际交货数量") Next End If End If Case "欠交数量" If e.DataRow ("欠交数量") = 0 Then Dim nma() As String = {"计划编号","车号","入库单号","实际交货数量"} \'A表数据来源列 Dim nmb() As String = {"计划编号","车号","入库单号","数量"} \'B表数据接收列 Dim dr As DataRow = DataTables("合同明细").AddNew For i As Integer = 0 To nma.Length - 1 dr(nmb(i)) = e.DataRow(nma(i)) Next End If End Select
|
-- 作者:Bin -- 发布时间:2015/1/13 14:40:00 -- 不生效,说明没有找到符合条件的数据. 引用另外一个表,和你现在做的方式一样的.参考帮助 http://www.foxtable.com/help/topics/1453.htm
|
-- 作者:有点甜 -- 发布时间:2015/1/13 14:41:00 -- 代码没问题,不对指的是什么地方? |
-- 作者:信达 -- 发布时间:2015/1/13 14:42:00 -- 欠交数量为0的数据是有的。我在想是不是代码有问题。帮看看。 |
-- 作者:有点甜 -- 发布时间:2015/1/13 14:46:00 -- 你要修改成0,重置该列才会触发代码啊 |
-- 作者:信达 -- 发布时间:2015/1/13 16:32:00 -- 我知道问题出在哪了。我还要加一句欠交数量已经为0的数据。 这个加在哪?怎么加啊?
|
-- 作者:有点甜 -- 发布时间:2015/1/13 16:33:00 -- 这个意思?
http://www.foxtable.com/help/topics/1587.htm
|