注册 登录
编程论坛 VFP论坛

如何由表文件T1.DBF生成表文件T2.DBF

王咸美 发布于 2021-03-13 08:33, 1968 次点击
如何由表文件T1.DBF生成表文件T2.DBF,请各位高手赐教,万分感谢!!!
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录
11 回复
#2
吹水佬2021-03-13 09:43
只有本站会员才能查看附件,请 登录

程序代码:
SELECT DISTINCT "   " xh,xm,SPACE(240) kmnr, 0000 zks FROM t1 INTO CURSOR t2 READWRITE
SELECT t2
INDEX on xm TAG XM
SELECT t1
SET RELATION TO xm INTO "t2"
REPLACE ALL t2.xh   WITH PADL(RECNO("t2"),3,"0"),;
            t2.kmnr WITH t2.kmnr-t1.nj-t1.bj-t1.km-",",;
            t2.zks  WITH t2.zks+t1.ks
SET RELATION TO
SELECT t2
REPLACE ALL kmnr WITH kmnr-"计"-TRANSFORM(zks)-"节"
SELECT * FROM t2
#3
王咸美2021-03-13 10:02
@吹水佬 非常感谢!!!能否做到按T1.DBF表中xm出现的先后顺序生成T2.dbf,不按姓氏拼音顺序排列,望赐教!
#4
sdta2021-03-13 10:13
回复 楼主 王咸美
也可以参考:https://bbs.bccn.net/thread-504858-1-2.html 10楼的代码
#5
吹水佬2021-03-13 10:40
以下是引用王咸美在2021-3-13 10:02:40的发言:

@吹水佬 非常感谢!!!能否做到按T1.DBF表中xm出现的先后顺序生成T2.dbf,不按姓氏拼音顺序排列,望赐教!

那就按顺序逐个添加到T2
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

程序代码:
USE t1 IN 0
USE t2 IN 0
SELECT t2
ZAP
INDEX on xm TAG XM
SELECT t1
SET RELATION TO xm INTO "t2"
SCAN
    IF !FOUND("t2")
        INSERT INTO t2 (xm) VALUES (t1.xm)
    ENDIF
    REPLACE t2.xh   WITH PADL(RECNO("t2"),3,"0"),;
            t2.kmnr WITH t2.kmnr-t1.nj-t1.bj-t1.km-",",;
            t2.zks  WITH t2.zks+t1.ks
ENDSCAN
SET RELATION TO
SELECT t2
DELETE TAG ALL
REPLACE ALL kmnr WITH kmnr-"计"-TRANSFORM(zks)-"节"
SELECT * FROM t2
#6
王咸美2021-03-13 12:48
@吹水佬 非常感谢!!!问题完美解决。
#7
schtg2021-03-13 17:22
@吹水佬、sdta,感谢!学习啦!
#8
suseek2021-11-26 11:38
你好,程序里的短横线是用来连接字段的内容吗?
“REPLACE t2.kmnr WITH t2.kmnr-t1.nj-t1.bj-t1.km-","”
附原程序:
SELECT DISTINCT "   " xh,xm,SPACE(240) kmnr, 0000 zks FROM t1 INTO CURSOR t2 READWRITE
SELECT t2
INDEX on xm TAG XM
SELECT t1
SET RELATION TO xm INTO "t2"
REPLACE ALL t2.xh   WITH PADL(RECNO("t2"),3,"0"),;
        t2.kmnr WITH t2.kmnr-t1.nj-t1.bj-t1.km-",",;
            t2.zks  WITH t2.zks+t1.ks
SET RELATION TO
SELECT t2
REPLACE ALL kmnr WITH kmnr-"计"-TRANSFORM(zks)-"节"
SELECT * FROM t2
#9
吹水佬2021-11-26 11:57
回复 8楼 suseek
试试就清楚
? "ABCD   " + "EFGH"
? "ABCD   " - "EFGH"
#10
suseek2021-11-26 14:06
回复 9楼 吹水佬
老师,既然都是连接字符串,为什么替换为“+”得不到需要的结果,“-”在帮助文档查不到
#11
laowan0012021-11-26 14:13
回复 10楼 suseek
VFP帮助,搜索“字符操作符”
#12
suseek2021-11-26 14:14
回复 10楼 suseek
明白了,是字段宽度限制了,谢谢
1