以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 文本式数字排序问题[已解決] (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=44954) |
||||
-- 作者:realredred -- 发布时间:2014/1/12 16:45:00 -- 文本式数字排序问题[已解決] 正常排序,都会按著数字的先后來排 , 但出來效果却不是順序 比如 1,2,3,4.........10,11
排出來的结果会是 1,10,11,2,3,4..........9
这个怎样解決?
[此贴子已经被作者于2014-1-24 14:58:27编辑过]
|
||||
-- 作者:lsy -- 发布时间:2014/1/12 17:31:00 --
|
||||
-- 作者:realredred -- 发布时间:2014/1/12 18:43:00 -- 0000-000,000-00,00-0 因会存在这种 ISY老師设的就会失效 |
||||
-- 作者:lsy -- 发布时间:2014/1/12 18:49:00 -- 看东西不够灵活啊。
不就这三个吗? 按你要的顺序,人为赋予三个值,不就行了。 |
||||
-- 作者:realredred -- 发布时间:2014/1/12 18:50:00 -- 是脑根不夠灵活 知道思路了 但臨时表 怎样定义代码呢?
[此贴子已经被作者于2014-1-12 18:50:10编辑过]
|
||||
-- 作者:lsy -- 发布时间: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 -- 发布时间: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 -- 发布时间:2014/1/12 19:08:00 -- 其他代码,不用动。 |
||||
-- 作者:realredred -- 发布时间:2014/1/12 22:47:00 -- 如果在第一列包含中文字或英文字或其他符号就 忽略 ,要怎判断? 用If Char.IsDigit( ) 不行
[此贴子已经被作者于2014-1-12 22:50:55编辑过]
|
||||
-- 作者:有点甜 -- 发布时间: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)) |