如果当前行的公差等级数值(精密),在极限偏差表中未能找到匹配的(粉色部分代码),就转到一般公差表中去查找,蓝版帮我看一下。
If e.DataCol.Name = "公差等级" OrElse e.DataCol.Name = "尺寸" Then '如果内容发生变动的是品名列
If e.DataRow.IsNull("公差等级") OrElse e.DataRow.IsNull("尺寸") Then '如果新值是空白,也就是品名列的内容为空
e.DataRow("极限偏差") = Nothing '那么清空此行单价列的内容
ElseIf
Dim dr As DataRow
'否则在产品表查找同名的产品行,将找到的行赋值给变量dr
Dim cc As Double = e.DataRow("尺寸")
Dim cn As String
If cc <= 18 Then
cn = "A"
Else If cc > 18 AndAlso cc <= 30
cn = "B"
Else If cc > 30 AndAlso cc <= 50
cn = "C"
End If
dr = DataTables("极限偏差表").Find("[公差带] = '" & e.DataRow("公差等级") & "'") Then
Dim idx As Integer = Tables("极限偏差表").Find(e.DataRow("公差等级"), 0, "公差带", True, True, True)
If idx > -1 Then
dr = Tables("极限偏差表").rows(idx).DataRow
e.DataRow("极限偏差") = dr(cn)
End If
ElseIf
Dim dr As DataRow
'否则在产品表查找同名的产品行,将找到的行赋值给变量dr
Dim cc As Double = e.DataRow("尺寸")
Dim cn As String
If cc <= 18 Then
cn = "A"
Else If cc > 18 AndAlso cc <= 30
cn = "B"
Else If cc > 30 AndAlso cc <= 50
cn = "C"
End If
dr = DataTables("一般公差").Find("[公差等级] = '" & e.DataRow("公差等级") & "'") Then
Dim idx As Integer = Tables("一般公差").Find(e.DataRow("公差等级"), 0, "公差等级", True, True, True)
If idx > -1 Then
dr = Tables("一般公差").rows(idx).DataRow
e.DataRow("极限偏差") = dr(cn)
End If
End If
End If