求大神帮忙,我的replace替换出了什么问题?还是我的循环有问题...

lucky_aha 2018-02-05 10:20:10
现有一个dbf文件,里面有2个字段,一个lin_zhon_1,一个是ldlx。我现在想根据lin_zhon_1的值不同,对ldlx填入不同的值。
写了一个小程序,但是都是替换失败,依然还是空值。求大神解答下
代码如下:
use?
set talk off
REPLACE all lin_zhon_1 with IIF(EMPTY(lin_zhon_1),"0",lin_zhon_1)
GO top
scan
DO CASE
CASE VAL(allt(lin_zhon_1))<118 and VAL(allt(lin_zhon_1))>110
REPLACE all ldlx with "10"
CASE VAL(allt(lin_zhon_1))<128 and VAL(allt(lin_zhon_1))>120
REPLACE all ldlx with "20"
CASE VAL(allt(lin_zhon_1))<234 and VAL(allt(lin_zhon_1))>230
REPLACE all ldlx with "30"
CASE VAL(allt(lin_zhon_1))=240
REPLACE all ldlx with "40"
CASE VAL(allt(lin_zhon_1))<256 and VAL(allt(lin_zhon_1))>250
REPLACE all ldlx with "50"
OTHERWISE
REPLACE all ldlx with ""
ENDCASE
ENDSCAN
GO top
scan
DO CASE
CASE lin_zhon_1="0" and VAL(allt(di_lei_1))<199
REPLACE all ldlx with "70"
CASE lin_zhon_1="0" and VAL(allt(di_lei_1))>260
REPLACE all ldlx with "70"
ENDCASE
ENDSCAN
...全文
700 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yrt888 2018-02-05
  • 打赏
  • 举报
回复
把 所有的 REPLACE all 中去掉 ALL 看看怎样!
都市夜猫 2018-02-05
  • 打赏
  • 举报
回复
或者去掉 scan ... endscan,三次 replace all 即可
Replace all lin_zhon_1 with Evl(lin_zhon_1, "0")    && 这条也可不要
Replace all ldlx with ICase( ;
110 < Val(lin_zhon_1) and Val(lin_zhon_1) < 118, "10" ;
,120 < Val(lin_zhon_1) and Val(lin_zhon_1) < 128, "20" ;
,230 < Val(lin_zhon_1) and Val(lin_zhon_1) < 234, "30" ;
,240 = Val(lin_zhon_1), "40" ;
,250 < Val(lin_zhon_1) and Val(lin_zhon_1) < 256, "50", "0")
Replace all ldlx with "70" For lin_zhon_1 = "0" and (Val(di_lei_1) < 199 or Val(di_lei_1) > 260)


都市夜猫 2018-02-05
  • 打赏
  • 举报
回复
引用 1 楼 yrt888 的回复:
把 所有的 REPLACE all 中去掉 ALL 看看怎样!
+1

2,722

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧