以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 重复问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=122845) |
-- 作者:3076469014 -- 发布时间:2018/8/2 21:49:00 -- 重复问题 此主题相关图片如下:捕获11.jpg 此主题相关图片如下:捕获12.jpg 老师,我从检验明细(逻辑列选项形式)自动生成到入库明细,怎样编写代码避免入库明细重复? |
-- 作者:3076469014 -- 发布时间:2018/8/2 21:50:00 -- 此主题相关图片如下:捕获.jpg |
-- 作者:有点甜 -- 发布时间:2018/8/2 22:29:00 -- 方法一:
http://www.foxtable.com/webhelp/scr/0680.htm
方法二:
用find查找一下,如果存在,就不addnew
http://www.foxtable.com/webhelp/scr/1451.htm
|
-- 作者:3076469014 -- 发布时间:2018/8/3 10:34:00 --
|
-- 作者:有点甜 -- 发布时间:2018/8/3 10:52:00 -- 贴出你写的代码。 |
-- 作者:3076469014 -- 发布时间:2018/8/3 11:04:00 -- 此主题相关图片如下:捕获2.jpg 此主题相关图片如下:捕获1.jpg 此主题相关图片如下:捕获.jpg 老师,我是从A表写第一段代码,生成到B表,但是出现了重复问题,我编写了图3的代码来防止,功能无法实现 [此贴子已经被作者于2018/8/3 11:05:52编辑过]
|
-- 作者:有点甜 -- 发布时间:2018/8/3 11:08:00 -- 不要截图,拷贝粘贴出来,完整的代码。 |
-- 作者:3076469014 -- 发布时间:2018/8/3 11:17:00 -- If e.DataCol.Name = "处理结果_入库" AndAlso e.DataRow("处理结果_入库") = True Then
If e.DataCol.Name = "收料编号" Then \'如果内容发生变动的是品名列 If e.NewValue Is Nothing Then \'如果新值是空白,也就是品名列的内容为空 e.DataRow("采购编号") = Nothing \'那么清空此行单价列的内容 e.DataRow("物料代码") = Nothing e.DataRow("物料描述") = Nothing e.DataRow("规格型号") = Nothing e.DataRow("单位") = Nothing e.DataRow("来料数量") = Nothing e.DataRow("送货单号") = Nothing e.DataRow("入库数量") = Nothing e.DataRow("供应商简称") = Nothing Else Dim dr As DataRow\'否则在产品表查找同名的产品行,将找到的行赋值给变量dr dr = DataTables("检验明细").Find("[收料编号] = \'" & e.NewValue & "\'") If dr IsNot Nothing Then \'如果找到了同名的产品行,也就是dr不是Nothing e.DataRow("采购编号") = dr("采购编号") e.DataRow("物料代码") = dr("物料代码") e.DataRow("物料描述") = dr("物料描述") e.DataRow("规格型号") = dr("规格型号") e.DataRow("单位") = dr("单位") e.DataRow("来料数量") = dr("来料数量") e.DataRow("送货单号") = dr("送货单号") e.DataRow("入库数量") = dr("入库数量") e.DataRow("供应商简称") = dr("供应商简称") End If End If End If
|
-- 作者:有点甜 -- 发布时间:2018/8/3 11:20:00 -- If e.DataCol.Name = "处理结果_入库" AndAlso e.DataRow("处理结果_入库") = True Then Dim nma() As String = {"送货单号","收料编号","采购编号","物料代码","物料描述","规格型号","单位","来料数量","入库数量","供应商简称"} \'A表数据来源列 Dim nmb() As String = {"送货单号","收料编号","采购编号","物料代码","物料描述","规格型号","单位","来料数量","入库数量","供应商简称"} \'B表数据接收列 Dim dr As DataRow = DataTables("入库明细").Find("[收料编号] = \'" & e.DataRow("收料编号") & "\'") If dr Is Nothing Then dr = DataTables("入库明细").AddNew For i As Integer = 0 To nma.Length - 1 dr(nmb(i)) = e.DataRow(nma(i)) Next End If |
-- 作者:3076469014 -- 发布时间:2018/8/9 8:51:00 -- If e.DataCol.Name = "处理结果_入库" AndAlso e.DataRow("处理结果_入库") = True Then
老师,这段代码有点问题,刚写进去的时候可以执行,现在点击选择,他不添加执行 |