Foxtable(狐表)用户栏目专家坐堂 → 如何解决代码冲突?


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

主题:如何解决代码冲突?

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
如何解决代码冲突?  发帖心情 Post By:2023/6/15 10:35:00 [只看该作者]

If e.DataCol.Name = "逻辑列名" AndAlso e.DataRow("逻辑列名") = True Then
    Dim nma() As String = {"
型号","规格","A3","A4"'A表数据来源列
    
Dim nmb() As String = {"型号","规格","B3","B4"} 'B表数据接收列
    
Dim dr As DataRow = DataTables("表B").AddNew
    
For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
    
Next
End
 If

用上面的代码,下面的代码失效,如何解决?

Select Case e.DataCol.name
    Case "型号","规格"
        Dim xh As String
        Dim gg As String
        If e.DataCol.Name= "型号" Then
            xh = e.NewValue
            gg = e.DataRow("规格")
        Else
            gg = e.NewValue
            xh = e.DataRow("型号")
        End If
        If xh > "" AndAlso gg  > "" Then
            
Dim dr As DataRow = e.DataRow
            If e.DataTable.Find("
型号 = '" & xh & "' And 规格 = '" & gg & "'"IsNot Nothing Then
                MessageBox.Show("
已经存在相同型号和规格的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                e.Cancel = True
            End If
        End If

End
 Select

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


加好友 发短信
等级:超级版主 帖子:111381 积分:566969 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/6/15 10:40:00 [只看该作者]

If e.DataCol.Name = "逻辑列名" AndAlso e.DataRow("逻辑列名") = True Then
  If DataTables("表B").Find("型号 = '" & e.DataRow("型号") & "' And 规格 = '" & e.DataRow("规格") & "'"Is Nothing Then
    Dim nma() As String = {"
型号","规格","A3","A4"'A表数据来源列
    
Dim nmb() As String = {"型号","规格","B3","B4"} 'B表数据接收列
    
Dim dr As DataRow = DataTables("表B").AddNew
    
For i As Integer = 0 To nma.Length - 1
        dr(nmb(i)) = e.DataRow(nma(i))
    
Next
  End If
End
 If

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/6/15 15:20:00 [只看该作者]

老师,实例还是无法实现 不重复值录入,请帮处理
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:不重复.zip



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


加好友 发短信
等级:超级版主 帖子:111381 积分:566969 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/6/15 15:42:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:不重复.zip


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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2023/6/15 16:56:00 [只看该作者]

测试一下,下面没有作用,在执行后,再执行没提示,如何实现重复提示?

Select
 Case e.DataCol.name
    Case "型号","规格"
        Dim xh As String
        Dim gg As String
        If e.DataCol.Name= "型号" Then
            xh = e.NewValue
            gg = e.DataRow("规格")
        Else
            gg = e.NewValue
            xh = e.DataRow("型号")
        End If
        If xh > "" AndAlso gg  > "" Then
            
Dim dr As DataRow = e.DataRow
            If e.DataTable.Find("
型号 = '" & xh & "' And 规格 = '" & gg & "'"IsNot Nothing Then
                MessageBox.Show("
已经存在相同型号和规格的行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                e.Cancel = True
            End If
        End If

End
 Select

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


加好友 发短信
等级:超级版主 帖子:111381 积分:566969 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/6/15 17:05:00 [只看该作者]

没有认真看帮助,用错事件了。

 回到顶部