以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- 关于在窗口中统计数据的问题 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=148516) |
|
-- 作者:爱相随 -- 发布时间:2020/4/9 11:40:00 -- 关于在窗口中统计数据的问题 老师,我在窗口中增加了TopicBar类型窗口,想统计日、周、月付款笔数和金额,以下代码没有提示错误,但统出来的数据不正确,全部为0.请老师指导,谢谢!! Dim Page As WinForm.TopicPage Dim cnt1 As Integer = DataTables("资金计划付款明细表").Compute("Count(_Identify)" , "rq = #" & Date.Today & "#") Dim cnt4 As Integer = DataTables("资金计划付款明细表").Compute("sum(支付金额)" , "rq = #" & Date.Today & "#") Page = e.Form.Controls("TopicBar1").Pages.Add("即时信息","即时信息") Page.Links.Add("今日付款笔数","今日付款笔数(" & cnt1 & ")" ) Page.Links.Add("今日付款金额","今日付款金额(" & cnt4 & ")" ) Dim y As Integer = Date.Today.Year Dim w As Integer = Date.Today.DayOfWeek \'算出今天是星期几 Dim dt1 As Date = Date.Today.AddDays(-w) \'获取本周的第一天 Dim dt2 As Date = Date.Today.AddDays(6 - w) \'获取本周的最后一天 Dim Filter1 As String Filter1 = "rq >= #" & dt1 & "# And rq <= #" & dt2 & "#" Dim cnt2 As Integer = DataTables("资金计划付款明细表").Compute("Count(_Identify)" , "rq >= #" & dt1 & "# And rq <= #" & dt2 & "#") Dim cnt3 As Integer = DataTables("资金计划付款明细表").Compute("sum(支付金额)" , "rq >= #" & dt1 & "# And rq <= #" & dt2 & "#") Page.Links.Add("本周付款笔数","本周付款笔数(" & cnt2 & ")" ) Page.Links.Add("本周付款金额","本周付款金额(" & cnt3 & ")" ) Dim m As Integer = Date.Today.Month Dim dt3 As New Date(y, m, 1) Dim dt4 As New Date(y, m, Date.DaysInMonth(y, m)) \'获取本月的最后一天 Dim Filter2 As String Filter2 = "rq >= #" & dt3 & "# And rq <= #" & dt4 & "#" Dim cnt5 As Integer = DataTables("资金计划付款明细表").Compute("Count(_Identify)" , "rq >= #" & dt3 & "# And rq <= #" & dt4 & "#") Dim cnt6 As Integer = DataTables("资金计划付款明细表").Compute("sum(支付金额)" , "rq >= #" & dt3 & "# And rq <= #" & dt4 & "#") Page.Links.Add("本月付款笔数","本月付款笔数(" & cnt5 & ")" ) Page.Links.Add("本月付款金额","本月付款金额(" & cnt6 & ")" )
|
|
-- 作者:有点蓝 -- 发布时间:2020/4/9 11:50:00 -- 说明没有符合条件的数据 |
|
-- 作者:爱相随 -- 发布时间:2020/4/9 12:01:00 -- 怎么及时刷新数据呢,周步表没用,只有重新打开才行,有没有更好的办法。 |
|
-- 作者:有点蓝 -- 发布时间:2020/4/9 12:12:00 -- Compute改为sqlCompute |
|
-- 作者:爱相随 -- 发布时间:2020/4/9 13:50:00 --
[此贴子已经被作者于2020/4/9 13:51:13编辑过]
|
|
-- 作者:有点蓝 -- 发布时间:2020/4/9 14:15:00 -- 如果是SqlServer数据库,看看:http://www.foxtable.com/webhelp/topics/2343.htm |
|
-- 作者:爱相随 -- 发布时间:2020/4/13 16:26:00 -- 老师,在导航栏的TopicBar显示统计信息,数据不能自动更新,重新打开项目后数据能更新。也将Compute改为sqlCompute,日期也按SQL server 格式调整,但是无论表切换,还是导航栏的点节切换,统计数据都不能自动更新。。。。只有重新打开项目后数据才能更新,如果要将统计数据实时自动更新,需要怎么处理呢?? 另外,如果要做的统计数据较多,如何能将TopicBar折成2列、3列或更多的列显示在窗口(在窗口面铺开),而不是一列排列到底需要通过滚动条上下翻滚呢??
[此贴子已经被作者于2020/4/13 16:29:21编辑过]
|
|
-- 作者:有点蓝 -- 发布时间:2020/4/13 16:29:00 -- 方法1、开启窗口计时器,在计时事件里定时(比如每10分钟)处理:遍历所有的导航栏,重新使用sqlCompute计算和更新 2、在更改数据后,比如datacolchanged事件,重新使用sqlCompute计算和更新对应的导航栏文本
[此贴子已经被作者于2020/4/13 16:30:35编辑过]
|
|
-- 作者:爱相随 -- 发布时间:2020/4/13 16:40:00 -- 谢谢老师,我试试 |
|
-- 作者:爱相随 -- 发布时间:2020/4/14 11:22:00 -- 老师,这两个方法都不知道怎么处理呢,麻烦老师具体指导一下,比如在哪个地方用什么代码,谢谢!! |