以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 多用户下余额老是会不对,余额验证问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=131780) |
-- 作者:kmzb56 -- 发布时间:2019/3/6 14:30:00 -- 多用户下余额老是会不对,余额验证问题 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 |
-- 作者:有点甜 -- 发布时间:2019/3/6 14:44:00 -- 加载对应的全部数据出来;然后点击重置列,看能否正确计算。
如果还有问题,实例发上来测试。 |
-- 作者:kmzb56 -- 发布时间: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编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/3/8 20:21:00 -- SQLCompute后台查询肯定慢的。把相关所有数据都加载出来,然后使用Compute计算 |
-- 作者:kmzb56 -- 发布时间:2019/3/9 14:28:00 -- 谢谢!请问有实际列子么?或者怎么弄帮我一下。谢谢! |
-- 作者:有点蓝 -- 发布时间:2019/3/9 14:55:00 -- 全部加载数据呀,然后SQLCompute改为Compute |
-- 作者:kmzb56 -- 发布时间: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 -- 发布时间:2019/3/9 22:20:00 -- 帮我看一下是不是收入列和支出列都要重置??你没直接回复我的疑问哟,谢谢! |
-- 作者:有点甜 -- 发布时间:2019/3/10 10:40:00 -- 根据条件重置列即可,比如重置前2天的数据,如
DataTables("表A").DataCols("第一列").RaiseDataColChanged("日期 >= #" & date.today.adddays(-2) & "#") |