Foxtable(狐表)用户栏目专家坐堂 → 如何保证产品不重复?


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

主题:如何保证产品不重复?

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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
如何保证产品不重复?  发帖心情 Post By:2011/9/12 10:45:00 [只看该作者]

我的一个产品由三个 项目组成分别是“产品名称”“规格”“单位” 只要有一个项目不相同,就视为不相同的产品,当三个项目都相同的时候就视为相同的产品,相同的产品则不允许再录入。如何实现呢?

 

如图 第5行产品 和第1行产品相同,则不允许输入,并弹出提示框“已经存在相同的产品”如何实现呢?


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

 

项目如下:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:琼富塑料管理系统n_0912.zip

[此贴子已经被作者于2011-9-12 10:46:43编辑过]

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


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2011/9/12 10:56:00 [只看该作者]

If ",产品名称,规格,单位,".indexof("," & e.DataCol.Name & ",")>-1 Then
    Dim
 dr,dr1 As DataRow 
    dr = e.Datarow
    dr1 = e.
DataTable.Find("产品名称 = '" & dr("
产品名称") & "'and 规格 = '" & dr("规格") & "'and 单位 ='" & dr("单位") & "'")
    If dr1 IsNot Nothing Then
        MessageBox.Show(
"此产品已经存在!")
        e.Datarow( e.DataCol.Name
nothing
    End
 If
End
 
If

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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
  发帖心情 Post By:2011/9/12 15:49:00 [只看该作者]

这个是 要放到哪里去呢?

我放到 表属性 validateEdit  不行呀

 


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

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/9/12 16:49:00 [只看该作者]

DataColChanged事件:

 

Select Case  e.DataCol.Name
    Case "第一列","第二列","第三列"
    Dim dr As DataRow
    dr = e.DataTable.Find("第一列 = '" & e.DataRow("第一列") & "' And 第二列 = '" & e.DataRow("第二列") & "' And 第三列 = '" & e.DataRow("第三列") & "'")
    If dr IsNot Nothing Then
        e.DataRow(e.DataCol.Name) = Nothing
    End If
End Select


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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
  发帖心情 Post By:2011/10/11 11:52:00 [只看该作者]

不行的。这样你永远都不能完整录入第一行。

因为只要你录入一行,就满足 If dr IsNot Nothing Then

 

应该判断是否存在两行相同的数据

如何实现呢?


 


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/10/11 13:54:00 [只看该作者]

Select Case  e.DataCol.Name
    Case "第一列","第二列","第三列"
    Dim drs As List(of DataRow)
    drs = e.DataTable.Select("第一列 = '" & e.DataRow("第一列") & "' And 第二列 = '" & e.DataRow("第二列") & "' And 第三列 = '" & e.DataRow("第三列") & "'")
    If drs.Count > 1 Then
        e.DataRow(e.DataCol.Name) = Nothing
    End If
End Select

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/10/11 14:29:00 [只看该作者]

Dim Total As Integer
Dim Amount As Double
With DataTables("产品表")
    Total = .Compute("count(产品名称)","产品名称 = '" & CurrentTable.current("产品名称") & "' ")
End With
Output.Show("相同产品的个数:" & Total)

 回到顶部