| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3767 人关注过本帖
标题:排查了一个多小时了,以前正确的代码现在老是提示错误,是不是我的系统出问 ...
取消只看楼主 加入收藏
琅拿度
Rank: 1
等 级:新手上路
帖 子:164
专家分:5
注 册:2016-4-7
收藏
得分:0 
以下是引用sdta在2021-7-7 19:26:43的发言:

代码中的空格是不是有非半角空格,上传PRG程序


出错的就只有那个判断条件那句话,改成Iif(i_zdxx=1,fangan1=.T.,Iif(i_zdxx=2,fangan2=.T.,Iif(i_zdxx=3,fangan3=.T.,Iif(i_zdxx=4,fangan4=.T.,fangan5=.T.))))就好了,就不知道宏替换那里错了,都用英文重打n次了,都一样,只能改iif就没问题
2021-07-07 19:30
琅拿度
Rank: 1
等 级:新手上路
帖 子:164
专家分:5
注 册:2016-4-7
收藏
得分:0 
以下是引用xuminxz在2021-7-7 19:12:51的发言:

空值不等于.f.


逻辑字段,没有值的话,就是 .f.啊
2021-07-07 19:35
琅拿度
Rank: 1
等 级:新手上路
帖 子:164
专家分:5
注 册:2016-4-7
收藏
得分:0 
以下是引用xuminxz在2021-7-7 19:38:42的发言:

Iif(i_zdxx=1,fangan1=.T.,Iif(i_zdxx=2,fangan2=.T.,Iif(i_zdxx=3,fangan3=.T.,Iif(i_zdxx=4,fangan4=.T.,fangan5=.T.))))

If fangan&izdc=.T. && 就是这行出错  这行不出错就不正常了
                        i_zdsl=i_zdsl+1
                    Endi
作用不一样
Iif(i_zdxx=1,fangan1=.T.,Iif(i_zdxx=2,fangan2=.T.,Iif(i_zdxx=3,fangan3=.T.,Iif(i_zdxx=4,fangan4=.T.,fangan5=.T.))))
中没有对fangan1的值判断,只是赋值。


前面有个“if”  只是生成条件,不是要写入表里
2021-07-07 19:46
琅拿度
Rank: 1
等 级:新手上路
帖 子:164
专家分:5
注 册:2016-4-7
收藏
得分:0 
以下是引用xuminxz在2021-7-7 19:56:21的发言:

If fangan&izdc=.T. 是根据fangan&izdc决定转向
Iif(i_zdxx=1,fangan1=.T.,Iif(i_zdxx=2,fangan2=.T.,Iif(i_zdxx=3,fangan3=.T.,Iif(i_zdxx=4,fangan4=.T.,fangan5=.T.))))
是根据i_zdxx的值决定执行什么。


是 if Iif(i_zdxx=1,fangan1=.T.,Iif(i_zdxx=2,fangan2=.T.,Iif(i_zdxx=3,fangan3=.T.,Iif(i_zdxx=4,fangan4=.T.,fangan5=.T.))))
2021-07-07 20:31
琅拿度
Rank: 1
等 级:新手上路
帖 子:164
专家分:5
注 册:2016-4-7
收藏
得分:0 
以下是引用sdta在2021-7-7 19:54:38的发言:

试试这样行不行(我的电脑上可以)
IF EVALUATE("fangan" + iic)=.T.
    ........
ENDIF


这个错误的诡异之处在于,同样的写法,上面 if 这行会出错,下面同样的写法 for 没有出错

        For i_zdxx=1 To 5
            izdc=Allt(Str(i_zdxx))
            Sele yinglijilu  && 盈利记录
            Go Top
            Do While Eof()=.F. And i_zdsl<=10
                Sele yinglijilu
                If Iif(i_zdxx=1,fangan1=.T.,Iif(i_zdxx=2,fangan2=.T.,Iif(i_zdxx=3,fangan3=.T.,Iif(i_zdxx=4,fangan4=.T.,fangan5=.T.))))&& 这里如果用 if fangan&izdc=.T.就出错
                    i_zdsl=i_zdsl+1
                Endi
                Skip
            Enddo
            Sum zzc&izdc To sum_zzc   For fangan&izdc=.T.  && 这里同样用了这个fangan&izdc=.T.宏代换,却不会出错
            Sum zsr&izdc To sum_zsr   For fangan&izdc=.T.  && 这里同样用了这个fangan&izdc=.T.宏代换,却不会出错
2021-07-07 20:36
琅拿度
Rank: 1
等 级:新手上路
帖 子:164
专家分:5
注 册:2016-4-7
收藏
得分:0 
真的费脑子
2021-07-07 20:37
琅拿度
Rank: 1
等 级:新手上路
帖 子:164
专家分:5
注 册:2016-4-7
收藏
得分:0 
以下是引用吹水佬在2021-7-7 21:28:55的发言:

可能运行库乱了,有无安装使用过其他版本

一直用vfp9 sp2汉化版很久了

现在换一台电脑,重新安装,拷贝过去运行也是这样的错误,真的服了
2021-07-07 21:39
琅拿度
Rank: 1
等 级:新手上路
帖 子:164
专家分:5
注 册:2016-4-7
收藏
得分:0 
现在的解决办法是:

把这段代表,拷贝到一个表单的新建方法程序里面去,用的时候调用,一模一样的代码,在新地方不会出错。变量名也没有冲突的,不知为何老是出错。
2021-07-07 22:07
琅拿度
Rank: 1
等 级:新手上路
帖 子:164
专家分:5
注 册:2016-4-7
收藏
得分:0 
以下是引用吹水佬在2021-7-8 10:11:41的发言:


同一代码在不同的表单里表现不同,肯定是表单的问题。
把有问题的表单文件(SCX和SCT)放上来看看


放的是同一个表单,就是表单里新建一个方法程序,然后把出错的这一段剪切过去,在原来剪切掉的地方执行这个新建的方法程序就没有问题,

就单纯像一个快捷方式而已

另外:原来位置,我也做了实验:包含 if fangan&iic=.t. 的就会报错, 包含 for fangan&iic=.t. 却不会报错,搞得想不通
2021-07-08 17:11
快速回复:排查了一个多小时了,以前正确的代码现在老是提示错误,是不是我的系统 ...
数据加载中...
 
   



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

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