Foxtable(狐表)用户栏目专家坐堂 → 重复值判断提示及输入


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

主题:重复值判断提示及输入

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/8 9:24:00 [显示全部帖子]

试试改成

 

Select Case e.DataCol.Name
    Case "住院号"
        Dim Result As DialogResult
        With DataTables("高值耗材病人使用登记表")
            Dim drs As List(Of DataRow)
            drs = .Select("住院号 = '" & e.NewValue & "'")
            If drs.count>0 Then
                If drs.count=1 Then
                    Result=MessageBox.Show(""& e.NewValue  &"共有"& drs.count &"处重复, 姓名:"& drs(0)("患者姓名") &" ,手术日期:"& drs(0)("手术日期") &" 是否继续录入?", "提示",                           MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                ElseIf drs.count=2 Then
                    Result=MessageBox.Show(""& e.NewValue  &"共有"& drs.count &"处重复, 姓名:"& drs(0)("患者姓名") &" ,手术日期:"& drs(0)("手术日期") &" 姓名:"& drs(1)("患者姓名") &" ,手术日期:"& drs(1)("手术日期") &"  是否继续录入?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                End If
                If Result = DialogResult.Yes Then
                    e.DataRow("住院号")= e.NewValue & "-" & drs.count+1
                Else
                    e.Cancel = True
                End If
            End If
        End With
End Select


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/8 10:20:00 [显示全部帖子]

Dim e


Select Case e.DataCol.Name
    Case "住院号"
        Dim Result As DialogResult
        With DataTables("高值耗材病人使用登记表")
            Dim drs As List(Of DataRow)
            drs = .Select("住院号 = '" & e.NewValue & "'")
            If drs.count>0 Then
                If drs.count=1 Then
                    Result=MessageBox.Show(""& e.NewValue  &"共有"& drs.count &"处重复, 姓名:"& drs(0)("患者姓名") &" ,手术日期:"& drs(0)("手术日期") &" 是否继续录入?", "提示",                           MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                ElseIf drs.count=2 Then
                    Result=MessageBox.Show(""& e.NewValue  &"共有"& drs.count &"处重复, 姓名:"& drs(0)("患者姓名") &" ,手术日期:"& drs(0)("手术日期") &" 姓名:"& drs(1)("患者姓名") &" ,手术日期:"& drs(1)("手术日期") &"  是否继续录入?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                Else
                    Result=MessageBox.Show(""& e.NewValue  &"共有"& drs.count &"处重复,是否继续录入?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

                   
                End If
                If Result = DialogResult.Yes Then
                    e.DataRow("住院号")= e.NewValue & "-" & drs.count+1
                Else
                    e.Cancel = True
                End If
            End If
        End With
End Select


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/8 10:21:00 [显示全部帖子]

如果还有问题,实例发上来测试。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/8 12:02:00 [显示全部帖子]

参考

 

Select Case e.DataCol.Name
    Case "住院号"
        Dim Result As DialogResult
        With DataTables("高值耗材病人使用登记表")
            Dim drs As List(Of DataRow)
            drs = .Select("住院号 = '" & e.NewValue & "'")
            If drs.count>0 Then
                If drs.count=1 Then
                    Result=MessageBox.Show(""& e.NewValue  &"共有"& drs.count &"处重复, 姓名:"& drs(0)("患者姓名") &" ,手术日期:"& drs(0)("手术日期") &" 是否继续录入?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                ElseIf drs.count=2 Then
                    Result=MessageBox.Show(""& e.NewValue  &"共有"& drs.count &"处重复, 姓名:"& drs(0)("患者姓名") &" ,手术日期:"& drs(0)("手术日期") &" 姓名:"& drs(1)("患者姓名") &" ,手术日期:"& drs(1)("手术日期") &"  是否继续录入?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                End If
                If Result = DialogResult.Yes Then
                    e.newvalue = e.NewValue & "-" & drs.count                   
                Else
                    e.Cancel = True
                End If
                ' Else
                '     MessageBox.Show("未找到相同的记录", "提示")
            End If
        End With
End Select


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/8 14:56:00 [显示全部帖子]

以下是引用蓝蚂蚁在2018/11/8 14:50:00的发言:
已经解决了 ,辛苦老师。再请教一个问题,上面的一条代码:
drs = .Select("住院号 = '" & e.NewValue & "'") 可以换成:
drs = .Select("住院号 like '" & e.NewValue & "%'")吗?
 

 

Select Case e.DataCol.Name
    Case "住院号"
        Dim Result As DialogResult
        With DataTables("高值耗材病人使用登记表")
            Dim drs As List(Of DataRow)
            drs = .Select("住院号 = '" & e.NewValue & "'")
            If drs.count>0 Then
                If drs.count=1 Then
                    Result=MessageBox.Show(""& e.NewValue  &"共有"& drs.count &"处重复, 姓名:"& drs(0)("患者姓名") &" ,手术日期:"& drs(0)("手术日期") &" 是否继续录入?", "提示",                           MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                ElseIf drs.count=2 Then
                    Result=MessageBox.Show(""& e.NewValue  &"共有"& drs.count &"处重复, 姓名:"& drs(0)("患者姓名") &" ,手术日期:"& drs(0)("手术日期") &" 姓名:"& drs(1)("患者姓名") &" ,手术日期:"& drs(1)("手术日期") &"  是否继续录入?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                Else
                    Result=MessageBox.Show(""& e.NewValue  &"共有"& drs.count &"处重复,是否继续录入?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

                   
                End If
                If Result = DialogResult.Yes Then
                    e.newvalue = e.NewValue & "-" & drs.count
                Else
                    e.Cancel = True
                End If
            End If
        End With
End Select


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/8 15:27:00 [显示全部帖子]

drs = .Select("住院号 = '" & e.NewValue & "'")

 

改成

 

drs = .Select("住院号 like '" & e.NewValue & "%'")


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/8 16:03:00 [显示全部帖子]

Select Case e.DataCol.Name
    Case "住院号"
        If e.newvalue > "" Then
            Dim Result As DialogResult
            With DataTables("高值耗材病人使用登记表")
                Dim drs As List(Of DataRow)
                drs = .Select("住院号 like '" & e.NewValue & "%'")
                If drs.count>0 Then
                    If drs.count=1 Then
                        Result=MessageBox.Show(""& e.NewValue  &"共有"& drs.count &"处重复, 姓名:"& drs(0)("患者姓名") &" ,手术日期:"& drs(0)("手术日期") &" 是否继续录入?", "提示",                           MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                    ElseIf drs.count=2 Then
                        Result=MessageBox.Show(""& e.NewValue  &"共有"& drs.count &"处重复, 姓名:"& drs(0)("患者姓名") &" ,手术日期:"& drs(0)("手术日期") &" 姓名:"& drs(1)("患者姓名") &" ,手术日期:"& drs(1)("手术日期") &"  是否继续录入?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                    Else
                        Result=MessageBox.Show(""& e.NewValue  &"共有"& drs.count &"处重复,是否继续录入?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                       
                    End If
                    If Result = DialogResult.Yes Then
                        e.newvalue = e.NewValue & "-" & drs.count
                    Else
                        e.Cancel = True
                    End If
                End If
            End With
        End If
End Select

 回到顶部