以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何实现这种计算 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=90847) |
-- 作者:hbhb -- 发布时间:2016/9/22 18:39:00 -- 如何实现这种计算 如果第一行第一列原来的值为2,如果第一行第二列输入4 则第一行第一列等于2+4 = 6,如果第一行第三列输入10 则第一行第一列等于2+4 + 10 = 16。 如果第一行第一列原来的值为5,如果第一行第二列输入4 则第一行第一列等于5+4 = 9,如果第一行第三列输入10 则第一行第一列等于5+4+ 10 = 19。 |
-- 作者:hbhb -- 发布时间:2016/9/22 19:32:00 -- afteredit事件中为何不能实现以上功能?原来的值如何保存不变? Select Case e.Col.Name Case "第二列" Dim a1 As Double a1 = e.Row("第二列") Case "第三列" Dim a2 As Double a2 = e.Row("第二列") e.Row(第一列) = e.Row(第一列) + a2 + a3 End Select |
-- 作者:188802386 -- 发布时间:2016/9/22 20:08:00 -- 建议第一列,第二列,第三列,合计列 |
-- 作者:188802386 -- 发布时间:2016/9/22 20:09:00 -- 合计列采用表达式列,只要1 2 3列一变化,合计列就自动变化 |
-- 作者:hbhb -- 发布时间:2016/9/22 21:05:00 -- 蓝蓝的天大师!!!!!! |
-- 作者:有点蓝 -- 发布时间:2016/9/22 21:42:00 -- DataColChanged Select Case e.DataCol.Name Case "第二列","第三列" e.DataRow("第一列") = e.DataRow("第一列") + e.DataRow(""第二列"") + e.DataRow(""第三列"") End Select |
-- 作者:188802386 -- 发布时间:2016/9/22 21:53:00 -- 这种会不会存在再次修改第二列或第三列时,第一列的数字累加呢 |
-- 作者:有点蓝 -- 发布时间:2016/9/22 22:06:00 -- 除非初始值是固定的,后面几列又是按顺序录入的,否则没有办法避免 |
-- 作者:hbhb -- 发布时间:2016/9/23 0:08:00 -- 还是累计呀,有无办法不累计? |
-- 作者:有点蓝 -- 发布时间:2016/9/23 8:39:00 -- 试试这个 DataColChanged Select Case e.DataCol.Name Case "第二列","第三列" Dim v As Double = e.DataRow("第一列") If e.OldValue <> Nothing Then v = v - e.OldValue e.DataRow("第一列") = e.DataRow(e.DataCol.Name) + v End Select |