Foxtable(狐表)用户栏目专家坐堂 → 多用户下余额老是会不对,余额验证问题


  共有3222人关注过本帖树形打印复制链接

主题:多用户下余额老是会不对,余额验证问题

帅哥哟,离线,有人找我吗?
kmzb56
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:528 积分:5034 威望:0 精华:0 注册:2012/4/6 19:31:00
多用户下余额老是会不对,余额验证问题  发帖心情 Post By:2019/3/6 14:30:00 [只看该作者]

我在页面集上做了一个余额谍验证的按钮,希望余额不对时可以验证刷新数据,但是不起做用,是不是哪里不对?或者是我锁定了行的原因?请帮我看一下,谢谢!
图片点击可在新窗口打开查看此主题相关图片如下:余额验证问题.png
图片点击可在新窗口打开查看

Dim tab As WinForm.TabControl = e.Form.controls("TabControl1")
Dim i As String = tab.SelectedPage.text
If i="油卡明细" Then 
i="youkamingxi"
Else
i=i
End If

If i="youkamingxi" Then
DataTables(i).DataCols("主卡余额").RaiseDataColChanged()
Else
DataTables(i).DataCols("余额").RaiseDataColChanged()
End If



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/6 14:44:00 [只看该作者]

加载对应的全部数据出来;然后点击重置列,看能否正确计算。

 

如果还有问题,实例发上来测试。


 回到顶部
帅哥哟,离线,有人找我吗?
kmzb56
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:528 积分:5034 威望:0 精华:0 注册:2012/4/6 19:31:00
  发帖心情 Post By:2019/3/8 17:57: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.SQLCompute("Sum(主卡冲入)","[_SortKey] <= " & dr("_SortKey"))
            Dim Val2nh As Double = e.DataTable.SQLCompute("Sum(分配金额)","[_SortKey] <= " & dr("_SortKey"))
            dr("主卡余额") = Val1nh - Val2nh
        Next
End Select
e.DataTable.save

   由于我是一个集面集合上,其它的表都是收入,支出,只有油卡明细上是列名称有些不一样,我的余额重置按纽是这样写的:
Dim tab As WinForm.TabControl = e.Form.controls("TabControl1")
Dim i As String = tab.SelectedPage.text
If i="油卡明细" Then 
i="youkamingxi"
Else
i=i
End If
If i="youkamingxi" Then
DataTables(i).DataCols("主卡冲入").RaiseDataColChanged(DataTables(i).DataRows(0))
Else
DataTables(i).DataCols("收入").RaiseDataColChanged(DataTables(i).DataRows(0))
End If 

发现了一个问题,集页集合上其它重量都很快,但这个不行,很慢大约4分钟,像死机一样,
二:我发出重置的只是入帐,出帐不重置么?是只需重置一个?还是重置两个?谢谢!

[此贴子已经被作者于2019/3/8 18:00:41编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111381 积分:566969 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/3/8 20:21:00 [只看该作者]

SQLCompute后台查询肯定慢的。把相关所有数据都加载出来,然后使用Compute计算

 回到顶部
帅哥哟,离线,有人找我吗?
kmzb56
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:528 积分:5034 威望:0 精华:0 注册:2012/4/6 19:31:00
  发帖心情 Post By:2019/3/9 14:28:00 [只看该作者]

谢谢!请问有实际列子么?或者怎么弄帮我一下。谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111381 积分:566969 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/3/9 14:55:00 [只看该作者]

全部加载数据呀,然后SQLCompute改为Compute

 回到顶部
帅哥哟,离线,有人找我吗?
kmzb56
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:528 积分:5034 威望:0 精华:0 注册:2012/4/6 19:31:00
  发帖心情 Post By:2019/3/9 22:13:00 [只看该作者]

我发现有个问题,一般我只有最近一天的数据有余额会有错,请问我可不可以从最后几条重量?就是重置当前行之后的,这样可以快些不?因为现在的数据有1000多行。

Dim tab As WinForm.TabControl = e.Form.controls("TabControl1")
Dim i As String = tab.SelectedPage.text
If i="油卡明细" Then 
i="youkamingxi"
Else
i=i
End If
If i="youkamingxi" Then
DataTables(i).DataCols("主卡冲入").RaiseDataColChanged(DataTables(i).DataRows(0))
Else
DataTables(i).DataCols("收入").RaiseDataColChanged(DataTables(i).DataRows(0))
End If 

我这里是第一行重置的,如果我确定当前行之前的没问题,可否从我选从当前行到后面的行重置?怎么写?谢谢!
[此贴子已经被作者于2019/3/9 22:14:49编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
kmzb56
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:528 积分:5034 威望:0 精华:0 注册:2012/4/6 19:31:00
  发帖心情 Post By:2019/3/9 22:20:00 [只看该作者]

帮我看一下是不是收入列和支出列都要重置??你没直接回复我的疑问哟,谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/10 10:40:00 [只看该作者]

根据条件重置列即可,比如重置前2天的数据,如

 

DataTables("表A").DataCols("第一列").RaiseDataColChanged("日期 >= #" & date.today.adddays(-2) & "#")


 回到顶部