| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1369 人关注过本帖
标题:我是初学者,高手帮忙看看,提示操作符操作数类型不符。其中红色语句我还不 ...
只看楼主 加入收藏
hszxgb
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2020-10-5
结帖率:100%
收藏
 问题点数:0 回复次数:4 
我是初学者,高手帮忙看看,提示操作符操作数类型不符。其中红色语句我还不太懂有什么作用
thisform.text1.SetFocus
w=thisform.text1.Value
IF thisform.text3.Value="11"
   IF w<=50 then
      x=0.5*50
   ELSE
      x=0.5*50+0.3*(thisform.text1.Value-50)
   ENDIF
   thisform.text4.Value=x
   thisform.text3.Value=DATE()
ELSE
   MESSAGEBOX("请输入操作员代码:",1+48+256,"运行提示")
    .F.
ENDIF

[此贴子已经被作者于2020-10-7 21:25编辑过]

搜索更多相关主题的帖子: thisform text1 Value 类型 提示 
2020-10-07 21:23
hszxgb
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2020-10-5
收藏
得分:0 
回复 楼主 hszxgb
这些红色语句提示设置焦点,不知道有什么作用
2020-10-07 21:26
井绳
Rank: 2
等 级:论坛游民
帖 子:97
专家分:69
注 册:2010-6-29
收藏
得分:0 
第一句:thisform.text1.SetFocus,缺少()
最后一句:禁用,使之显示灰色

这段代码出现“操作符操作数类型不符”,问题出在
    IF thisform.text3.Value="11" 把其值认为是字符型
        
    thisform.text3.Value=DATE()却让它等于日期型

将二者数据类型改为一致的可以消除错误题示。

[此贴子已经被作者于2020-10-8 14:45编辑过]

2020-10-08 14:43
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:0 
以下是引用hszxgb在2020-10-7 21:23:03的发言:
thisform.text1.SetFocus
w=thisform.text1.Value
IF thisform.text3.Value="11"
   IF w<=50 then
      x=0.5*50
   ELSE
      x=0.5*50+0.3*(thisform.text1.Value-50)
   ENDIF
   thisform.text4.Value=x
   thisform.text3.Value=DATE()
ELSE
   MESSAGEBOX("请输入操作员代码:",1+48+256,"运行提示")
    .F.
ENDIF

主要错误在于thisform.text1.Value
由于Text1没有初始化为数值导致;只要在text1.Init上写 this.value = 0.00就可以,
至于其他的
if thisform.text3.Value="11" && 字符
   thisform.text3.Value=DATE() &&日期
等等,不是导致错误的原因,其实,语句是可以运行的,只是一般不要求这样做
2020-10-09 12:32
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:0 
运行楼主的程序的步骤顺序
* 1
thisform.text1.SetFocus && Text1控件得到焦点(光标)
* 2
w=thisform.text1.Value && 赋值w
* 3
IF thisform.text3.Value="11" && 如果Text3的值是字符 11 ,执行计算,否则,就提示输入操作码,
   IF w<=50 then && 程序错误在这里,由于Text1没有初始化为数值,空置,就默认是字符空格了,也就是字符,就算现在输入数字,也是字符形式的数字,所以 if w<=50就报错误
      x=0.5*50
   ELSE
      x=0.5*50+0.3*(thisform.text1.Value-50)
   ENDIF
   thisform.text4.Value=x
   thisform.text3.Value=DATE()
ELSE
   MESSAGEBOX("请输入操作员代码:",1+48+256,"运行提示")
    .F.
ENDIF

** 解决办法
*在 form1.init 上写
thisform.text1.value = 0.00

*或者在thisform.text1.init 上写
this.value = 0.00



[此贴子已经被作者于2020-10-9 12:46编辑过]

2020-10-09 12:41
快速回复:我是初学者,高手帮忙看看,提示操作符操作数类型不符。其中红色语句我 ...
数据加载中...
 
   



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

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