Dim dr As DataRow = e.DataRow
If e.DataCol.Name = "销售型号" Then '如果内容发生变动的是品名列
If e.NewValue Is Nothing Then '如果新值是空白,也就是品名列的内容为空
dr("吊牌单价") = Nothing '那么清空此行单价列的内容
dr("成本单价") = Nothing
Else
Dim dr2 As DataRow
'否则在产品表查找同名的产品行,将找到的行赋值给变量dr
dr2 = DataTables("基本资料").Find("[型号] = '" & e.NewValue & "'")
If dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
dr("吊牌单价") = dr2("单价")
dr("成本单价") = dr2("成本")
End If
End If
End If
Select Case e.DataCol.Name
Case "销售单价", "吊牌单价"
If dr.IsNull("销售单价") OrElse dr.IsNull("吊牌单价") OrElse dr("吊牌单价") = 0 Then
dr("折扣扣率") = Nothing
Else
dr("折扣扣率") = dr("销售单价") / dr("吊牌单价")
End If
End Select
Select Case e.DataCol.Name
Case "销售公司", "销售型号"
If dr.IsNull("销售公司") OrElse dr.IsNull("销售型号") Then
dr("套餐折扣") = Nothing
Else
Dim pr As DataRow
Dim filter As String
filter = "结算公司 = '" & dr2("销售公司") & "' And 型号 = '" & dr2("销售型号") & "'"
pr = DataTables("套餐").Find(filter)
If pr IsNot Nothing Then
dr("套餐折扣") = pr("套餐折扣")
End If
End If
Case "吊牌单价", "套餐折扣", "结算类别", "销售单价"
If dr("结算类别") = "代销" Then
dr("结算金额") = dr("吊牌单价") * dr("套餐折扣")
ElseIf dr("结算类别") = "经销" Then
dr("结算金额") = dr("销售单价") * dr("套餐折扣")
End If
Case "结算金额", "成本单价"
If dr.IsNull("结算金额") OrElse dr.IsNull("成本单价") Then '如果新值是空白,也就是品名列的内容为空
dr("成本预算") = Nothing '那么清空此行单价列的内容
Else
'否则在产品表查找同名的产品行,将找到的行赋值给变量dr
dr("成本预算") = dr("结算金额") - dr("成本单价")
End If
End Select