Foxtable(狐表)用户栏目专家坐堂 → 多值字段统计


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

主题:多值字段统计

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19384 威望:0 精华:1 注册:2008/9/12 9:19:00
多值字段统计  发帖心情 Post By:2015/6/3 9:36:00 [只看该作者]

第一次需要统计多值字段,帮助里虽有实例,但有点难度,最近确实没有时间研究,还请老师赐予代码


图片点击可在新窗口打开查看此主题相关图片如下:snap1.jpg
图片点击可在新窗口打开查看


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


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

帮助代码,照搬就好嘛 http://www.foxtable.com/help/topics/2400.htm

搞不定就上例子.

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19384 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2015/6/3 10:15:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:多值字段统计.foxdb

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


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

Dim dt As DataTable
Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("产品", Gettype(String), 16)
dt = dtb.Build()
Dim sdt As DataTable = DataTables("表A")
For Each cp As String In sdt.GetValues("产品")
    Dim ndr As DataRow = dt.AddNew
    ndr("产品") = cp
    For Each dr As DataRow In sdt.Select("产品 = '" & cp & "'")
        Dim qxs() As String = dr("缺陷").Split(",")
        For Each qx As String In qxs
            If dt.DataCols.Contains(qx) = False Then
                dt.DataCols.Add(qx, Gettype(Integer))
            End If
            ndr(qx) += 1
        Next
    Next
Next

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19384 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2015/6/5 22:33:00 [只看该作者]

多值字段计数统计还是没有搞定,实例窗口中有三种统计类型还请老师帮忙给出代码

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:缺陷统计.foxdb


以下是统计需求
图片点击可在新窗口打开查看此主题相关图片如下:snap1.jpeg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19384 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2015/6/6 10:28:00 [只看该作者]

谁帮我5楼的实例

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19384 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2015/6/6 14:17:00 [只看该作者]

顶一下


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


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

试试以下代码:
表1
Dim g As New CrossTableBuilder("统计表", DataTables("表B"))
g.HGroups.AddDef("缺陷等级")
g.VGroups.AddDef("月")
g.Totals.AddDef("月", AggregateEnum.Count)
g.HorizontalTotal = True
g.Build()
Tables("统计表").AutoSizeCols
MainTable = Tables("统计表")

表2
Dim dtb As New DataTableBuilder("中间表")
dtb.AddDef("缺陷原因", Gettype(String), 32)
dtb.AddDef("月", Gettype(String), 32)
dtb.TableVisible = False
dtb.Build()
For Each dr As DataRow In DataTables("表B").DataRows
    For Each s As String In dr("缺陷原因").split(",")
        Dim dr1 As DataRow = DataTables("中间表").AddNew
        dr1("缺陷原因") = s
        dr1("月") = dr("月")
    Next
Next

Dim b As New CrossTableBuilder("统计表",DataTables("中间表"))
b.HGroups.AddDef("缺陷原因")
b.VGroups.AddDef("月")
b.Totals.AddDef("月",AggregateEnum.Count)
b.HorizontalTotal = True
b.Build
Tables("统计表").AutoSizeCols
MainTable = Tables("统计表")

表3
Dim dtb As New DataTableBuilder("中间表")
dtb.AddDef("责任人", Gettype(String), 32)
dtb.AddDef("缺陷原因", Gettype(String), 32)
dtb.AddDef("月", Gettype(String), 32)
dtb.TableVisible = False
dtb.Build()
For Each dr As DataRow In DataTables("表B").DataRows
    For Each s As String In dr("缺陷原因").split(",")
        Dim dr1 As DataRow = DataTables("中间表").AddNew
        dr1("责任人") = dr("责任人")
        dr1("缺陷原因") = s
        dr1("月") = dr("月")
    Next
Next

Dim b As New CrossTableBuilder("统计表",DataTables("中间表"))
b.HGroups.AddDef("责任人")
b.HGroups.AddDef("缺陷原因")
b.VGroups.AddDef("月")
b.Totals.AddDef("月",AggregateEnum.Count)
b.HorizontalTotal = True
b.Build
Tables("统计表").AutoSizeCols
MainTable = Tables("统计表")

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19384 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2015/6/6 17:39:00 [只看该作者]

以下是引用y2287958在2015/6/6 16:49:00的发言:
试试以下代码:
表1
Dim g As New CrossTableBuilder("统计表", DataTables("表B"))
g.HGroups.AddDef("缺陷等级")
g.VGroups.AddDef("月")
g.Totals.AddDef("月", AggregateEnum.Count)
g.HorizontalTotal = True
g.Build()
Tables("统计表").AutoSizeCols
MainTable = Tables("统计表")

表2
Dim dtb As New DataTableBuilder("中间表")
dtb.AddDef("缺陷原因", Gettype(String), 32)
dtb.AddDef("月", Gettype(String), 32)
dtb.TableVisible = False
dtb.Build()
For Each dr As DataRow In DataTables("表B").DataRows
    For Each s As String In dr("缺陷原因").split(",")
        Dim dr1 As DataRow = DataTables("中间表").AddNew
        dr1("缺陷原因") = s
        dr1("月") = dr("月")
    Next
Next

Dim b As New CrossTableBuilder("统计表",DataTables("中间表"))
b.HGroups.AddDef("缺陷原因")
b.VGroups.AddDef("月")
b.Totals.AddDef("月",AggregateEnum.Count)
b.HorizontalTotal = True
b.Build
Tables("统计表").AutoSizeCols
MainTable = Tables("统计表")

表3
Dim dtb As New DataTableBuilder("中间表")
dtb.AddDef("责任人", Gettype(String), 32)
dtb.AddDef("缺陷原因", Gettype(String), 32)
dtb.AddDef("月", Gettype(String), 32)
dtb.TableVisible = False
dtb.Build()
For Each dr As DataRow In DataTables("表B").DataRows
    For Each s As String In dr("缺陷原因").split(",")
        Dim dr1 As DataRow = DataTables("中间表").AddNew
        dr1("责任人") = dr("责任人")
        dr1("缺陷原因") = s
        dr1("月") = dr("月")
    Next
Next

Dim b As New CrossTableBuilder("统计表",DataTables("中间表"))
b.HGroups.AddDef("责任人")
b.HGroups.AddDef("缺陷原因")
b.VGroups.AddDef("月")
b.Totals.AddDef("月",AggregateEnum.Count)
b.HorizontalTotal = True
b.Build
Tables("统计表").AutoSizeCols
MainTable = Tables("统计表")


非常感谢


 回到顶部