Foxtable(狐表)用户栏目专家坐堂 → 文本式数字排序问题[已解決]


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

主题:文本式数字排序问题[已解決]

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


加好友 发短信
等级:一尾狐 帖子:488 积分:3358 威望:0 精华:0 注册:2013/4/17 21:14:00
文本式数字排序问题[已解決]  发帖心情 Post By:2014/1/12 16:45:00 [只看该作者]

正常排序,都会按著数字的先后來排 , 但出來效果却不是順序
比如 1,2,3,4.........10,11

排出來的结果会是  1,10,11,2,3,4..........9

这个怎样解決?

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

[此贴子已经被作者于2014-1-24 14:58:27编辑过]

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/1/12 17:31:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:字符类型数字排序.table


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


加好友 发短信
等级:一尾狐 帖子:488 积分:3358 威望:0 精华:0 注册:2013/4/17 21:14:00
  发帖心情 Post By:2014/1/12 18:43:00 [只看该作者]

0000-000,000-00,00-0
因会存在这种
ISY老師设的就会失效


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/1/12 18:49:00 [只看该作者]

看东西不够灵活啊。

 

不就这三个吗?

按你要的顺序,人为赋予三个值,不就行了。


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


加好友 发短信
等级:一尾狐 帖子:488 积分:3358 威望:0 精华:0 注册:2013/4/17 21:14:00
  发帖心情 Post By:2014/1/12 18:50:00 [只看该作者]

是脑根不夠灵活
知道思路了
但臨时表
怎样定义代码呢?
[此贴子已经被作者于2014-1-12 18:50:10编辑过]

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/1/12 18:54:00 [只看该作者]

If e.DataCol.Name = "第一列" Then
    If e.DataRow("第一列") = "0000-000" Then
        e.DataRow("第二列") = 0.1
    ElseIf e.DataRow("第一列") = "000-00" Then
        e.DataRow("第二列") = 0.2
    ElseIf e.DataRow("第一列") = "00-0" Then
        e.DataRow("第二列") = 0.3
    Else
        e.DataRow("第二列") = Val(e.DataRow("第一列").Split("-")(0)) + Val(e.DataRow("第一列").Split("-")(1))
    End If
End If

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


加好友 发短信
等级:一尾狐 帖子:488 积分:3358 威望:0 精华:0 注册:2013/4/17 21:14:00
  发帖心情 Post By:2014/1/12 19:05:00 [只看该作者]

这个知道了,
If e.DataCol.Name = "第一列" Then
    If e.DataRow("第一列") = Nothing Then
        e.DataRow("第二列") = Nothing
    Else
        If e.DataRow("第一列") = "00-0" Or e.DataRow("第一列") = "0-00" Then
            e.DataRow("第二列") = 0.9
        ElseIf e.DataRow("第一列") = "000-00" Or e.DataRow("第一列") = "00-000" Then
            e.DataRow("第二列") = 0.8
        ElseIf e.DataRow("第一列") = "0000-000" Or e.DataRow("第一列") = "000-0000" Then
            e.DataRow("第二列") = 0.7
        ElseIf e.DataRow("第一列") = "00000-0000" Or e.DataRow("第一列") = "0000-00000" Then
            e.DataRow("第二列") = 0.6
        Else
            e.DataRow("第二列") = Val(e.DataRow("第一列").Split("-")(0)) + Val(e.DataRow("第一列").Split("-")(1))
        End If
    End If
End If

是不知如何设 排序的变換代码BeforeSort

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/1/12 19:08:00 [只看该作者]

其他代码,不用动。

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


加好友 发短信
等级:一尾狐 帖子:488 积分:3358 威望:0 精华:0 注册:2013/4/17 21:14:00
  发帖心情 Post By:2014/1/12 22:47:00 [只看该作者]

如果在第一列包含中文字或英文字或其他符号就 忽略 ,要怎判断?
用If Char.IsDigit(  ) 不行
[此贴子已经被作者于2014-1-12 22:50:55编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/1/12 23:12:00 [只看该作者]

 这个要用到正则表达式

Dim data As String = "001-002"
Dim reg As new System.Text.RegularExpressions.Regex("[0-9]+-[0-9]+")
msgbox(reg.Ismatch(data))

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