我在制造信息里“修改按钮”AfterLoad设置代码,成功读取了当前选定行的内容到相应的弹出窗口里。AfterLoad里的代码是
Dim dt As DataTable
Dim dst As Table = Tables("制造信息")
Dim dr As Row = dst.Current '获得选定行
e.form.controls("ComboBox1").text=dr("填表人")
e.form.controls("ComboBox2").text=dr("产品基本信息_机型")
e.form.controls("TextBox2").text=dr("产品基本信息_制造编号")
e.form.controls("TextBox3").text=dr("产品基本信息_发动机号")
e.form.controls("TextBox4").text=dr("产品基本信息_液压阀号")
e.form.controls("DateTimePicker1").text=dr("产品基本信息_生产日期")
但是有个新问题来了,由于我之前设置过有相同编号的行不能保存,假如我在这个修改的地方保存的时候,系统认为需要保存的内容和保存前的内容有重复。
之前的代码是这样的:
Dim dr = DataTables("制造信息").Find("产品基本信息_制造编号 = '" & e.form.controls("TextBox2").text & "'")
Dim dr2 = DataTables("制造信息").Find("产品基本信息_发动机号 = '" & e.form.controls("TextBox3").text & "'")
Dim dr3 = DataTables("制造信息").Find("产品基本信息_液压阀号 = '" & e.form.controls("TextBox4").text & "'")
If e.form.Controls("ComboBox1").Value Is Nothing Then
MsgBox("填表人未填 , 不能保存!",64,"提示")
Else If e.form.Controls("ComboBox2").Value Is Nothing Then
MsgBox("机型未选择 , 不能保存!",64,"提示")
Else If e.form.Controls("TextBox2").Value Is Nothing Then
MsgBox("制造编号未填 , 不能保存!",64,"提示")
Else If e.Form.Controls("TextBox3").Value Is Nothing Then
MsgBox("发动机号未填 , 不能保存!",64,"提示")
Else If e.Form.Controls("TextBox4").Value Is Nothing Then
MsgBox("液压阀号未填 , 不能保存!",64,"提示")
Else If e.Form.Controls("DateTimePicker1").Value Is Nothing Then
MsgBox("生产日期未选择 , 不能保存!",64,"提示")
Else If dr IsNot Nothing Then
MsgBox("制造编号重复 , 不能保存",64,"提示")
Else If dr2 IsNot Nothing Then
MsgBox("发动机号重复 , 不能保存",64,"提示")
Else If dr3 IsNot Nothing Then
MsgBox("液压阀号重复 , 不能保存",64,"提示")
Else
Tables("制造信息").AddNew()
Tables("制造信息").current("产品基本信息_机型")=e.form.controls("ComboBox2").text
Tables("制造信息").current("产品基本信息_制造编号")=e.form.controls("TextBox2").text
Tables("制造信息").current("产品基本信息_发动机号")=e.form.controls("TextBox3").text
Tables("制造信息").current("产品基本信息_液压阀号")=e.form.controls("TextBox4").text
Tables("制造信息").current("产品基本信息_生产日期")=e.form.controls("DateTimePicker1").text
Tables("制造信息").current("填表人")=e.Form.Controls("ComboBox1").text
End If
e.form.Close()
通过前三行
Dim dr = DataTables("制造信息").Find("产品基本信息_制造编号 = '" & e.form.controls("TextBox2").text & "'")
Dim dr2 = DataTables("制造信息").Find("产品基本信息_发动机号 = '" & e.form.controls("TextBox3").text & "'")
Dim dr3 = DataTables("制造信息").Find("产品基本信息_液压阀号 = '" & e.form.controls("TextBox4").text & "'")
代码会去寻找表(制造信息)里面有没有相同的制造编号、发动机号和液压阀号,如果有相同的就会提示。我应该怎么样去修改一下,让系统自动略过我正在修改的这一行,只搜索其他的?
谢谢!