找回密码
 立即注册

QQ登录

只需一步,快速开始

shwy

注册会员

3

主题

10

帖子

105

积分

注册会员

积分
105
最新发帖
shwy
注册会员   /  发表于:2017-11-8 11:06  /   查看:3460  /  回复:5
blob887096252.png
blob627209167.png
blob285960082.png

版本FarPoint.Win.Spread 6.0


如上图所示,我的F_num列为空白列,此列全部都是空数据。
点击排序时,三次升序,行的位置并不固定。
或者,如果F_num列存在相同数据时,排序也会不稳定。

我猜测,你们的排序可能采用了不稳定排序算法,能否修复这个问题。
如果你们基于不稳定算法排序,用户的需求我无法满足!!!
我需要一个稳定的排序规则,即使是空白单元格或者相等的单元格,多次点升序或者降序时,排序结果应该一致。

或者排序算法是否有API放开,支持我自己来排序???
目前我搜到的相关API发现你们目前只允许我自定义排序规则,并不允许自定义排序算法。

5 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-11-8 14:25:01
沙发
看您使用的是V6版本,我们最新的是V10版本,建议您测试下最新版本,或者您发送您的Demo过来,我们帮您测试。
排序算法是无法重写的,如果您需要自定义排序,可以自定义列头的样式,然后实现您需要的排序算法,Spread有接口进行行列的交换,或者您从数据源进行排序,重新显示。
回复 使用道具 举报
shwy
注册会员   /  发表于:2017-11-8 17:21:46
板凳
我使用的是V6版,暂时还无法升级呢
我待会儿下一个V10的demo试试

另外,看您的回复呢,我觉得你可能没有看懂我的意思
我目前的问题在于,我针对一列全部都是空值的列进行排序时
排序结果是不可控的,每次排序行都会变化...
你所说的自己写排序算法,那只能我自己写排序比较函数而已

你看我发的三张图
F_num是由两百个空单元格组成的一列
我针对F_num列进行了三次升序排列
从前面有数据的单元格以及行头的序号可以看出
每次排列的结果都不一样
我猜测你们代码内部肯定是使用了快速排序或者希尔排序这种不稳定算法

我的需求就是,我针对空白列进行排序时,无论我点多少次升序或者降序排列,我都要得到完全一致的排序结果...
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-11-8 18:39:55
地板
您好,您说的我明白,我的意思就是整个排序算法都您自己重写,不试用默认的排序。因为V6很老的版本,不会再修改了。
回复 使用道具 举报
shwy
注册会员   /  发表于:2017-11-9 15:18:47
5#
哦?
10可以自己写排序算法?
不错不错,越来越人性化了
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-11-9 17:22:13
6#
排的快的都不稳定
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部