以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 余额问题出错 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=129318) |
-- 作者:kmzb56 -- 发布时间:2018/12/26 9:43:00 -- 余额问题出错 按实列做的收 入,支出,余额问题出错, 其中41号开始错,40行是A用户录入的,41行是B用户录入的,42行是A用户录入的。在同一个办公室不同电脑,外部数据源用的虚拟主机的数据库,请问是什么原因?会不是加载或者没有保存的原因?这种要怎么规避?
|
-- 作者:有点蓝 -- 发布时间:2018/12/26 10:05:00 -- 加载后重置列,重新计算 |
-- 作者:kmzb56 -- 发布时间:2018/12/26 12:11:00 -- 这个不现实嘛,我是在窗口上弄的副表,也不可能重量列嘛?难道在窗口上弄一个重置按钮? |
-- 作者:kmzb56 -- 发布时间:2018/12/26 12:16:00 -- 可不可以用追载的方式?在半秒内追载?这们另一个电脑在输入时已经看到新的数据了? |
-- 作者:有点蓝 -- 发布时间:2018/12/26 14:04:00 -- 可以用追载,但是也必须重置列,否则不会重新计算。 |
-- 作者:kmzb56 -- 发布时间:2018/12/26 14:13:00 -- 你的意思只要是两个客户端输入的就必须重置列?用追载的方式都不能解决这个问题?我是在窗口上的副表,是不是只有增加一个重量的按钮才可以实现? 有什么好方法没?我这个决定了是多用户在不同网络端用的。怎么办呀? |
-- 作者:有点甜 -- 发布时间:2018/12/26 14:27:00 -- 修改你datacolchanged事件的代码吧,把代码改成后台统计方式获取。 |
-- 作者:kmzb56 -- 发布时间:2019/1/7 15:54:00 -- 版主:不么怎么操作,有什么简单的方法没?你说的用后台的方式真心不懂。我是用高效率的流水账设计的设计列子做的,能更清楚些么?我能想到的是手动加一个重置第一行的方式,或者用间隔100毫秒加载的方法,后台统计的方式不会。请指导一下了,要完工一了。 |
-- 作者:有点甜 -- 发布时间:2019/1/7 16:17:00 -- 贴出你所写相关代码。 |
-- 作者:kmzb56 -- 发布时间:2019/1/8 9:32:00 -- 表事件
微信零钱_DataColChanged
Select Case e.DataCol.Name Case "收入","支出" For Each dr As DataRow In e.DataTable.Select("[_SortKey] >= " & e.DataRow("_SortKey")) Dim Val1nh As Double = e.DataTable.Compute("Sum(收入)","[_SortKey] <= " & dr("_SortKey")) Dim Val2nh As Double = e.DataTable.Compute("Sum(支出)","[_SortKey] <= " & dr("_SortKey")) dr("余额") = Val1nh - Val2nh Next End Select
微信零钱_DataRowAdded
e.DataRow("经手人") = _Username
微信零钱_DataRowDeleting
e.DataRow("收入") = 0 e.DataRow("支出") = 0
微信零钱_AfterMoveRow
Dim keynh As Decimal Dim indexnh As Integer Dim dcnh As DataCol indexnh = Math.Min(e.Oldindex, e.Newindex) keynh = e.Table.Rows(indexnh)("_Sortkey") dcnh = e.Table.DataTable.DataCols("收入") dcnh.RaiseDataColChanged("[_Sortkey] >= " & keynh)
微信零钱_DrawCell
If e.Col.name="收入" Then e.Style="收入样式" End If
If e.Col.name="支出" Then e.Style="支出样式" End If |