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


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

主题:[求助]统计问题

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


加好友 发短信
等级:三尾狐 帖子:668 积分:5053 威望:0 精华:0 注册:2011/10/22 13:37:00
[求助]统计问题  发帖心情 Post By:2014/9/17 16:15:00 [只看该作者]

shangwu_日期筛选_ColList_ChangeCommitted

 

Dim ColName As String = e.ComboBox.Text '获得组合框的内容

With CurrentTable

    If .Cols.Contains(ColName) Then '如果当前表包括输入名称的列

        .Select(.RowSel, .Cols(ColName).Index) '那么选择该列.

    End If

End With

 

shangwu_日期筛选_ColList1_ChangeCommitted

 

Dim ColName As String = e.ComboBox.Text '获得组合框的内容

With CurrentTable

    If .Cols.Contains(ColName) Then '如果当前表包括输入名称的列

        .Select(.RowSel, .Cols(ColName).Index) '那么选择该列.

    End If

End With

 

shangwu_日期筛选_出库月报_Click

 

Forms("任意统计窗口").Open()

Dim HGroup As String

Dim VGroup As String

Dim TotalOn As String

Dim t As Table = CurrentTable

'获取输入内容

With RibbonTabs("shangwu")("日期筛选")

    HGroup = .Items("ColList").Text

    VGroup = .Items("ColList1").Text

    TotalOn = .Items("TotalOn").Text

End With

With t.Cols

    If HGroup >"" AndAlso .Contains(HGroup) Then '如果已经输入有效水平分组

        If VGroup >"" AndAlso .Contains(VGroup) Then '如果已经输入有效垂直分组

            If TotalOn >"" AndAlso .Contains(TotalOn) Then '而且统计列有效

                Dim b As New CrossTableBuilder("统计表","t")

                b.HGroups.AddDef(HGroup) '添加水平分组

                b.VGroups.AddDef(VGroup) '添加垂直分组

                b.Totals.AddDef(TotalOn) '添加统计列

                b.Build '生成统计表

                Tables("任意统计窗口_Table12").DataSource = b.BuildDataSource()

            End If

        End If

    End If

End With


此主题相关图片如下:无标题1.jpg
按此在新窗口浏览图片


目的:想根据当前表选定列生成统计表,代码如上,实际执行过程如图,没显示。请高手指点


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


加好友 发短信
等级:三尾狐 帖子:668 积分:5053 威望:0 精华:0 注册:2011/10/22 13:37:00
  发帖心情 Post By:2014/9/17 16:17:00 [只看该作者]

现在水平组、垂直组、统计列及日期都能正常显示,就是报表生成的没显示

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


加好友 发短信
等级:三尾狐 帖子:668 积分:5053 威望:0 精华:0 注册:2011/10/22 13:37:00
  发帖心情 Post By:2014/9/17 16:18:00 [只看该作者]

现在水平组、垂直组、统计列及日期都能正常显示,就是报表生成的没显示
图片点击可在新窗口打开查看此主题相关图片如下:无标题1.jpg
图片点击可在新窗口打开查看

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


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

 你msgbox(t.Name)看看,有可能窗口打开之后,currentTable就被改变了,建议用一个变量存储要生成的表t
[此贴子已经被作者于2014-9-17 16:21:24编辑过]

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


加好友 发短信
等级:三尾狐 帖子:668 积分:5053 威望:0 精华:0 注册:2011/10/22 13:37:00
  发帖心情 Post By:2014/9/17 17:16:00 [只看该作者]

Dim HGroup As String

Dim VGroup As String

Dim TotalOn As String

Dim t As Table = CurrentTable

'获取输入内容

With RibbonTabs("shangwu")("日期筛选")

    HGroup = .Items("ColList").Text

    VGroup = .Items("ColList1").Text

    TotalOn = .Items("TotalOn").Text

End With

With t.Cols

    If HGroup >"" AndAlso .Contains(HGroup) Then '如果已经输入有效水平分组

        If VGroup >"" AndAlso .Contains(VGroup) Then '如果已经输入有效垂直分组

            If TotalOn >"" AndAlso .Contains(TotalOn) Then '而且统计列有效

                Dim b As New CrossTableBuilder("统计表","t")

                b.HGroups.AddDef(HGroup) '添加水平分组

                b.VGroups.AddDef(VGroup) '添加垂直分组

                b.Totals.AddDef(TotalOn) '添加统计列

                ‘b.Build '生成统计表

msgbox(t.Name)

Forms("任意统计窗口").Open()

                Tables("任意统计窗口_Table12").DataSource = b.BuildDataSource()

            End If

        End If

    End If

End With


msgbox(t.Name)名称没问题,t显示的是当前表的名称。


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


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

 那这句你要改

 

Dim b As New CrossTableBuilder("统计表", t.DataTable)


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


加好友 发短信
等级:三尾狐 帖子:668 积分:5053 威望:0 精华:0 注册:2011/10/22 13:37:00
  发帖心情 Post By:2014/9/17 17:36:00 [只看该作者]

                Dim b As New CrossTableBuilder("统计表","t")
 msgbox(HGroup)-------此行正确显示了水平分组
                b.HGroups.AddDef(HGroup) '添加水平分组
                b.VGroups.AddDef(VGroup) '添加垂直分组
                b.Totals.AddDef(TotalOn) '添加统计列
  msgbox(t.Name)---------此行正确显示了当前表的名称

                b.Build '生成统计表------此行有问题

看来问题出在 Forms("任意统计窗口").Open()
                 Tables("任意统计窗口_Table2").DataSource = b.BuildDataSource()上。
不会调试了,
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20140917173050.png
图片点击可在新窗口打开查看

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


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

 我跟你说了,要这样子写,不能用 "t"

 

Dim b As New CrossTableBuilder("统计表", t.DataTable)


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


加好友 发短信
等级:三尾狐 帖子:668 积分:5053 威望:0 精华:0 注册:2011/10/22 13:37:00
  发帖心情 Post By:2014/9/17 17:51:00 [只看该作者]

 那这句你要改

 

Dim b As New CrossTableBuilder("统计表", t.DataTable)


这句代码正常了,能正常显示了。


msgbox(t.DataTable.Name)和msgbox(t.Name)显示的都是同一名称,为什么Dim b As New CrossTableBuilder("统计表", t.DataTable)就能正常, Dim b As New CrossTableBuilder("统计表","t")不行,求解释


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


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

 没有这种用法,"t",变量t不能用双引号包裹

 

Dim b As New CrossTableBuilder("统计表","t")


 回到顶部
总数 14 1 2 下一页