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


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

主题:排序问题

帅哥哟,离线,有人找我吗?
实话实说
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
排序问题  发帖心情 Post By:2016/10/15 10:43:00 [只看该作者]

以下是电线电缆的规格列,左边是录入内容,希望得到右边的排序效果,能否给出代码?


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


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110784 积分:563852 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/15 10:53:00 [只看该作者]

直接排序就可以,

Tables("订单").Sort = "录入规格"

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2016/10/15 11:25:00 [只看该作者]

Tables("订单").Sort = "录入规格"
只能根据主芯和规格排序,忽略了地芯和规格的排序
纠正1楼:3*25+1*10应在3*25+1*16前面
[此贴子已经被作者于2016/10/15 11:26:12编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2016/10/15 11:37:00 [只看该作者]

上实例
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb


 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110784 积分:563852 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/15 11:39:00 [只看该作者]

测试没有问题,除非你的数据有空格或者全角符号

上传例子说明

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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2016/10/15 13:07:00 [只看该作者]

排序规则:1、按主芯芯数和规格排序,2、先按主芯芯数和规格排序,再按地芯芯数和规格排序。排序后效果在1楼
[此贴子已经被作者于2016/10/15 13:07:21编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110784 积分:563852 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/15 14:29:00 [只看该作者]

增加一个辅助列

Dim v As String

For Each r As Row In Tables("表A").Rows
    If r.IsNull("排序前") = False
        v = r("排序前")
        Dim xh As String = v.Split("*")(0)
        If v.Contains("+") Then xh &= "+"
        r("Idx") = xh
    End If
Next

Tables("表A").Sort = "Idx,排序前"

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1(5).foxdb



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


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2016/10/15 14:50:00 [只看该作者]

增加了3*120+1*70,3*120+2*70,4*120+1*70后排序排到3*25+1*16前面了,不符合要求。应该:
3*25+1*10
3*25+1*16
3*35+1*16
3*120+1*70
3*25+2*16
3*35+2*16
3*120+2*70
末增加前排序符合要求

图片点击可在新窗口打开查看此主题相关图片如下:snap1.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2016/10/15 14:53:46编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110784 积分:563852 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/15 15:07:00 [只看该作者]

没有办法排这种序。你把内容分成几列存储,并改为整型列。

 回到顶部
帅哥哟,离线,有人找我吗?
清风徐来
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:95 积分:3166 威望:0 精华:0 注册:2015/10/30 10:14:00
  发帖心情 Post By:2016/10/15 15:24:00 [只看该作者]

统一一下格式能不能解决?
如:
3*120+1*70
格式化为
003*120+001*070

 回到顶部
总数 11 1 2 下一页