Foxtable(狐表)用户栏目专家坐堂 → [求助]:数据统计


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

主题:[求助]:数据统计

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


加好友 发短信
等级:七尾狐 帖子:1636 积分:14483 威望:0 精华:0 注册:2014/6/6 8:42:00
[求助]:数据统计  发帖心情 Post By:2015/7/2 16:41:00 [只看该作者]

老师好!

在窗口的SQLTable中用下列代码筛选后,再统计,为什么总是统计的日期时段内的所有数据而不是筛选后的表中的数据?请指点,谢谢!

Dim Filter As String
With e.Form.Controls("DateTimePicker1")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "日期 >= '" & .Value & "'"
    End If
End With
With e.Form.Controls("DateTimePicker2")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "日期 <= '" & .Value & "'"
    End If
End With

DataTables("加班窗口_table1").LoadFilter = Filter
DataTables("加班窗口_table1").Load()

Dim dd1 As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker3")
Dim dd2 As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker4")
Dim val1 As Date = dd1.Value
Dim val2 As Date = dd2.Value

Tables("加班窗口_table1").Filter =  "[病人姓名] Is not  null And [接诊时间] >= '" & new Date(1900,1,1,val1.Hour,val1.Minute,val1.Second) & "' And [接诊时间] <= '" & new Date(1900,1,1,val2.Hour,val2.Minute,val2.Second) & "'"

 

Dim g As New CrossTableBuilder("统计表1", DataTables("加班窗口_table1"))
g.HGroups.AddDef("日期", DateGroupEnum.Year, "年度")
g.HGroups.AddDef("日期", "月份")
g.HGroups.AddDef("加班内容", "处理过程")
g.VGroups.AddDef("接诊医生", "{0}_接诊人数")
g.Totals.AddDef("病人姓名", AggregateEnum.Count, "病人姓名")
g.HorizontalTotal = True
g.VerticalTotal = True


Tables("加班窗口_table2").DataSource = g.BuildDataSource


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


加好友 发短信
等级:七尾狐 帖子:1636 积分:14483 威望:0 精华:0 注册:2014/6/6 8:42:00
  发帖心情 Post By:2015/7/2 16:46:00 [只看该作者]

如果在主窗口中用菜单里的交叉统计还是可以,只统计表中筛选后的数据而不是日期段内的全部数据。
[此贴子已经被作者于2015/7/2 16:46:11编辑过]

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


加好友 发短信
等级:一尾狐 帖子:431 积分:3214 威望:0 精华:2 注册:2011/9/10 21:35:00
  发帖心情 Post By:2015/7/2 16:48:00 [只看该作者]

Tables("加班窗口_table1").Filter

你这个只是视觉的效果,相当于隐藏起来你不想看得行,其实真实还是存在的。

所以你应该把筛选条件塞到CrossTableBuilder去才有效果,怎么塞进去,认真看帮助


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


加好友 发短信
等级:狐神 帖子:4643 积分:33865 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2015/7/2 16:51:00 [只看该作者]

g.Filter=Tables("加班窗口_table1").Filter

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/2 16:52:00 [只看该作者]

呃,

 

Dim g As New CrossTableBuilder("统计表1", DataTables("加班窗口_table1"))
g.HGroups.AddDef("日期", DateGroupEnum.Year, "年度")
g.HGroups.AddDef("日期", "月份")
g.HGroups.AddDef("加班内容", "处理过程")
g.VGroups.AddDef("接诊医生", "{0}_接诊人数")
g.Totals.AddDef("病人姓名", AggregateEnum.Count, "病人姓名")
g.HorizontalTotal = True
g.VerticalTotal = True

g.Filter = "[病人姓名] Is not  null And [接诊时间] >= '" & new Date(1900,1,1,val1.Hour,val1.Minute,val1.Second) & "' And [接诊时间] <= '" & new Date(1900,1,1,val2.Hour,val2.Minute,val2.Second) & "'"

 

[此贴子已经被作者于2015/7/2 16:51:55编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1636 积分:14483 威望:0 精华:0 注册:2014/6/6 8:42:00
  发帖心情 Post By:2015/7/2 16:53:00 [只看该作者]

谢谢!好好学习。哈哈哈哈哈哈。。。。。


 回到顶部