标题:请教dbf表排序
只看楼主
hyf8285
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2013-1-21
得分:0 
回复 20楼 吹水佬
应该实现sdta版主的结果,不是交换记录,是移动记录,要的效果就是sdta的程序的效果!刚才发现mywisdom88的结果还是交换记录,不过交换记录我也需要
2022-07-12 15:55
bdx808
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2009-5-9
得分:0 
学习了
2022-07-12 16:37
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用hyf8285在2022-7-12 15:55:34的发言:

应该实现sdta版主的结果,不是交换记录,是移动记录,要的效果就是sdta的程序的效果!刚才发现mywisdom88的结果还是交换记录,不过交换记录我也需要

明白
直接交换记录的方法无创建表过程,数据记录多时速度会快点。
程序代码:
CREATE CURSOR tt (字段 c(1), 序号 I)
INSERT INTO tt VALUES ("a", 1)
INSERT INTO tt VALUES ("b", 2)
INSERT INTO tt VALUES ("c", 3)
INSERT INTO tt VALUES ("d", 4)
INSERT INTO tt VALUES ("e", 5)
fun("c")
BROWSE
RETURN

FUNCTION fun(val)
    SELECT tt
    GO TOP 
    SCATTER TO arr1
    LOCATE FOR  字段 == val
    SCATTER TO arr2
    GATHER FROM arr1
    GO TOP
    GATHER FROM arr2
    REPLACE ALL 序号 WITH RECNO()
ENDFUNC
2022-07-12 17:19
hyf8285
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2013-1-21
得分:0 
感谢各位大佬的支持和帮助!sdta版主的方法直接解决了我提出的问题,吹版主和mywisdom88大佬解决了我后面将要解决的问题!感谢!

[此贴子已经被作者于2022-7-12 18:36编辑过]

2022-07-12 18:35
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用hyf8285在2022-7-12 11:27:37的发言:

请教大佬:现有一个表结构如下,想实现这样的效果,如果把c移到最上,则c的序号变为1,a变为2,b变为3,d还是4,e还是5,请问如何实现?谢谢!
字段     序号      新序号
 a         1          2
 b         2          3
 c         3          1
 d         4          4
 e         5          5

这个遍历一次就可以
程序代码:
CREATE CURSOR tt (字段 c(1), 序号 I, 新序号 I)
INSERT INTO tt VALUES ("a", 1, 0)
INSERT INTO tt VALUES ("b", 2, 0)
INSERT INTO tt VALUES ("c", 3, 0)
INSERT INTO tt VALUES ("d", 4, 0)
INSERT INTO tt VALUES ("e", 5, 0)
n = 1
REPLACE ALL 新序号 WITH fun()
BROWSE
RETURN

FUNCTION fun()
    IF 字段 == "c"
        RETURN 1
    ENDIF 
    n = n + 1
    RETURN n
ENDFUNC
2022-07-12 21:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-509545-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.106544 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved