DataColChanging中代码如下,其作用是:判断本表中是否有重复的住院号,如果有(一般情况下不会超过有3个重复的),则提示已有几条记录及相关信息,同时把该输入的住院号自动变成:住院号-已有记录数+1(如181003,如果已有重复2个,则输入的住院号变成:181003-3)
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>1 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.conut+1"
Else
e.Cancel = True
End If
End If
End With
End Select
现在的问题:当输入确定有重复的住院号时,没有任何提示,是不是上面的代码有问题?
【说明:住院号单元格输入内容方式是用帮助中的:自定义录入界面之三的方式输入的,
其DropDownOpened代码:
Dim txt As String = e.Form.DropDownBox.Text
Dim tbl As Table = Tables("中联电脑高值耗材使用情况明细弹出窗口_Table1")
If txt = "" Then
tbl.Filter = "已登记=false"
Else
txt = "'%" & txt & "%'"
tbl.Filter = "已登记=False And (姓名 Like " & txt & " Or 住院号 Like " & txt & " Or Convert([手术日期], 'System.String') Like " & txt & " Or 开单科室 Like " & txt
&")"
End If
e.Form.DropDownBox.Select() '将输入焦点返回下拉列表框
其DropDownClosed代码:
If e.Form.DropTable.Name="高值耗材病人使用登记明细主窗口_Table2" Or e.Form.DropTable.Name="高值耗材病人使用登记表" Then
If e.Selected Then '如果选择了值
Dim tbl As Table = Tables("中联电脑高值耗材使用情况明细弹出窗口_Table1")
If tbl.Current IsNot Nothing Then
e.Form.DropDownBox.Value = tbl.Current("住院号")
e.Form.DropTable.Current("患者姓名") = tbl.Current("姓名")
e.Form.DropTable.Current("性别") = tbl.Current("性别")
e.Form.DropTable.Current("年龄") = tbl.Current("年龄")
e.Form.DropTable.Current("科室") = tbl.Current("开单科室")
e.Form.DropTable.Current("床号") = tbl.Current("床号")
e.Form.DropTable.Current("手术日期") = tbl.Current("手术日期")
If e.Form.DropTable IsNot Nothing Then '如果是通过表下拉的
e.Form.DropTable.FinishEditing()
Else '如果是通过窗口下拉的
e.Form.DropDownBox.WriteValue()
End If
End If
End If
End If
】
[此贴子已经被作者于2018/11/8 9:21:00编辑过]