ExecuteReader生成的是一个临时表,你并没有为这个表设置事件,也木有办法设置事件,所以你只能手工编码计算:
Sel ect Case e.DataCol.name
Case "入库单价"
Dim dr As DataRow = e.DataRow
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SEL ECT * F rom {材料} Where [定额编码] = '" & dr("定额编码") & "'"
dt = cmd.ExecuteReader(True)
If dt.DataRows.Count > 0 Then
Dim dr1 AS DataRow = dt.DataRows(0)
dr1("成本价") = dr("入库单价")
if dr1.isnull("运杂费") then
dr1("材料原价")=(dr1("成本价")*dr1("主材损耗率") * ( 1+dr1("利润率")+dr1("挂靠管理费率")))*(1+dr1("增值税率"))
Else
dr1("材料原价")=((dr1("运杂费")+dr1("成本价")*dr1("主材损耗率") )* ( 1+dr1("利润率")+dr1("挂靠管理费率")))*(1+dr1("增值税率"))
End if
dt.Save()
End If
[此贴子已经被作者于2016/10/5 7:14:41编辑过]