以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 自动填充 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=135177) |
||||
-- 作者:liuandwang -- 发布时间:2019/5/20 9:37:00 -- 自动填充 上述是结算单,现在想添加一个赠送开扇费用的计算,求代码 计算方法:开扇费用 = 开扇数量*开扇单价 赠送开扇数量 = 面积/3(往小取整) 赠送开扇费用 = 赠送开扇数量*开扇单价 添加一列赠送开扇费用,使用代码自动填充赠送开扇费用,实现从该订单第1行开始, 逐行按开扇数量填充赠送开扇费用,直至填充完毕。 如上图,赠送开扇数量为9扇,开扇单价460,赠送开扇费用4140, 第1行赠送开扇费用填充920,第2行460,第3行920,第4行460,第5行1380
|
||||
-- 作者:y2287958 -- 发布时间:2019/5/20 9:46:00 -- 结算单在哪里?图又在哪里? |
||||
-- 作者:liuandwang -- 发布时间:2019/5/20 10:30:00 -- 开扇数量 | 面积 | 开扇单价 | 开扇费用 | 赠送开扇费用 | 2 | 5.33 | 460 | 920 | 920 | 1 | 2.78 | 460 | 460 | 460 | 2 | 7.99 | 460 | 920 | 920 | 1 | 2.75 | 460 | 460 | 460 | 4 | 9.75 | 460 | 1840 | 1380 | 合计 10 | 28.61 | | 4600 | 4140 | 开扇数量合计10扇,赠送开扇数量9扇
|
||||
-- 作者:有点甜 -- 发布时间:2019/5/20 10:47:00 --
请上传具体实例测试。
|
||||
-- 作者:liuandwang -- 发布时间:2019/5/20 11:24:00 --
|
||||
-- 作者:有点甜 -- 发布时间:2019/5/20 11:45:00 -- 参考代码
Dim t As Table = Tables("表A") |
||||
-- 作者:liuandwang -- 发布时间:2019/5/20 13:56:00 -- 赠送开扇个数是以该订单的累计面积合计除以3往小取整得出,赠送开扇费用是以每行的开扇数量乘以开扇单价得出,逐行填充,直到计算完赠送开扇费用。 如,实际开扇个数是10,赠送开扇个数是9,从第1行开始计算赠送开扇费用,直到计算第9个开扇的费用为止 再如:实际开扇个数是100,赠送个数是84,从第1行开始计算赠送开扇费用,直到计算第84个开扇的费用为止
|
||||
-- 作者:有点甜 -- 发布时间:2019/5/20 15:23:00 -- Dim t As Table = Tables("表A") Dim mj As Double = 0 For Each r As Row In t.Rows If r("开扇数量") <> Nothing AndAlso r("生产编号") <> "合计" Then mj += r("面积") End If Next Dim gs As Integer = Math.Floor(mj / 3) Dim c As Integer = 0 For Each r As Row In t.Rows If r("开扇数量") <> Nothing Then If c + r("开扇数量") <= gs Then r("赠送开扇费用") = r("开扇数量") * r("开扇单价") c += r("开扇数量") ElseIf c < gs AndAlso c + r("开扇数量") > gs Then r("赠送开扇费用") = (gs-c) * r("开扇单价") c = gs Else r("赠送开扇费用") = Nothing End If End If Next |
||||
-- 作者:liuandwang -- 发布时间:2019/5/20 16:47:00 -- 其中开扇数量为空时,面积不计算为空的行 再帮忙调整一下代码,谢谢
|
||||
-- 作者:有点甜 -- 发布时间:2019/5/20 16:56:00 -- Dim t As Table = Tables("表A") Dim mj As Double = 0 For Each r As Row In t.Rows If r("开扇数量") <> Nothing AndAlso r("生产编号") <> "合计" Then mj += r("面积") End If Next Dim gs As Integer = Math.Floor(mj / 3) Dim c As Integer = 0 For Each r As Row In t.Rows If r("开扇数量") <> Nothing Then If c + r("开扇数量") <= gs Then r("赠送开扇费用") = r("开扇数量") * r("开扇单价") c += r("开扇数量") ElseIf c < gs AndAlso c + r("开扇数量") > gs Then r("赠送开扇费用") = (gs-c) * r("开扇单价") c = gs Else r("赠送开扇费用") = Nothing End If Else r("赠送开扇费用") = Nothing End If Next |