Foxtable(狐表)用户栏目专家坐堂 → [求助]窗口筛选中如何加入交叉查询


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

主题:[求助]窗口筛选中如何加入交叉查询

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


加好友 发短信
等级:婴狐 帖子:22 积分:232 威望:0 精华:0 注册:2012/6/10 12:51:00
[求助]窗口筛选中如何加入交叉查询  发帖心情 Post By:2012/6/13 16:05:00 [只看该作者]

窗口筛选中如何加入交叉查询?比如我想在表达式中加入如下查询命令,该怎么办?

 

想加入的交叉查询

Dim g As New CrossTableBuilder("统计表1", DataTables("2012年数据"))
g.Caption = "下属企业经营情况"
g.HGroups.AddDef("下属企业")
g.VGroups.AddDef("经营范围")
g.Totals.AddDef("项目编号", AggregateEnum.Count, "项目编号")
g.HorizontalTotal = True
g.VerticalTotal = True
g.Build()
MainTable = Tables("统计表1")

 

现有的表达式

Dim Filter As String
With e.Form.Controls("StartDate")
    If
.Value IsNot Nothing Then
        If
Filter >"" Then
            Filter = Filter &
" And "
       
End If
        Filter = Filter &
"日期 >= #" & .Value & "#"
   
End If
End
With
With
e.Form.Controls("EndDate")
    If
.Value IsNot Nothing Then
        If
Filter >"" Then
            Filter = Filter &
" And "
       
End If
        Filter = Filter &
"日期 <= #" & .Value & "#"
   
End If
End
With
If
Filter > "" Then
    Tables
("2012年数据").Filter = Filter
End
If

[此贴子已经被作者于2012-6-13 16:06:41编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/6/13 16:31:00 [只看该作者]


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


加好友 发短信
等级:婴狐 帖子:22 积分:232 威望:0 精华:0 注册:2012/6/10 12:51:00
  发帖心情 Post By:2012/6/13 17:43:00 [只看该作者]

狐爸,我看不懂啊,我的意思是执行完筛选的基础上交叉查询,我按照上面的方法操作,发现交叉查询引用的是筛选前的数据,也就是引用的是完整数据表。到底错在哪里呢?

Dim Filter As String
With e.Form.Controls("StartDate")
    If
.Value IsNot Nothing Then
        If
Filter >"" Then
            Filter = Filter &
" And "
       
End If
        Filter = Filter &
"日期 >= #" & .Value & "#"
   
End If
End
With
With
e.Form.Controls("EndDate")
    If
.Value IsNot Nothing Then
        If
Filter >"" Then
            Filter = Filter &
" And "
       
End If
        Filter = Filter &
"日期 <= #" & .Value & "#"
   
End If
End
With
If
Filter > "" Then
    Tables
("2012年数据").Filter = Filter
End
If

 

Dim g As New CrossTableBuilder("统计表1", DataTables("2012年数据"))
g.Caption = "下属企业经营情况"
g.HGroups.AddDef("下属企业")
g.VGroups.AddDef("经营范围")
g.Totals.AddDef("项目编号", AggregateEnum.Count, "项目编号")
g.HorizontalTotal = True
g.VerticalTotal = True
g.Build()
MainTable = Tables("统计表1")


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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2012/6/13 18:04:00 [只看该作者]

你沒設置統計條件:

Dim Filter As String
With e.Form.Controls("StartDate")
    If
 .Value IsNot Nothing Then
        If
 Filter >"" Then
            Filter = Filter & 
" And "
        
End If 
        Filter = Filter & 
"日期 >= #" & .Value & "#"
    
End If
End
 With
With
 e.Form.Controls("EndDate")
    If
 .Value IsNot Nothing Then
        If
 Filter >"" Then
            Filter = Filter & 
" And "
        
End If 
        Filter = Filter & 
"日期 <= #" & .Value & "#"
    
End If
End
 With
If
 Filter > "" Then
    Tables
("2012年数据").Filter = Filter
End
 If

 

Dim g As New CrossTableBuilder("统计表1", DataTables("2012年数据"))
g.Caption = "下属企业经营情况"
g.HGroups.AddDef("下属企业")
g.VGroups.AddDef("经营范围")
g.Totals.AddDef("项目编号", AggregateEnum.Count, "项目编号")
g.HorizontalTotal = True
g.VerticalTotal = True

g.Filter =  Filter 
g.Build()
MainTable = Tables("统计表1")


 回到顶部