以下是引用吹水佬在2017-8-16 16:23:14的发言:
第二种情况
如:
** test.prg
CREATE CURSOR tt (编号 C(20), 顺序号 I)
INSERT INTO tt VALUES ("02017073110560000220", 0)
INSERT INTO tt VALUES ("02017073110560000221", 0)
INSERT INTO tt VALUES ("02017073110560000221", 0)
INSERT INTO tt VALUES ("02017073110560000222", 0)
INSERT INTO tt VALUES ("02017073110560000222", 0)
INSERT INTO tt VALUES ("02017073110560000222", 0)
INDEX on 编号 TAG 编号
c编号 = ""
n顺序号 = 0
SCAN
IF c编号 != 编号
c编号 = 编号
n顺序号 = n顺序号 + 1
ENDIF
REPLACE 顺序号 WITH n顺序号
ENDSCAN
BROWSE
要求快些,不用循环也可以。
CREATE CURSOR tt (编号 C(20), 顺序号 I)
INSERT INTO tt VALUES ("02017073110560000220", 0)
INSERT INTO tt VALUES ("02017073110560000221", 0)
INSERT INTO tt VALUES ("02017073110560000221", 0)
INSERT INTO tt VALUES ("02017073110560000222", 0)
INSERT INTO tt VALUES ("02017073110560000222", 0)
INSERT INTO tt VALUES ("02017073110560000222", 0)
INDEX on 编号 TAG 编号
c编号 = ""
n顺序号 = 0
REPLACE 顺序号 WITH tj() ALL
BROWSE
FUNCTION tj()
IF c编号 != 编号
c编号 = 编号
n顺序号 = n顺序号 + 1
ENDIF
RETURN n顺序号
ENDFUNC