| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 915 人关注过本帖
标题:locate 查找命令运行后一个值得注意的问题。
取消只看楼主 加入收藏
总是出错
Rank: 2
等 级:论坛游民
威 望:1
帖 子:248
专家分:24
注 册:2012-12-24
结帖率:73.47%
收藏
已结贴  问题点数:20 回复次数:5 
locate 查找命令运行后一个值得注意的问题。
LOCATE FOR 命令是一个经常用到的命令。但是当查找失败后,在这个时候运行CALCULATE 命令时可能引起计算结果失真。
请看如下代码:
 SELE 库存数据表
                             locate  FOR 商品代码=c商品代码1 AND 仓库名称=ALLTRIM(仓库名称.VALUE)
                              
                              
                              IF FOUND()=.T.
                              
                                 REPLACE 数量 WITH n进库数量汇总1-n出库数量汇总1 ,单号 with alltrim(THISFORM.TEXT单号.VALUE);     
                                 商品类别 with c商品类别1  &&最新库存数量和最后单号写入
                              ELSE  
                             
                                 
                                CALCULATE MAX(val(序号)) TO c库存数据序号1 all &&读出最大序号
                               c库存数据序号1=alltrim(str(c库存数据序号1+1))
                              
                              
                               APPEND BLANK
                               REPLACE 数量 WITH n进库数量汇总1-n出库数量汇总1 ,单号 with alltrim(THISFORM.TEXT单号.VALUE);     
                                 商品类别 with c商品类别1,商品代码 with c商品代码1,商品名称 with c商品名称1, 单价 with n单价1;
                                  仓库名称 with ALLTRIM(仓库名称.VALUE), 序号 with c库存数据序号1,进出库性质 with ALLTRIM(出库性质.VALUE)
                              
                              
                              endif
我在调试这段程序的时候,最后写入表的序号是“1”
经过反复检查后,我确定程序没有问题,但是问题是处在什么地方呢,后来我在调试过程中,打开表,此时表没有数据显示,也就是说,当使用locate命令查找失败后,需要用SET FILTER TO命令把表重新整理后才能使用CALCULATE命令。
不知道我的理解是否正确,请各位指正。
搜索更多相关主题的帖子: 数据表 仓库 
2015-09-11 10:19
总是出错
Rank: 2
等 级:论坛游民
威 望:1
帖 子:248
专家分:24
注 册:2012-12-24
收藏
得分:0 
回复 3楼 吹水佬
绝对没有
2015-09-11 11:15
总是出错
Rank: 2
等 级:论坛游民
威 望:1
帖 子:248
专家分:24
注 册:2012-12-24
收藏
得分:0 
回复 3楼 吹水佬
我用表试过。具体的是,先打开一个表,使用查找命令,同时设定条件使查找失败,在此时使用CALCULATE命令,结果失真。
2015-09-11 11:19
总是出错
Rank: 2
等 级:论坛游民
威 望:1
帖 子:248
专家分:24
注 册:2012-12-24
收藏
得分:0 
回复 7楼 吹水佬
你是对的。判断之准确,佩服!
2015-09-12 00:32
总是出错
Rank: 2
等 级:论坛游民
威 望:1
帖 子:248
专家分:24
注 册:2012-12-24
收藏
得分:0 
回复 7楼 吹水佬
教训之一,尽可能不要使用屏蔽命令,而使用查询命令。
教训之二,万不得已使用了屏蔽命令,应在使用完毕后立即解除屏蔽。
教训之三,还是要多看帮助文件,尽自己的能力理解每一条命令或者函数的内涵和外延。
谢谢你的指正。
2015-09-12 01:08
总是出错
Rank: 2
等 级:论坛游民
威 望:1
帖 子:248
专家分:24
注 册:2012-12-24
收藏
得分:0 
回复 6楼 mywisdom88
是,你说的有道理。
2015-09-12 01:09
快速回复:locate 查找命令运行后一个值得注意的问题。
数据加载中...
 
   



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

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