偶见识浅,不知道flexgrid使用什么方法排序的,但有你上面的函数来看SGD1_Compare(ByVal Row1 As Long, ByVal Row2 As Long, Cmp As Integer)
两个行号都传了进去,本人推断他用的排序算法可能是选择或冒泡,这也意味着很多无用的列都在进行无用的换位,建议你自己写一个函数,用希尔算法最快,偶以前用javascript时写过一个程序,排序同一个数组,用选择算法花了约30分钟,改成希尔算法只用了29秒。
两个行号都传了进去,本人推断他用的排序算法可能是选择或冒泡,这也意味着很多无用的列都在进行无用的换位,建议你自己写一个函数,用希尔算法最快,偶以前用javascript时写过一个程序,排序同一个数组,用选择算法花了约30分钟,改成希尔算法只用了29秒。
解决方案 »
- 跪求LEN函数使用方法!
- 在一个子过程文件中关于NULL的用法
- 如何分辨TreeView的节点点击的鼠标左右击事件??
- vb报表组件的问题。。谢谢
- 普通常量与符号常量有何区别,怎样使用?
- 很郁闷阿 与pictureclip有关!!
- 求VB6+SQL SERVER 多客户端 并发时 事务控制的资料或教材
- 怎样获取本地计算机名称?
- 处理txt文本中的黑格,因为文件大于50M内存溢出怎么解决?
- skydg(飞龙)大虾~~~~~~~~~~~~~~~~能写个例子给我吗~?谢谢您~我的qq 712779 e-mail [email protected]
- 数据库为什么不能添加和删除?
- 怎样把一个工程改成ActivX Dll or ActiveX Exe,怎样改?在哪里改?
只不过显示日期列的时候,如果毫秒数不为0,会把毫秒也显示出来,用select convert(varchar,datefield,120) as datefield from table将日期字段转换成字符串形式可以不带毫秒,但是排序又不行了。类似情况还有金额字段显示为1,234.56的时候(带千分位),也是得用convert(varchar,moneyField,1)转换为字符串,排序就会按照字符串形式而不是按照金额,大家有没有好的方法既能排序快又显示正确格式呢?
Static i As Integer, J As Integer
Dim K As Integer
With flex
If i = .Col Then
J = IIf(J = 1, 2, 1)
.Sort = J
Else
J = 1
.Sort = J
End If
i = .Col
End With