| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2925 人关注过本帖
标题:请教大佬
只看楼主 加入收藏
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

坚守VFP最后的阵地
2018-09-16 15:20
lumen
Rank: 1
等 级:新手上路
帖 子:21
专家分:5
注 册:2018-9-16
收藏
得分:0 
回复 9楼 sdta
我再研究下
2018-09-16 15:29
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
共生成 697 个工作簿
只要理解代码的思路,对原代码稍加调整,就能达到你的要求了

[此贴子已经被作者于2018-9-16 16:02编辑过]


坚守VFP最后的阵地
2018-09-16 16:01
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册


图片附件: 游客没有浏览图片的权限,请 登录注册

坚守VFP最后的阵地
2018-09-16 16:36
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

坚守VFP最后的阵地
2018-09-16 21:55
wangzhiyi
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:366
专家分:684
注 册:2014-4-9
收藏
得分:0 
以下是引用sdta在2018-9-16 13:06:39的发言:

CLOSE DATABASES ALL
SET SAFETY OFF
SELECT *,0000 标记 FROM 原文件 INTO TABLE Test
cDkh = ""
SCAN
    IF NOT EMPTY(地块号)
        REPLACE 标记 WITH VAL(地块号)
        cDkh = 地块号
    ELSE
        REPLACE 标记 WITH VAL(cDkh)
    ENDIF
ENDSCAN
SELECT 原文件
cZdm = ""
FOR nCnt = 1 TO AFIELDS(Azdm)
    cZdm = cZdm + "," + Azdm[nCnt, 1]
ENDFOR
cZdm = SUBSTR(cZdm, 2)
SELECT DISTINCT 标记 FROM Test INTO CURSOR T_dist
SCAN
    SELECT Test
    COPY TO ("标记" + PADL(T_dist.标记, 4, "0")) TYPE XL5 FIELDS &cZdm FOR 标记 = T_dist.标记
ENDSCAN
USE IN Test
ERASE Test.Dbf

SCAN
    SELECT Test
    COPY TO ("标记" + PADL(T_dist.标记, 4, "0")) TYPE XL5 FIELDS &cZdm FOR 标记 = T_dist.标记
ENDSCAN
由于没有数据,我没法测试。版主,不知道程序这个地方每一次拷贝生成一个EXCEL文件后是如何回到原来(SCAN...ENDSCAN)那个工作区去扫描记录指针的?
2018-09-17 10:51
lumen
Rank: 1
等 级:新手上路
帖 子:21
专家分:5
注 册:2018-9-16
收藏
得分:0 
回复 16楼 wangzhiyi
相关文件.zip (62.65 KB)
萌新还在研究
2018-09-17 11:03
lumen
Rank: 1
等 级:新手上路
帖 子:21
专家分:5
注 册:2018-9-16
收藏
得分:0 
回复 15楼 sdta
CLOSE DATABASES ALL
SET SAFETY OFF
SET DEFAULT TO C:\Users\xqb\Desktop\世行程序
SELECT *,0000 标记 FROM clf INTO TABLE Test

    ALTER TABLE Test add 村1 c(10)
cDkh = ""
ncun = ""
SCAN
    IF NOT EMPTY(地块号)
        REPLACE 标记 WITH VAL(地块号)
        replace 村1 WITH 村
        cDkh = 地块号
        ncun = 村
    ELSE
        REPLACE 标记 WITH VAL(cDkh)
        REPLACE 村1 WITH ncun
    ENDIF
ENDSCAN
SELECT clf
cZdm = ""
FOR nCnt = 1 TO AFIELDS(Azdm)
    cZdm = cZdm + "," + Azdm[nCnt, 1]
ENDFOR
cZdm = SUBSTR(cZdm, 2)
SELECT DISTINCT 标记,村 FROM Test INTO CURSOR T_dist
SCAN
    SELECT Test
    COPY TO ("标段" + T_dist.村 + PADL(T_dist.标记, 4, "0")) TYPE XL5 FIELDS &cZdm FOR 标记 = T_dist.标记 AND 村1 = T_dist.村
ENDSCAN
USE IN Test
ERASE Test.Dbf
版主我这样运行完除了697个表外,还会出现多余的空表,这是怎么回事啊
图片附件: 游客没有浏览图片的权限,请 登录注册
2018-09-17 11:41
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
回复 16楼 wangzhiyi
SELECT DISTINCT 标记 FROM Test INTO CURSOR T_dist
SCAN
    SELECT Test
    COPY TO ("标记" + PADL(T_dist.标记, 4, "0")) TYPE XL5 FIELDS &cZdm FOR 标记 = T_dist.标记 && 本行代码执行结束后,VFP 默认回到 T_dist 表所在的工作区,也就是重新回到 SCAN 的位置,接着移动记录指针扫描下一条记录,
ENDSCAN

[此贴子已经被作者于2018-9-17 12:32编辑过]


坚守VFP最后的阵地
2018-09-17 12:07
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
回复 18楼 lumen
SELECT DISTINCT 标记, FROM Test INTO CURSOR T_dist   && 字段 村 改为 村1 有空记录是不是与此处有关系
在这行代码下加一行代码
BROWSE
看看是否有不符合条件的记录

[此贴子已经被作者于2018-9-17 12:20编辑过]


坚守VFP最后的阵地
2018-09-17 12:18
快速回复:请教大佬
数据加载中...
 
   



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

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