Foxtable(狐表)用户栏目专家坐堂 → and 和andalso会导致不一样的结果?


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

主题:and 和andalso会导致不一样的结果?

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


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
and 和andalso会导致不一样的结果?  发帖心情 Post By:2017/8/18 21:16:00 [只看该作者]

 Dim dr As DataRow
    dr=DataTables("Order").Find("planvsactual = 'Actual' and so_no ='" & e.node.Name & "'")
    If dr IsNot Nothing Then
        For Each c As WinForm.Control In e.Form.Controls
            If Typeof c Is WinForm.CheckBox Then '判断控件是否是文本框
                Dim t As WinForm.CheckBox = c '使用特定类型的变量引用控件
                For Each Cl As DataCol In DataTables("Order").DataCols
                    If cl.name = t.name And dr(cl.name) <> #1/1/1 0:00:00# Then
                        t.Checked=True
                        MessageBox.Show(cl.name & t.name & dr(cl.name))
                    End If
                Next
            End If
        Next
    End If

上面这个代码会出错。显示:从字符串“1232ff”到类型“Date”的转换无效。

下面这个代码就运行正常

 Dim dr As DataRow
    dr=DataTables("Order").Find("planvsactual = 'Actual' and so_no ='" & e.node.Name & "'")
    If dr IsNot Nothing Then
        For Each c As WinForm.Control In e.Form.Controls
            If Typeof c Is WinForm.CheckBox Then '判断控件是否是文本框
                Dim t As WinForm.CheckBox = c '使用特定类型的变量引用控件
                For Each Cl As DataCol In DataTables("Order").DataCols
                    If cl.name = t.name Andalso dr(cl.name) <> #1/1/1 0:00:00# Then
                        t.Checked=True
                        MessageBox.Show(cl.name & t.name & dr(cl.name))
                    End If
                Next
            End If
        Next
    End If

有人知道为什么么?是“=”运行的先后顺序么?

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


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2017/8/18 21:16:00 [只看该作者]

1232ff 是t.name  

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/8/18 21:44:00 [只看该作者]

http://www.foxtable.com/webhelp/scr/0220.htm

括起来试试

If (cl.name = t.name) And (dr(cl.name) <> #1/1/1 0:00:00#) Then

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


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2017/8/18 21:53:00 [只看该作者]

恩。夸起来有用



 回到顶部