Foxtable(狐表)用户栏目专家坐堂 → 如何判断自动复制行内容


  共有4911人关注过本帖树形打印复制链接

主题:如何判断自动复制行内容

帅哥哟,离线,有人找我吗?
ybc76
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:136 积分:1090 威望:0 精华:0 注册:2011/12/18 14:29:00
如何判断自动复制行内容  发帖心情 Post By: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   ‘但这句虽然产品编号自动消除了,可产品名称还会复制上去,如何不让复制过来的几列的内容也不复制进去并也不增加行呢?

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2013-12-28 11:28:02编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By: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("产品名称")
     dr("产品规格") = r("产品规格")
     dr("产品型号") = r("产品型号")
end if


 回到顶部
帅哥哟,离线,有人找我吗?
ybc76
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:136 积分:1090 威望:0 精华:0 注册:2011/12/18 14:29:00
  发帖心情 Post By:2013/12/28 12:24:00 [只看该作者]

出错,应该写在哪个事件里

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/28 12:29:00 [只看该作者]

参考帮助,就在你原本的代码中做.

实在 不会就把文件例子发上来.

 回到顶部
帅哥哟,离线,有人找我吗?
ybc76
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:136 积分:1090 威望:0 精华:0 注册:2011/12/18 14:29:00
  发帖心情 Post By: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

 回到顶部