以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- 金额分摊余额 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=151968) |
-- 作者:hopestarxia -- 发布时间:2020/7/8 3:33:00 -- 金额分摊余额 老师,窗口中有NumericComboBox2插件,以及表Table1; 现在想在NumericComboBox2中输入数值后,实现将输入的数值分摊到Table1表中行明细列, 例如分摊金额列为 r("amount"),求出应该分摊比例的公式取行数据和表汇总数据r("tjs") / t.Compute("Sum(tjs)") 执行按钮代码如下: Dim t As Table = e.form.Controls("Table1").Table For Each r As Row In t.Rows r("amount") = e.Form.Controls("NumericComboBox2").value * r("tjs") / t.Compute("Sum(tjs)") Next 执行以上代码后,分摊金额计算完毕,但是结果会产生小数,例分摊金额为1000元,可以最的每行合计起来等于1000.01元或999.99元等,明细加起来和总额正负差几分钱范围内。 增加如下代码,想实现将汇总多余的部份加减到窗口表中第一行里面,达到明细加起来等于录入的总金额,代码如下: Dim r1 As Row = Tables("分配费用_Table1").Rows(0) r1("amount") = 0 r1("amount") = e.Form.Controls("NumericComboBox2").value - t.Compute("Sum(amount)") 请问代码为何无效?没关有实现效果
|
-- 作者:有点蓝 -- 发布时间:2020/7/8 8:54:00 -- tjs、amount列改为高精度类型列 没有实现效果看看是不是有其他代码影响了
|
-- 作者:hopestarxia -- 发布时间:2020/7/13 20:45:00 -- 谢谢老师,前面是我的小数位太多了,我后面调整了一下可以了。 |
-- 作者:lds -- 发布时间:2021/4/20 14:44:00 -- 这个怎么取两位小数啊, Dim t As Table = e.form.Controls("Table1").Table For Each r As Row In t.Rows r("amount") = e.Form.Controls("NumericComboBox2").value * r("tjs") / t.Compute("Sum(tjs)") Next 根据你的代码我设置了随机分割金额, DataTables("金额").DataRows.Clear() Dim hs As Double= e.Form.Controls("NumericComboBox2").value Tables("金额").AddNew(hs) DataTables("金额").DataCols("金额").SetFormat("0.00") Dim t As Table = e.form.Controls("Table5").Table For Each r As Row In t.Rows r("金额") = e.Form.Controls("NumericComboBox1").value * r("序号") / t.Compute("Sum(序号)") Next Dim r1 As Row = Tables("金额").Rows(0) r1("金额") = 0 r1("金额") = e.Form.Controls("NumericComboBox1").value - t.Compute("Sum(金额)") Tables("金额").Cols("金额").GrandTotal = True Tables("金额").GrandTotal = True 左边是没有格式的实际四位小数金额,右边是保留格式化的金额,希望除完实际最多就是两位小数的金额该怎么设置呢?
|
-- 作者:有点蓝 -- 发布时间:2021/4/20 14:52:00 -- 参考:http://www.foxtable.com/webhelp/topics/0361.htm r1("金额") = Round2(e.Form.Controls("NumericComboBox1").value - t.Compute("Sum(金额)"),2)
|
-- 作者:lds -- 发布时间:2021/4/20 15:05:00 -- 收到,谢谢了. |