以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何判断自动复制行内容 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=44330) |
-- 作者:ybc76 -- 发布时间:2013/12/28 11:27:00 -- 如何判断自动复制行内容 问题:如何先判断A表是否有重复相同编号的产品名称,如果有重复相同的名称,双击B表当前行则不自动添加行并复制当前行的内容,如果不是重复名称,则双击B表的行后就会自动添加一行空行并复制B表中的当前行内容,我下面的代码只是做到了双击B表当前行,A表自动增加复制B表当前行的内容。在B表属性双击事件中设置: Dim r As Row = Tables("cpyb").Current Dim dr As DataRow = DataTables("xsdd").Addnew() dr("产品编号") = r("产品编号") dr("产品名称") = r("产品名称") dr("产品规格") = r("产品规格") dr("产品型号") = r("产品型号") 而A表的Datacolchanged事件中: Select Case e.DataCol.name Case "产品编号" Dim dr As DataRow = e.DataRow If dr.IsNull("产品编号") = False Then If e.DataTable.Compute("Count([_Identify])","产品编号 = \'" & dr("产品编号") & "\'") > 1 Then MessageBox.Show("已经存在相同产品名称!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) e.DataRow(e.DataCol.Name) = e.OldValue \'取消输入 End If End If End Select ‘但这句虽然产品编号自动消除了,可产品名称还会复制上去,如何不让复制过来的几列的内容也不复制进去并也不增加行呢? [此贴子已经被作者于2013-12-28 11:28:02编辑过]
|
-- 作者:Bin -- 发布时间:2013/12/28 11:38:00 -- Dim r As Row = Tables("cpyb").Current Dim dr As DataRow = datatables("xsdd").Find("产品编号 = \'" & r("产品编号") & "\' and 产品名称=\'" & r("产品名称") & "\'") if dr is nothing then DataTables("xsdd").Addnew() dr("产品编号") = r("产品编号") dr("产品名称") = r("产品名称") |
-- 作者:ybc76 -- 发布时间:2013/12/28 12:24:00 -- 出错,应该写在哪个事件里 |
-- 作者:Bin -- 发布时间:2013/12/28 12:29:00 -- 参考帮助,就在你原本的代码中做. 实在 不会就把文件例子发上来.
|
-- 作者:ybc76 -- 发布时间:2013/12/28 12:38:00 -- 我写成这样就行了。 Dim r As Row = Tables("cpyb").Current Dim m As DataRow = DataTables("xsdd").Find("产品编号 = \'" & r("产品编号") & "\' and 产品名称=\'" & r("产品名称") & "\'") If m Is Nothing Then Dim dr As DataRow = DataTables("xsdd").Addnew() dr("产品编号") = r("产品编号") dr("产品名称") = r("产品名称") dr("产品规格") = r("产品规格") dr("产品型号") = r("产品型号") End If |