以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  BUG,删除行后,数值框里面的数据不会变动  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=98847)

--  作者:jick0526
--  发布时间:2017/4/7 22:57:00
--  BUG,删除行后,数值框里面的数据不会变动
If e.DataCol.Name = "仓库" AndAlso Forms("表A主窗口").Opened
    Dim txtbox As WinForm.numericComboBox = Forms("表A主窗口").Controls("仓库总和")
    txtbox.Value = e.DataTable.Compute("Sum(仓库)")
End If

老师上面的代码是“仓库”数值框里面的数据会等于表A的仓库列的总和,但刚才发现个BUG,当我更改单元格数据时,
“仓库”数值框的数据会随之变动,这没错,但是当我删除有数据的单元格时,数值框的数据还是保持原来的数据。只有直接在单元格里直接输入或更改,数值框里面的数据
才会随之变动,我想要的是删除行,数值框里面的数据也会随之变动,这代码该怎么改,麻烦老师帮我看下,谢谢!

--  作者:有点蓝
--  发布时间:2017/4/7 23:08:00
--  
删除数据不会触发这个事件的,这个不是bug,每个事件都有自己触发的条件,并不是一个事件就能打天下的

DataRowDeleted事件使用类似的代码重新计算


--  作者:jick0526
--  发布时间:2017/4/7 23:44:00
--  

DataTable.Compute("Sum(仓库)")=Forms("表A主窗口").Controls("仓库总和")

老师,我不知道该怎么改,试了不行,麻烦帮我改下,谢谢!

--  作者:有点蓝
--  发布时间:2017/4/8 8:58:00
--  
If  Forms("表A主窗口").Opened
    Dim txtbox As WinForm.numericComboBox = Forms("表A主窗口").Controls("仓库总和")
    txtbox.Value = e.DataTable.Compute("Sum(仓库)")
End If