Foxtable(狐表)用户栏目专家坐堂 → sortkey 问题


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

主题:sortkey 问题

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


加好友 发短信
等级:七尾狐 帖子:1537 积分:9966 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2021/7/29 13:06:00 [只看该作者]

Dim drs As List(of DataRow) = DataTables("A").Select("","[_SortKey]")
For 
i As Integer = 0 To drs.Count - 1
    
drs(i).BaseRow("_SortKey") = i
Next


我用上述代码来重置sortkey值。操作时,我先对数据进行排序,然后执行上述代码(我做了一个按钮的),执行完代码之后,sortkey的值并不是按照刚才排序的顺序从上到下依次递增的。为什么?

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


加好友 发短信
等级:七尾狐 帖子:1537 积分:9966 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2021/7/29 13:18:00 [只看该作者]

我把 Select("","[_SortKey]") 里面的_SortKey 改成其他列名就可以了。

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


加好友 发短信
等级:七尾狐 帖子:1537 积分:9966 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2021/7/31 8:33:00 [只看该作者]

请问sortkey是如何自动产生的?我们有好几个用户都要用到同一个数据表(这个数据表有十几万个数据行),但是自动产生的 sortkey 值大小是很乱的,有的甚至是跳到很小的值(比如1、2、3等)那里去。如何避免这个问题?如何让每个用户产生的sortkey值按照产生的时间先后次序自动跟随前面已存在的sortkey值中最大的值往后面排?

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


加好友 发短信
等级:超级版主 帖子:109728 积分:558356 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/31 8:47:00 [只看该作者]

sortkey是底层自动生成的,不过仅基于已经加载的数据,如果数据不完全加载,sortkey值确实是乱的。

如果要按照插入行的先后顺序,建议直接使用主键值_identify

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


加好友 发短信
等级:七尾狐 帖子:1537 积分:9966 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2021/7/31 15:51:00 [只看该作者]

If e.DataCol.name ="出入库单号" Then
    Dim d1 As Date = Date.now
    Dim d2 As String = Format(d1,"yyyyMMddHHmmssfff") 
    If e.DataRow("出入库单号") = "删除记录"
        e.DataRow.BaseRow("_SortKey") = 1
    Else
        e.DataRow.BaseRow("_SortKey") = d2.Substring(2,15)
    End If
End If

我用上述代码来产生sortkey,但是保存时出现警告“十进制字段的精度过小,无法接受您试图添加的数字”。请问要怎么解决?

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


加好友 发短信
等级:七尾狐 帖子:1537 积分:9966 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2021/7/31 16:16:00 [只看该作者]

我把 sortkey 的15位数改为12位就可以了(e.DataRow.BaseRow("_SortKey") = d2.Substring(2,12))。

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


加好友 发短信
等级:超级版主 帖子:109728 积分:558356 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/31 16:17:00 [只看该作者]

_SortKey默认仅支持14位整数。到数据库调整一下,设置整数位15,小数位13

 回到顶部
总数 17 上一页 1 2