以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 计算代码问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=87325) |
-- 作者:feixianzhi -- 发布时间:2016/7/8 10:43:00 -- 计算代码问题 Dim Ar As DataRow = e.DataRow Select Case e.DataCol.Name Case "合同进价","标价","扣率","补差单价" If Ar.IsNull("合同进价") OrElse Ar.IsNull("标价") OrElse Ar.IsNull("扣率") Then Ar("补差单价") = Nothing Else Ar("补差单价") = Ar("合同进价") -Ar("标价") * Ar("扣率") End If End Select 这段代码我用来求补差单价。代码没问题,但我想,计算出来的结果,有的需要人为改动。我在补差单价列输入改动的值后,还是变成代码计算的值。哪位大师能帮帮忙。
|
-- 作者:大红袍 -- 发布时间:2016/7/8 10:51:00 -- Dim Ar As DataRow = e.DataRow
Select Case e.DataCol.Name
Case "合同进价","标价","扣率"
If Ar.IsNull("合同进价") OrElse Ar.IsNull("标价") OrElse Ar.IsNull("扣率") Then
Ar("补差单价") = Nothing
Else
Ar("补差单价") = Ar("合同进价") -Ar("标价") * Ar("扣率")
End If
End Select
|
-- 作者:feixianzhi -- 发布时间:2016/7/8 11:05:00 -- 谢谢大红袍老师。 |
-- 作者:feixianzhi -- 发布时间:2016/7/8 11:10:00 -- 大红袍老师,代码怎么改,能实现:一是补差单价实现四舍五入到小数点后两位。二是补差单价负值的自动成零。谢谢大红袍老师。 |
-- 作者:大红袍 -- 发布时间:2016/7/8 11:18:00 -- dim n As Double = Ar("合同进价") -Ar("标价") * Ar("扣率") Ar("补差单价") = iif(n < 0, 0, Format(n, "0.00")) |
-- 作者:feixianzhi -- 发布时间:2016/7/8 12:12:00 -- 谢谢大红袍老师,辛苦了。 |
-- 作者:feixianzhi -- 发布时间:2016/7/8 12:18:00 -- \'以下代码计算补差单价 Dim Ar As DataRow = e.DataRow Select Case e.DataCol.Name Case "合同进价","标价","扣率" If Ar.IsNull("合同进价") OrElse Ar.IsNull("标价") OrElse Ar.IsNull("扣率") Then Ar("补差单价") = Nothing Else Ar("补差单价") = Ar("合同进价") -Ar("标价") * Ar("扣率") End If End Select \'以下代码,如果补差单价为负则为零,并小数点后3位 Dim n As Double = Ar("合同进价") -Ar("标价") * Ar("扣率") Ar("补差单价") = iif(n < 0, 0, Format(n, "0.000")) 大红袍老师,我的代码改完是这样。但补差单价又变成只能计算,而不能人为改动了。怎么办呢。
|
-- 作者:大红袍 -- 发布时间:2016/7/8 12:20:00 -- Dim Ar As DataRow = e.DataRow
Select Case e.DataCol.Name
Case "合同进价","标价","扣率"
If Ar.IsNull("合同进价") OrElse Ar.IsNull("标价") OrElse Ar.IsNull("扣率") Then
Ar("补差单价") = Nothing
Else
Dim n As Double = Ar("合同进价") -Ar("标价") * Ar("扣率")
Ar("补差单价") = iif(n < 0, 0, Format(n, "0.000")) End If
End Select
|
-- 作者:feixianzhi -- 发布时间:2016/7/8 12:24:00 -- 谢谢大红袍老师。 |