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


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

主题:[求助]交叉表统计

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
[求助]交叉表统计  发帖心情 Post By:2014/7/2 11:26:00 [只看该作者]

代码如下:
Dim g As New SQLCrossTableBuilder("最高学历", "员工档案表")
g.C
g.HGroups.AddDef("部门体系")
g.HGroups.AddDef("工作部门")
g.HGroups.AddDef("办事处")
g.VGroups.AddDef("最高学历")
g.Totals.AddDef("员工编号", AggregateEnum.Count, "员工编号")
g.VerticalTotal= True '垂直汇总
g.HorizontalTotal = True '水平汇总
'g.Build()
If e.Form.Controls("部门体系").Value > "" AndAlso e.Form.Controls("工作部门").Value > "" AndAlso e.Form.Controls("办事处").Value > ""   Then
    g.Filter = "部门体系 = '" & e.Form.Controls("部门体系").Value & "' And 工作部门 = '" & e.Form.Controls("工作部门").Value & "' And 办事处 = '" & e.Form.Controls("办事处").Value & "'"
ElseIf e.Form.Controls("部门体系").Value > "" AndAlso e.Form.Controls("工作部门").Value > "" AndAlso e.Form.Controls("办事处").Value = "" Then
    g.Filter = "部门体系 = '" & e.Form.Controls("部门体系").Value & "' And 工作部门 = '" & e.Form.Controls("工作部门").Value & "'"
Else e.Form.Controls("部门体系").Value > "" AndAlso e.Form.Controls("工作部门").Value = "" AndAlso e.Form.Controls("办事处").Value = "" Then
    g.Filter = "部门体系 = '" & e.Form.Controls("部门体系").Value & "'"
End If
Tables("员工统计_Table1").DataSource = g.BuildDataSource
MainTable = Tables("员工统计_Table1")
MainTable.Font = New Font("宋体",10,FontStyle.Regular)
Tables("员工统计_Table1").AutoSizeCols()
如果某办事处的本科学历的人数为0时,在表中显示的是空值,现在不想让它出现空值,如果是空值的话就让它的值为0,这应该如何控制呢?

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/7/2 11:29:00 [只看该作者]

最后加上 Tables("员工统计_Table1").datatable.ReplaceFor("办事处",Nothing,0)


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


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

For Each c As Col In Tables("员工统计_Table1").Cols
    Tables("员工统计_Table1").DataTable.ReplaceFor(c.Name, Nothing, 0)
Next

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/7/2 11:43:00 [只看该作者]

这句放到最后就可以吗?为啥报以下错误:
筛选表达式“0”的计算结果不是布尔值项。

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


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

改一下

 

For Each c As Col In Tables("员工统计_Table1").Cols
    If c.IsNumeric OrElse c.IsString Then
        Tables("员工统计_Table1").DataTable.ReplaceFor(c.Name, Nothing, 0)
    End If
Next


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/7/2 11:46:00 [只看该作者]

只是设置某一列用2楼的代码可以了

所有列都要处理的话

用3楼的改进一下


For Each c As Col In Tables("员工统计_Table1").Cols
    If c.IsNumeric Then
        Tables("员工统计_Table1").DataTable.ReplaceFor(c.Name, Nothing, 0)
    End If
Next

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/7/2 11:53:00 [只看该作者]

不管用啊,还是报那个错误

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


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

 哦,写错了

 

For Each c As Col In Tables("员工统计_Table1").Cols
    If c.IsNumeric OrElse c.IsString Then
        Tables("员工统计_Table1").DataTable.ReplaceFor(c.Name, 0, c.name & " is null")
    End If
Next


 回到顶部