以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 跨表复制不重复的行内容 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=84891) |
-- 作者:benwong2013 -- 发布时间:2016/5/12 16:04:00 -- 跨表复制不重复的行内容 If e.DataCol.Name = "仓库物料编号" Then Dim dr As DataRow = DataTables("表A").Find("仓库物料编号 = \'" & e.NewValue & "\'") If dr Is Nothing Then dr = DataTables("表B").AddNew() dr("物料名称")
= e.DataRow("物料名称") dr("规格")
= e.DataRow("规格") dr("等级")
= e.DataRow("等级") dr("单位")
= e.DataRow("单位") dr("仓库物料编号")
= e.DataRow("仓库物料编号") End If End If 在表A和表B有部分列的内容一样,若表A新增一个仓库物料编号,若表B中没有找到的话,则表B新增一行,并将仓库物料编号、物料名称、规格、等级、单位填入新增的行中,但这个单位只能填入仓库物料编号,其它的不能自动填入; 表A中可能会存在多行一样编号的仓库物料编号,表B只有一个仓库物料编号与其对应,若表A的编号不变的情况下,其它列变化,系统不做处理,请问应该如何处理? |
-- 作者:大红袍 -- 发布时间:2016/5/12 16:13:00 -- 看看这个例子吧
http://www.foxtable.com/help/topics/2490.htm
|
-- 作者:benwong2013 -- 发布时间:2016/5/12 16:37:00 -- Select Case e.DataCol.name Case "仓库物料编号" Dim dr As DataRow = DataTables("表B").Find("仓库物料编号 = \'" & e.OldValue & "\'") If dr Is Nothing Then dr = DataTables("表B").AddNew() 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("表B").Find("仓库物料编号 = \'" & e.DataRow("仓库物料编号") & "\'") If dr IsNot Nothing Then dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name) End If End Select 发现在表A增加一个行,仓库物料编号一样,若其它列信息有修改的时候,表B中会出现一行空的,请问如何处理? [此贴子已经被作者于2016/5/12 16:40:31编辑过]
|
-- 作者:大红袍 -- 发布时间:2016/5/12 16:54:00 -- Select Case e.DataCol.name |
-- 作者:凡夫俗子 -- 发布时间:2016/5/12 18:50:00 -- 编码编码编码 如果数据量大了,就等死你
|
-- 作者:大红袍 -- 发布时间:2016/5/12 20:10:00 -- 以下是引用凡夫俗子在2016/5/12 18:50:00的发言:
编码编码编码 如果数据量大了,就等死你
为什么?具体实例。 |
-- 作者:凡夫俗子 -- 发布时间:2016/5/13 9:46:00 -- 很简单,你不要总是拿几条数据的增删修改来测试。随便一个表随机生成两万条数据,再进行全部的增删修改,再保存。是不是等死,要老半天才好,任务管理器显示程序失去反应。而这些我都改写了方法,均实现秒级完成。相信狐爸在内核级肯定也能完成,效果更好。 |
-- 作者:benwong2013 -- 发布时间:2016/5/13 14:51:00 -- 请问用什么办法? [此贴子已经被作者于2016/5/13 14:51:38编辑过]
|
-- 作者:大红袍 -- 发布时间:2016/5/13 14:53:00 -- 以下是引用benwong2013在2016/5/13 14:51:00的发言:
请问用什么办法? [此贴子已经被作者于2016/5/13 14:51:38编辑过]
人家说的东西和你做的东西没有任何关联。 |
-- 作者:benwong2013 -- 发布时间:2016/5/13 15:00:00 -- 上面的代码是进行一列重复性的判定,若要进行两列的重复性判定,但两列判定满足的时候才进行,请问应如何处理? |