Foxtable(狐表)用户栏目专家坐堂 → 如何得到某行数据在包含分组行情况下的位置?


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

主题:如何得到某行数据在包含分组行情况下的位置?

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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
如何得到某行数据在包含分组行情况下的位置?  发帖心情 Post By:2015/5/3 13:57:00 [只看该作者]

请教老师:假如不考虑分组行的情况下,某特定行的位置(index)是3,该行即t.rows(3),但在考虑分组行的情况下,该特定行的位置是5,如何通过代码得到该特定行的位置是5?谢谢!


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


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

 比较麻烦,直接说你想做什么吧。要做就参考下面的代码

 

Dim r As Row = Tables("表A").Rows(7)

Dim fzs As Integer = 0
With Tables("表A")
    For i As Integer = 0 To r.Index 'Count加上参数True
        r = .Rows(i,True) 'Rows也需要加上参数True
        If r.IsGroup Then '如果是分组行
            fzs += 1
        End If
    Next
End With

msgbox(r.Index + fzs)


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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2015/5/6 12:47:00 [只看该作者]

回复2楼:首先谢谢您的帮助!但是您的代码有这样的问题:在包括分组行的情况下,该行是的实际位置可能在第10行(不包括分组行是第7行),那么  For i As Integer = 0 To r.Index 这句的r.index是第7行,也就是说遍历不到包括分组行情况下的第10行,也就得不到正确的结果呀!

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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2015/5/6 12:48:00 [只看该作者]

还有其他的解决方法吗?求高手指教,是否可能用到递归函数?

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


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

2楼的代码,可以遍历到包分组的行. 帮助知识点http://www.foxtable.com/help/topics/1594.htm

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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2015/5/6 13:54:00 [只看该作者]

回5楼,知识点已看过,好象不能解决遍历到包括分组行在内的某行。

注:该行不包括分组行时确定是第7行,但包括分组行时如何写:rows(7).index(true) ?  好象index不支持true


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


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

你想实现什么?

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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2015/5/6 14:04:00 [只看该作者]

比如:我定义了某单元格:rows(7)("第一列")=rows(2)("第一列")+rows(3)("第二列"),并且利用   t.Grid.SetCellStyle(7+表头层数,t.Cols(“第一列”).Index+1,cs)为该单元格着色,计算的结果无论包不包括分组行都是没有问题, 就是在包括分组行的情况下,着色就串了单元格
[此贴子已经被作者于2015/5/6 14:04:53编辑过]

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


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

建议你还是利用DrawCell来实现着色,这样就没这个冲突问题.

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


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2015/5/6 14:17:00 [只看该作者]

嗯,知道drawcell是很好的办法,但是那样就会调整程序代码的结构了,觉得利用  t.Grid.SetCellStyle代码更便捷一些

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