还是出现同样错误
完整代码:
Dim dt As DataRow
dt = DataTables("库存").Find("[销售关联列] = '" & e.DataRow("_Identify") & "'")
Select Case e.DataCol.Name
Case "商品名称"
If dt Is Nothing Then '如果没有对应行
Dim dr As DataRow = DataTables("库存").AddNew()
dr("销售关联列") = e.DataRow("_Identify")
dr("业务日期") = e.DataRow("业务日期")
dr("关联业务") = "销售"
dr("商品名称") = e.DataRow("商品名称")
dr("往来单位名称") = e.DataRow("客户名称")
dr("关联业务单号") = e.DataRow("单据编号")
dr("出库_数量") = e.DataRow("数量")
dr("出库_金额") = e.DataRow("金额")
Else dt("商品名称") = e.DataRow("商品名称")
End If
Case "金额"
e.DataRow("单价") = e.DataRow("金额") / e.DataRow("数量")
dt("出库_金额") = e.DataRow("金额")
Case "数量"
Dim dd As DataRow
Dim cb As DataRow
Dim cd As DataRow
With DataTables("库存")
dd = .Find("[商品名称] = '" & e.DataRow("商品名称") & "'","_Identify Desc",1)
'找出倒数第二次该产品的库存记录
If e.DataRow("数量") = 0 Then
Else If dd Is Nothing Then
MessageBox.Show("当前产品没有库存","提示",MessageBoxButtons.OK)
e.DataRow("数量") = 0
dt("出库_数量") = e.DataRow("数量")
Else
If dd("库存_数量") - e.DataRow("数量") >= 0 Then
dt("出库_数量") = e.DataRow("数量")
cb = .Find("[商品名称] = '" & e.DataRow("商品名称") & "' and ([关联业务] = '销售' Or [关联业务] = '销售退货' Or [关联业务] = '盘盈')","_Identify Desc",1)
'找出倒数第二次该产品的入库记录
cd = .Find("[商品名称] = '" & e.DataRow("商品名称") & "' and ([关联业务] = '销售' Or [关联业务] = '销售退货' Or [关联业务] = '盘盈')","_Identify Desc")
'找出倒数第一次该产品的入库记录
If cb Is Nothing Then
If cd IsNot Nothing Then
'说明该产品只有一次入库记录
e.DataRow("成本") = e.DataRow("数量")*cd("入库_数量")/cd("入库_金额")
Else
msgbox("没有查找到数据")
End If
Else
If cb("库存_数量")-e.DataRow("数量") >= 0 Then
e.DataRow("成本") = e.DataRow("数量")*cb("入库_数量")/cb("入库_金额")
Else
e.DataRow("成本") = cb("库存_金额")+(e.DataRow("数量")-cb("库存_数量"))*cd("入库_数量")/cd("入库_金额")
End If
End If
Else
MessageBox.Show("输入数量超过库存数量:" & dd("库存_数量") & ",请重新输入","提示",MessageBoxButtons.OK)
e.DataRow("数量") = 0
dt("出库_数量") = e.DataRow("数量")
End If
End If
End With
e.DataRow("金额") = e.DataRow("单价") * e.DataRow("数量")
Case "单价"
e.DataRow("金额") = e.DataRow("单价") * e.DataRow("数量")
dt("出库_数量") = e.DataRow("数量")
Case "客户名称"
dt("往来单位名称") = e.DataRow("客户名称")
End Select