以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  table的个别行排序出现错乱  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=175470)

--  作者:sky-18
--  发布时间:2022/3/5 23:45:00
--  table的个别行排序出现错乱
最近发现一个问题。
重新打开项目后发现排好序的某些行位置发生了变动。
我的行默认不排序,我在添加行的时候通过插入行和移动行来进行了排序。按理说这个行的顺序就不会变了,但奇怪的是重新打开后发现个别行的位置还是发生的移动。我没有排序,合并的设置也选择的不排序。请问老师这种情况一般是哪里错了?

--  作者:sky-18
--  发布时间:2022/3/6 0:46:00
--  
刚刚测试了一下,发现重新打开项目后"_sortkey"行的值莫名发生了变化。
我先手动插入行和移动行将要检测的6行排到前六位,并在相应列上由上到下填入1-6,这6个数字。
并显示这6行的如下信息:"_identify"-"_sortkey"-填入信息
重新打开项目后发现有几行的"_sortkey"发生了很大变化。如下图

图片点击可在新窗口打开查看此主题相关图片如下:插入移动行后.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:方框内值变化.jpg
图片点击可在新窗口打开查看
看来是“_sortkey”值发生了变化造成的混乱。
请教老师这是怎么会事

--  作者:sky-18
--  发布时间:2022/3/6 0:47:00
--  
发生变化的_sortkey值之前万位上的2直接没有了。
--  作者:sky-18
--  发布时间:2022/3/6 10:43:00
--  
突然想到是不是插入太多行,_sortkey的高精度小数位数超过最大限制造成的
--  作者:sky-18
--  发布时间:2022/3/6 10:52:00
--  
不知道-sortkey的生成机制是怎么样的。如果插入行太多导致出现几十位小数的话那么是不是超出了高精度小数的位数。这样再继续插入的话是不是就算不出需要的新小数。但是为什么在插入的时候并没有出现问题,而是在重新打开项目后发现行出现了错了乱。
如果真的是我猜的这样那么是不是只有对_sortkey列进行重拍就可以了?
期待老师解答

--  作者:有点蓝
--  发布时间:2022/3/6 20:36:00
--  
生成机制我也不清楚。您可以重置一下所有行的sortkey值。

另外数据是不是全部加载的,如果不是,sortkey值肯定是不准的,因为sortkey值只根据已经加载的数据判断取值。另外如果多人并发操作,也会有这问题

--  作者:sky-18
--  发布时间:2022/3/9 19:12:00
--  
我的数据是全部加载的。
如果要重置sortkey列的值得话我需要判断什么时候重置。那么这里就要先确定现在出现的问题是不是因为sortkey的值的有效小数位数超过28位所致的?

--  作者:sky-18
--  发布时间:2022/3/9 19:24:00
--  
我现在在插入行按钮里计入一个判断,如果sortkey值超出一定位数就重置该表sortkey值。
奇怪的事情出现了,明明才重置了sortkey的值。而且我通过查看也确定sortkey的值是整数了,但我再插入两行后却再次触发了重置代码。
而且查看sortkey的值确实变成了一个二十几位的小数。好奇怪,如果随便插入两行sortkey的值就变成二十几位的小数那是不是不科学哟。
求老师解惑

图片点击可在新窗口打开查看此主题相关图片如下:111.jpg
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2022/3/10 8:24:00
--  
请上传实例测试