以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 排序问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=91634) |
||||
-- 作者:实话实说 -- 发布时间:2016/10/15 10:43:00 -- 排序问题 以下是电线电缆的规格列,左边是录入内容,希望得到右边的排序效果,能否给出代码? |
||||
-- 作者:有点蓝 -- 发布时间:2016/10/15 10:53:00 -- 直接排序就可以, Tables("订单").Sort = "录入规格"
|
||||
-- 作者:实话实说 -- 发布时间:2016/10/15 11:25:00 -- Tables("订单").Sort = "录入规格" 只能根据主芯和规格排序,忽略了地芯和规格的排序 纠正1楼:3*25+1*10应在3*25+1*16前面
[此贴子已经被作者于2016/10/15 11:26:12编辑过]
|
||||
-- 作者:实话实说 -- 发布时间:2016/10/15 11:37:00 -- 上实例
|
||||
-- 作者:有点蓝 -- 发布时间:2016/10/15 11:39:00 -- 测试没有问题,除非你的数据有空格或者全角符号 上传例子说明
|
||||
-- 作者:实话实说 -- 发布时间:2016/10/15 13:07:00 -- 排序规则:1、按主芯芯数和规格排序,2、先按主芯芯数和规格排序,再按地芯芯数和规格排序。排序后效果在1楼 [此贴子已经被作者于2016/10/15 13:07:21编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间: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,排序前"
|
||||
-- 作者:实话实说 -- 发布时间: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编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2016/10/15 15:07:00 -- 没有办法排这种序。你把内容分成几列存储,并改为整型列。 |
||||
-- 作者:清风徐来 -- 发布时间:2016/10/15 15:24:00 -- 统一一下格式能不能解决? 如:
3*120+1*70 格式化为 003*120+001*070 |