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


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

主题:排序

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


加好友 发短信
等级:四尾狐 帖子:811 积分:6347 威望:0 精华:0 注册:2013/2/18 17:46:00
排序  发帖心情 Post By:2024/11/14 14:13:00 [显示全部帖子]

如图所示,如何保证第一列相同内容的前后次序不变的条件下(允许中间有其他行插入),按第二列进行排序?

 

 


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

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

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


加好友 发短信
等级:四尾狐 帖子:811 积分:6347 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2024/11/14 14:38:00 [显示全部帖子]

我希望第一列数据为1的所有行的排列前后顺序不能调换,中间允许插入其他行。


图片点击可在新窗口打开查看此主题相关图片如下:2 (2).png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2 (1).png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:四尾狐 帖子:811 积分:6347 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2024/11/14 16:48:00 [显示全部帖子]

蓝版,如何实现?求代码。
图片点击可在新窗口打开查看此主题相关图片如下:4.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:四尾狐 帖子:811 积分:6347 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2024/11/14 17:03:00 [显示全部帖子]

逐行在第三列写入数据

第一行第三列写入01.

后面行的数据编号:

提取当前行的第一列数据,比如是1,提取当前行的第二列数据,比如说是A

向上比对,当找到第一列数据等于1或者第二列数据等于A时

提取该行的第三列数据,比如说是01

把第三列数据大于01的其他行都加上1,比如02变03、03变04.。。。。

填入当前行的第三列数据等于01+1 等于02

 

 

应用:

加工工艺中,第一道工艺为车、磨、铣,工艺顺序不能变,

第二道工艺为钳、磨、铣,工艺顺序不能变,

我要把工序整合,变成车、钳、磨、磨、铣、铣

[此贴子已经被作者于2024/11/14 17:07:44编辑过]

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


加好友 发短信
等级:四尾狐 帖子:811 积分:6347 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2024/11/14 17:27:00 [显示全部帖子]

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


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


加好友 发短信
等级:四尾狐 帖子:811 积分:6347 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2024/11/14 17:39:00 [显示全部帖子]

提取当前行的第一列数据,比如是1,提取当前行的第二列数据,比如说是A

向上比对,当找到第一列数据等于1或者第二列数据等于A时

提取寻找到的行的第三列数据,比如说是01

把第三列数据大于01的其他行都加上1,比如02变03、03变04.。。。。

填入当前行的第三列数据等于寻找到的数据+1,01+1 等于02


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


加好友 发短信
等级:四尾狐 帖子:811 积分:6347 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2024/11/14 18:13:00 [显示全部帖子]

蓝版,编码规则改一下

 

先把第三列填入较大的数据 比如999 

把第一行第三列数据为改为10

 

后面行的编码生成规则:

提取当前行的第一列数据,比如是1,提取当前行的第二列数据,比如说是A

向上比对,如果找到第一列数据等于1或者第二列数据等于A时

如果找到的数据是第二列等于A,就把当前行的第三列数据改为搜寻找到的数据+1,比如找到的数据是10,则该行第三列的数据改为11. 并按第三列排序

如果找到的数据是第一列等于1,就把当前行的当前行的第三列数据修改成等于第三列最大数据向上凑整,比如最大数据是13,则该行数据改为是20. 并按第三列排序

 


 

[此贴子已经被作者于2024/11/14 18:52:39编辑过]

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


加好友 发短信
等级:四尾狐 帖子:811 积分:6347 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2024/11/14 18:35:00 [显示全部帖子]

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


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


加好友 发短信
等级:四尾狐 帖子:811 积分:6347 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2024/11/15 9:29:00 [显示全部帖子]

For Each r As Row In Tables("订单").Rows '遍历行 
    Dim dr As DataRow
    dr = DataTables("表A").Find("(第一列 = '" & r("第一列") & "' or 第二列 = '" & r("第二列") & "' and  第三列 <> '' ", "第三列 Desc") '在表A中查找第三列不为空,并且第一列等于r("第一列")或者第二列等于r("第二列")的行
    If dr IsNot Nothing Or dr = r("第一列") Then '如果没有找到,或者找到第一列等于r("第一列")
        Dim max As String
        Dim idx As Integer
        max = DataTables("表A").Compute("Max(第三列)") '寻找第三列最大数据,第三列的数据格式改为A01、A02、A03.....B01、B02...
        If max > "" Then '如果有最大数据
            idx = CInt(max.Substring(0, 1)) + 1 '取字符开始位置为第一位并递增,比如得到的是B,那么就变成C,这段代码不知怎么写?
        Else
            idx = A '如果没有,就取A
        End If
        r("第三列") = Format(idx, "0")'得到r("第三列")数据
    Else '如过找到第二列等于r("第二列")
        Dim max As String
        Dim idx As Integer
        max = DataTables("表A").Compute("Max(第三列)") '如果有最大数据
        idx = CInt(max.Substring(1, 2)) + 1'取字符后两位并递增,比如得到的是B01,那么就变成B02
        r("第三列") = Format(idx, "000")'得到r("第三列")数据
 
   End If
Next

[此贴子已经被作者于2024/11/15 9:31:10编辑过]

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


加好友 发短信
等级:四尾狐 帖子:811 积分:6347 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2024/11/15 10:28:00 [显示全部帖子]

For Each r As Row In Tables("订单").Rows '遍历行 
    Dim dr As DataRow
    dr = DataTables("表A").Find("(第一列 = '" & r("第一列") & "' or 第二列 = '" & r("第二列") & "' and  第三列 <> '' ", "第三列 Desc") '在表A中查找第三列不为空,并且第一列等于r("第一列")或者第二列等于r("第二列")的行 
    If dr IsNot Nothing Or dr("第一列") = r("第一列") Then '如果没有找到,或者找到第一列等于r("第一列") 
        Dim max As String
        MessageBox.Show(1)
        Dim idx As Integer
        Dim aa() As String = {"A", "B", "C"}
        max = DataTables("表A").Compute("Max(第三列)") '寻找第三列最大数据,第三列的数据格式改为A01、A02、A03.....B01、B02...
        If max > "" Then '如果有最大数据
            max = max.Substring(0, 1) '取字符开始位置为第一位,
            idx = Array.LastIndexof(aa, max)
            idx = idx + 1
            max = aa(idx)    
        Else
            max = A '如果没有,就取A
        End If
        r("第三列") = max'得到r("第三列")数据
    Else '如过找到第二列等于r("第二列")
        Dim max As String
        Dim idx As Integer
        max = DataTables("表A").Compute("Max(第三列)") '如果有最大数据
        idx = CInt(max.Substring(1, 2)) + 1'取字符后两位并递增,比如得到的是B01,那么就变成B02
        r("第三列") = Format(idx, "000")'得到r("第三列")数据
    End If
Next

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

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