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


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

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

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


加好友 发短信
等级:二尾狐 帖子:593 积分:5360 威望:0 精华:0 注册:2011/9/30 8:42:00
[求助]交叉统计问题  发帖心情 Post By:2015/11/25 23:23:00 [只看该作者]

    Dim Cols0() As String = {1,2,3,4,5,6}
    For  i0 As Integer =  0 To Cols0.Length - 1
        If .DataCols.Contains("余额_" & Cols0(i0)) = False Then
            .DataCols.Add("余额_" & Cols0(i0),Gettype(Double))
            .DataCols.Add("余额_" & Cols0(i0) & "hp",Gettype(Double))
            If .DataCols("余额_" & Cols0(i0)).Caption Is Nothing Then

..
            End If
        End If
    Next

 

交叉统计表生成后,垂直方向必须要有6个分组,不足时添加至6个,现在问题是不足6个分组时,新增的分组(列),如何指定标题

 

假设正好6个分组时,标题分别是1 2 3 4 5 6

 

不满6个时,例如只有3列,标题是1-6随机(比如3 4 6),新增的3列标题必须分别是1 2 5,如何实现


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


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

datacols不是可以指定标题的么?

 

http://www.foxtable.com/help/topics/1428.htm

 


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


加好友 发短信
等级:二尾狐 帖子:593 积分:5360 威望:0 精华:0 注册:2011/9/30 8:42:00
  发帖心情 Post By:2015/11/26 6:43:00 [只看该作者]

因为是随机的,我不知道怎么指定了

这么说吧,以表A中的“区间”字段为垂直分组生成交叉表,区间列可能有A,B,C,D,E,F

 

当区间只有D,E,F,G,新增的列标题为A,B

当区间只有B,E,F,G,新增的列标题为A,C

当区间只有A,E,F,新增的列标题为B,C

当区间只有B,新增的列标题为A,C,D,E,F

....

 


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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/11/26 8:56:00 [只看该作者]

楼主的代码不是已经实现了么,判断不存在,就新增


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


加好友 发短信
等级:二尾狐 帖子:593 积分:5360 威望:0 精华:0 注册:2011/9/30 8:42:00
  发帖心情 Post By:2015/11/26 9:04:00 [只看该作者]

对新增的列,“标题的命名”..

 

 


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


加好友 发短信
等级:二尾狐 帖子:593 积分:5360 威望:0 精华:0 注册:2011/9/30 8:42:00
  发帖心情 Post By:2015/11/26 9:15:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:交叉表标题命名.foxdb

 

一、明细表1中区间中含有1,2,3,4,5,6,统计表就不存要新增列的问题 ;列名是余额_1,余额_2余,额_3,余额_4,余额_5,余额_6,对应的列标题分别是标题中已经有1,2,3,4,5,6了

二、明细表2中区间中没有1,2;统计表就要新增两列,并对这两列标题命名;

由于明细表2生成的统计表,,已存在的列名是余额_1,余额_2余,额_3,余额_4,对应的列标题分别是标题中已经有3,4,5,6了;新增的列名,只会是余额_5,余额_6,对应的列标题,只能是1,2,或2,1

 

 


 

[此贴子已经被作者于2015/11/26 9:16:28编辑过]

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


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

如下代码

 

Dim Cs() As String =  {1,2,3,4,5,6}

Dim t As Table = Tables("统计表1")
Dim len As Integer = 1
For i As Integer =  0 To cs.length - 1
    If t.Cols(i+len).Caption <> cs(i) Then
        t.DataTable.DataCols.Add("动态_" & cs(i), Gettype(Double), "",cs(i))
        t.cols("动态_" & cs(i)).move(i+len)
    End If
Next


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


加好友 发短信
等级:二尾狐 帖子:593 积分:5360 威望:0 精华:0 注册:2011/9/30 8:42:00
  发帖心情 Post By:2015/11/26 9:45:00 [只看该作者]

区间有最MAX 为6 的时候正常,没有的话,会超出数组,这个怎么解决了


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


加好友 发短信
等级:二尾狐 帖子:593 积分:5360 威望:0 精华:0 注册:2011/9/30 8:42:00
  发帖心情 Post By:2015/11/26 9:49:00 [只看该作者]

---------------------------
版本:2015.11.2.1
---------------------------
代码执行出错,错误信息:

 

System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。

参数名: index

   在 System.Collections.ArrayList.get_Item(Int32 index)

   在 C1.Win.C1FlexGrid.ColumnCollection.get_Item(Int32 index)

   在 Foxtable.ColCollection.get_Item(Int32 Index)

   在 UserCode.Test()
---------------------------
确定  
---------------------------


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


加好友 发短信
等级:二尾狐 帖子:593 积分:5360 威望:0 精华:0 注册:2011/9/30 8:42:00
  发帖心情 Post By:2015/11/26 10:34:00 [只看该作者]


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