| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1792 人关注过本帖
标题:由于工作需要,请教个循环问题,望老师赐教
只看楼主 加入收藏
baochenbc
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2015-1-9
结帖率:61.54%
收藏
已结贴  问题点数:26 回复次数:10 
由于工作需要,请教个循环问题,望老师赐教

请教个循环命令

调用多个表,名字为 c201,c202,c203,c301,c313,c606


use c:\101.dbf EXCLUSIVE          &&101表是固定的   
COPY TO c:\c201.dbf EXCLUSIVE     &&c201表名是变化的 后面换成多个表,名字为 c202,c203,c301,c313,c606
alter table  c:\c201.dbf  ADD 上报日期 c(20) &&加一列 上报日期
alter table  c:\c201.dbf  ADD 本月累 n(20,0)
alter table  c:\c201.dbf  ADD 同期本月累 n(20,0)
alter table  c:\c201.dbf  ADD 本累拉动 n(20,0)

sele a
use c:\b203本月累.dbf          &&b203本月累表是固定的
inde on zzjgdm tag a1
sele b
use c:\c201.dbf                &&c201表名是变化的 后面换成多个表,名字为 c202,c203,301,c313,c606
inde on zzjgdm tag b1
set rela to zzjgdm into a
repl all 上报日期 with (a.a005)  
&& sele a 中 (b203本月累 表) 指标a005是固定的
repl all 本月累 with (a.c201_1)  
&& sele a 中 (b203本月累 表) 指标c201_1是变化的,
&&后面换成多个指标,名字为 c202_1,c203_1,c301_1,c313_1,c606_1 (与变化的表名一致)

repl all 同期本月累 with (a.c201_2)   
&&同上指标c201_2是变化的,
&&后面换成多个指标,名字为 c202_2,c203_2,c302_2,c313_2,c606_2 (与变化的表名一致)


sum a.c201_2 to a
&&同上指标c201_2是变化的,
&&后面换成多个指标,名字为 c202_2,c203_2,c302_2,c313_2,c606_2 (与变化的表名一致)


repl all 本累拉动 with (a.c201_1-a.c201_2)/a*100   
&&同上

sele b
use c:\c201.dbf
COPY TO c:\c201a.dbf

&&c201a表名是变化的 后面换成多个表,名字为 c202a,c203a,c301a,c313a,c606a

请问怎么循环
谢谢
2017-01-05 11:32
星光悠蓝
Rank: 9Rank: 9Rank: 9
来 自:山水甲天下
等 级:贵宾
威 望:52
帖 子:512
专家分:1248
注 册:2010-1-11
收藏
得分:1 
有多少个表,名字是否按序列变化,如果不是有规律,建议放到数组中,再做循环处理。
2017-01-05 11:52
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:2 
题外话,运行下面2个命令,2个都正常?还是?
CREATE CURSOR 101(id i)
CREATE table c:\101(id i)
2017-01-05 12:03
baochenbc
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2015-1-9
收藏
得分:0 
回复 2楼 星光悠蓝
老师能说的细点么 我不太会 谢谢
2017-01-05 12:05
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11778
专家分:43421
注 册:2006-5-13
收藏
得分:2 
以下是引用baochenbc在2017-1-5 12:05:07的发言:

老师能说的细点么 我不太会 谢谢

表名有规律,可以建立起表达式来组成的,就用表达式来作文件名,例如:
for i = 100 to 999
  wjm="wj+right(str(i),2)+".dbf"
  ?wjm
endfor
就可以生成从"wj00.dbf"到"wj99.dbf"的文件名
如果表名不文件用表达式组成,则可以建一个文件名表,事先将文件名录入表中,使用时再到里面按顺序取出。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2017-01-05 12:33
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9806
专家分:26947
注 册:2012-2-5
收藏
得分:1 
楼主要把意思表达清楚,大家才能帮助你。

坚守VFP最后的阵地
2017-01-05 12:53
红星二锅头
Rank: 8Rank: 8
等 级:贵宾
威 望:46
帖 子:491
专家分:754
注 册:2016-8-25
收藏
得分:1 
为什么要强调“由于工作需要,请教个XXXX问题。。。。”?
84工作需要,这里的人民也会回答问题的,只要不跑题、偏题、刁钻的问题

团队红星二锅头,队长王猛,领队李冲,顾问杨伟,副队张挺,外联马彪,内勤韩秀,人事顾闯,财务赵魁,后勤周强
2017-01-05 13:42
baochenbc
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2015-1-9
收藏
得分:0 
回复 7楼 红星二锅头
为了工作方面 自己编个程序 不太会 所以求老师帮助
2017-01-05 13:47
baochenbc
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2015-1-9
收藏
得分:0 
回复 6楼 sdta
use c:\101.dbf EXCLUSIVE         
COPY TO c:\c201.dbf EXCLUSIVE     
alter table  c:\c201.dbf  ADD 上报日期 c(20) &&加一列 上报日期
alter table  c:\c201.dbf  ADD 本月累 n(20,0)
alter table  c:\c201.dbf  ADD 同期本月累 n(20,0)
alter table  c:\c201.dbf  ADD 本累拉动 n(20,0)
sele a
use c:\b203本月累.dbf         
inde on zzjgdm tag a1
sele b
use c:\c201.dbf               
inde on zzjgdm tag b1
set rela to zzjgdm into a
repl all 上报日期 with (a.a005)  
repl all 本月累 with (a.c201_1)  
repl all 同期本月累 with (a.c201_2)   
sum a.c201_2 to a
repl all 本累拉动 with (a.c201_1-a.c201_2)/a*100   
sele b
use c:\c201.dbf
COPY TO c:\c201a.dbf
生成第一个表 c201 c201a

use c:\101.dbf EXCLUSIVE         
COPY TO c:\c202.dbf EXCLUSIVE     
alter table  c:\c202.dbf  ADD 上报日期 c(20) &&加一列 上报日期
alter table  c:\c202.dbf  ADD 本月累 n(20,0)
alter table  c:\c202.dbf  ADD 同期本月累 n(20,0)
alter table  c:\c202.dbf  ADD 本累拉动 n(20,0)
sele a
use c:\b203本月累.dbf         
inde on zzjgdm tag a1
sele b
use c:\c202.dbf               
inde on zzjgdm tag b1
set rela to zzjgdm into a
repl all 上报日期 with (a.a005)  
repl all 本月累 with (a.c202_1)  
repl all 同期本月累 with (a.c202_2)   
sum a.c202_2 to a
repl all 本累拉动 with (a.c202_1-a.c202_2)/a*100   
sele b
use c:\c202.dbf
COPY TO c:\c202a.dbf
生成第二个表 c202 c202a

use c:\101.dbf EXCLUSIVE         
COPY TO c:\c203.dbf EXCLUSIVE     
alter table  c:\c203.dbf  ADD 上报日期 c(20) &&加一列 上报日期
alter table  c:\c203.dbf  ADD 本月累 n(20,0)
alter table  c:\c203.dbf  ADD 同期本月累 n(20,0)
alter table  c:\c203.dbf  ADD 本累拉动 n(20,0)
sele a
use c:\b203本月累.dbf         
inde on zzjgdm tag a1
sele b
use c:\c203.dbf               
inde on zzjgdm tag b1
set rela to zzjgdm into a
repl all 上报日期 with (a.a005)  
repl all 本月累 with (a.c203_1)  
repl all 同期本月累 with (a.c203_2)   
sum a.c203_2 to a
repl all 本累拉动 with (a.c203_1-a.c203_2)/a*100   
sele b
use c:\c203.dbf
COPY TO c:\c203a.dbf
生成第三个表 c203 c203a

就是如果我要生成好多表怎么弄 比如c201 c202 c203 c401 c606 等等 我就得把命令复制好多遍 如果有循环命令 就能用一个命令了 就不用那么多重复的行了  
2017-01-05 13:53
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10548
专家分:42983
注 册:2014-5-20
收藏
得分:19 
无数据无法测试,随便改改:
sele a
use c:\b203本月累.dbf         
inde on zzjgdm tag a1
FOR i=1 TO 3
    c20X_1 = "a.c20"+TRANSFORM(i)+"_1"
    c20X_2 = "a.c20"+TRANSFORM(i)+"_2"
    fname = "c:\c20"+TRANSFORM(i)+".dbf"
    COPY FILE c:\101.dbf TO (fname)
    alter table (fname) ADD 上报日期 c(20) &&加一列 上报日期
    alter table (fname) ADD 本月累 n(20,0)
    alter table (fname) ADD 同期本月累 n(20,0)
    alter table (fname) ADD 本累拉动 n(20,0)
    sele b
    use (fname)               
    sum &c20X_2 to a
    set rela to zzjgdm into a
    repl all 上报日期 with a.a005,;  
             本月累 with EVALUATE(c20X_1),;
             同期本月累 with EVALUATE(c20X_2),;
             本累拉动 with (本月累-同期本月累)/a*100
             **本累拉动 with (EVALUATE(c20X_1)-EVALUATE(c20X_2))/a*100
    COPY TO ("c:\c20"+TRANSFORM(i)+"a.dbf")
    set rela to
    USE
ENDFOR
sele a
USE
收到的鲜花
  • baochenbc2017-01-05 17:18 送鲜花  3朵   附言:我很赞同
2017-01-05 15:30
快速回复:由于工作需要,请教个循环问题,望老师赐教
数据加载中...
 
   



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

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