回 帖 发 新 帖 刷新版面

主题:小弟遇到了这样的问题  大哥 帮办忙 大姐姐也帮办我呀

由于工作需要,经常筛选一些油井的生产状况,最近油气特别多 ,于是自己写了一个程序想减轻点负担,就是采用 do case来满足条件的筛选  但是运行时候总是出现“操作符/操作数类型不匹配”找了好几天没有找到原因  望姐姐 哥哥能帮忙  代码如下
use D:\工况报表
do while not eof() 
do case
case 沉没度>400 .and.泵效>60
repl 工况 with 潜力区
case 50=<沉没度=< 400 .and.泵效>=60
repl 工况 with 合理区
case 沉没度>400 .and.泵效< 60
repl 工况 with 断漏区
case 沉没度=< 200 .and.20=< 泵效< 60
repl 工况 with 供液不足区
case 沉没度=< 100 .and.泵效=< 20
repl 工况 with 严重供液不足区
otherwise
repl 工况 with 待落实区
endcase
skip
enddo
return 
copy to D:\工况报表(已分析结果) type xls
delete file D:\工况报表
看看什么地方有问题  谢谢  谢谢[size=3][/size]

回复列表 (共11个回复)

沙发

20=< 泵效< 60:
20=< 泵效 and 泵效< 60

板凳

case 50=<沉没度=< 400 .and.泵效>=60
应改为:case (沉没度>=50 and 沉没度<400 or 沉没度=400) and 泵效>=60

case 沉没度=< 200 .and.20=< 泵效< 60
应改为:case (沉没度<= 200 and 泵效>20 or 泵效=20) and 泵效< 60

以上更改增加了 OR 逻辑关系,考虑到数值可能存在小数。

3 楼

这句有问题!

case 50=<沉没度=< 400 .and.泵效>=60

应该这样:

case 沉没度>=50 and 沉没度<401 .and.泵效>=60

and 两边不能同时是=

50=<沉没度=< 400 逻辑表达是错的

4 楼

还有 case 沉没度=< 200 .and.20=< 泵效< 60 这一句

只能两边等 ,不能三边等,你这样做就是脚踏两条船,是要翻船的,开个玩笑,请别介意!

5 楼

谢谢

6 楼

我开始判断的也是这个的问题 但是改了没有好  不过现在好了 估计开始改的太粗心了

7 楼

2楼

应该为:case 沉没度>=50 .and. 沉没度=< 400 .and.泵效>=60 也是错的

8 楼

沉没度 同时等于 50 和 400 有可能吗?看来2楼也脚踏两条船了....

9 楼

现在搞好没有?还没有吧!
如语句: repl 工况 with 潜力区
字段工况是什么数据类型?是字符型吧?
语句的本意是不是用字符串"潜力区"赋给字段工况,如真这样,就必须将语句改为如下:
repl 工况 with '潜力区'
其余的 repl 语句相应修改.
请试试!

10 楼

repl 工况 with "待落实区" 

我来回复

您尚未登录,请登录后再回复。点此登录或注册