以文本方式查看主题

-  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
--  余额问题出错
 按实列做的收 入,支出,余额问题出错,

图片点击可在新窗口打开查看此主题相关图片如下:收入支出余额出错.png
图片点击可在新窗口打开查看


其中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事件的代码吧,把代码改成后台统计方式获取。
 
http://www.foxtable.com/webhelp/scr/2915.htm

 
或者是,不要计算余额,需要的时候,把全部数据加载出来以后,再一次性计算。


--  作者: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