tan126tan 发表于 2013-5-27 12:32:00

关于 vsflexgrid8.ocx 的数据统计的问题


您好:
    咨询一下这个控件统计功能的问题,如上图:
想在表格控件底部分别统计出“雨量”这一列的“平均值、最大值、最小值",如何能做到这一点。
我现在只能显示(统计)出一种(平均值或最大值或最小值),即:只能显示出一种来,不能同时显示多种统计结果。
不要使用 Aggregate 来获取这些值,然后再手动填入指定位置,想要使用Subtotal 来自动填入呢,不知道行不行。
谢谢!

还有一个问题:如何让统计结果行为固定行,固定行能否放到最下边。

ZenosZeng 发表于 2013-5-27 16:44:00

TrueDBGrid中只有ColumnFooter才能作为固定行显示在底部,除此没有提供其它方式。

tan126tan 发表于 2013-5-28 08:52:00

不是,我用的不是 TrueDBGrid 这个控件。我用的是 VsFlexGrid8.ocx 这个控件,有没有把固定行显示在底部的方法。

tan126tan 发表于 2013-5-28 09:18:00

哎,上面那个问题还是没有解决,空表的时候显示的是对的,但数据加进去就不对了,还没有解决同时显示几种统计结果的问题,大家帮帮忙~~有没有解决办法呢。

iceman 发表于 2013-5-28 18:33:00

回复 4楼tan126tan的帖子

VSFlexGrid 通过 SubTotal 来实现 footer 统计,代码如下:

fg.Rows = 3
   fg.TextMatrix(1, 1) = "Rent": fg.TextMatrix(1, 2) = "234"
   fg.TextMatrix(2, 1) = "Rent": fg.TextMatrix(2, 2) = "335"
   fg.SubtotalPosition = flexSTBelow
   fg.Subtotal flexSTSum, 1, 2


请问你说的“空表的时候显示的是对的,但数据加进去就不对了”指的是?

tan126tan 发表于 2013-5-29 10:56:00

iceman 哥,你的代码我也用过,对于只统计一项(总和或者最大或者最小或者其它项)是很好用的。
但是,看我上面的图片,下面要统计的是三项内容(平均、最大、最小)这三项要同时统计并显示在底部。
而且不分类统计(统计相同列的所有行的数据)

今天 又遇到一个问题,就是一个表格可以使用自动列宽,另一个表格使用自动列宽就不管用,不管自动列宽属性或方法的代三放在什么位置都无效啊。
我从网上查了一下,有几种方法:
1、VSFlexGrid1.AutoResize = True
VSFlexGrid1.AutoSize 1, VSFlexGrid1.cols - 1
2、VSFlexGrid1.ExtendLastCol = True
3、VSFlexGrid1.AutoSizeMode = flexAutoSizeColWidth

上面这几种方法我也结合起来写也没有管用,不知道为啥。

tan126tan 发表于 2013-5-29 11:00:00

那个统计的问题如果能有好方法,可以请教一下,如果不能象你写的那样自动同时统计几项内容的话,那就不解决统计这个问题了,我用其它方法取代了,麻烦iceman哥帮忙看一下“自动调整列宽”的问题,好吗?

ZenosZeng 发表于 2013-5-29 17:25:00

回复 7楼tan126tan的帖子

自动列宽的问题请参考一下代码:
fg.WordWrap = False
fg.AutoSizeMode = flexAutoSizeColWidth
fg.AutoSize 0, fg.Cols - 1

tan126tan 发表于 2013-5-31 09:22:00

那好吧,先这样,我也这样用过,但有时候就管用,有时候就不管用,看看吧,或者代码重新安排一下顺序可能就会好的,有这种情况的,谢谢。结贴吧。

ZenosZeng 发表于 2013-5-31 14:45:00

OK
页: [1]
查看完整版本: 关于 vsflexgrid8.ocx 的数据统计的问题