Foxtable(狐表)用户栏目专家坐堂 → 关于逻辑的问题


  共有7320人关注过本帖树形打印复制链接

主题:关于逻辑的问题

帅哥哟,离线,有人找我吗?
rjh4078
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3370 积分:24858 威望:0 精华:0 注册:2012/3/26 21:47:00
关于逻辑的问题  发帖心情 Post By:2022/7/25 7:25:00 [只看该作者]

在datacolchanged事件(其它事件暂未测试)中
如果某个字段是逻辑列,使用1和0时无法触发事件 必须使用true false
这个能否统一一下.
比如事件中的代码

Select Case e.DataCol.Name
    Case "第三列"
        If e.NewValue = True Then
            MessageBox.Show("1")
        End if
        
End Select

触发的代码是 dr("第三列")=1

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110750 积分:563676 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/25 8:42:00 [只看该作者]

这个玩意不是统一不统一的问题,正常vb语言逻辑值就是true/false。其它用法都是不严谨的。

至于【dr("第三列")=1】可以执行,那涉及到比较深层的计算机原理问题,不好解释。简单的说就是逻辑值,赋值0就是false,任何其它值都是true。转换为二进制,就是除了0之外,其它任何数值都至少会有一个1,机器都会解释为真。

下面代码可以自己测试一下:
Dim a, b As Boolean
a = -1
b = 1
Output.Show(a)
Output.Show(b)
Output.Show(a = b)
a = 0
b = 999
Output.Show(a)
Output.Show(a = 0)
Output.Show(b = 1)
Output.Show(b = 999)
Output.Show(b = True)

 回到顶部
帅哥哟,离线,有人找我吗?
rjh4078
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3370 积分:24858 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2022/7/25 13:11:00 [只看该作者]

感谢 学习了

 回到顶部