Foxtable(狐表)用户栏目专家坐堂 → [求助]从字符串“******”到类型“Boolean”的转换无效。


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

主题:[求助]从字符串“******”到类型“Boolean”的转换无效。

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


加好友 发短信
等级:幼狐 帖子:104 积分:1139 威望:0 精华:0 注册:2017/9/13 8:43:00
[求助]从字符串“******”到类型“Boolean”的转换无效。  发帖心情 Post By:2018/7/11 16:52:00 [只看该作者]

如题,代码如下:
For x As Integer = 2 To 12
    For Each r As Row In tb.Rows
        cl = sheet(x,0).value
        lx = sheet(x,2).value
        ys = sheet(x,3).value
        If cl <> "" Then
            filter = "r(""材料"") = """ & cl & """"
        End If
        If lx <> "" Then
            filter = filter & " AndAlso r(""类型"") = """ & lx & """"
        End If
        If ys <> "" Then
            filter = filter & " AndAlso r(""钥匙"").contains(""" & ys & """)"
        End If
        filter = filter.TrimStart(" ","A","n","d","l","s","o")
        If filter Then
        'If r("材料") = cl AndAlso r("类型") = lx AndAlso r("钥匙").contains(ys) Then
            For i As Integer = 4 To tb.Cols.Count -1
                If r.Isnull(i) = False Then
                    If sheet(x,i+2).value <> "" Then
                        sheet(x,i+2).value = sheet(x,i+2).value + r(i)
                    Else
                        sheet(x,i+2).value = r(i)
                    End If
                End If
            Next
        End If
    Next
Next

老师,我想根据cl,lx,ys是否是空值来控制if的条件,请问该怎么改??

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/11 17:08:00 [只看该作者]

方法一:

 


For x As Integer = 2 To 12
    For Each r As Row In tb.Rows
        cl = sheet(x,0).value
        lx = sheet(x,2).value
        ys = sheet(x,3).value
        Dim flag As Boolean = True
        If cl <> "" Then
            flag = flag AndAlso (r("材料") = cl)
        End If
        If lx <> "" Then
            flag = flag AndAlso (r("类型") = lx)
        End If
        If ys <> "" Then
            flag = flag AndAlso (r("钥匙").contains(ys))
        End If
        If flag Then
            'If r("材料") = cl AndAlso r("类型") = lx AndAlso r("钥匙").contains(ys) Then
            For i As Integer = 4 To tb.Cols.Count -1
                If r.Isnull(i) = False Then
                    If sheet(x,i+2).value <> "" Then
                        sheet(x,i+2).value = sheet(x,i+2).value + r(i)
                    Else
                        sheet(x,i+2).value = r(i)
                    End If
                End If
            Next
        End If
    Next
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/11 17:09:00 [只看该作者]

方法二:动态编译执行字符串代码

 

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

 


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


加好友 发短信
等级:幼狐 帖子:104 积分:1139 威望:0 精华:0 注册:2017/9/13 8:43:00
  发帖心情 Post By:2018/7/11 17:14:00 [只看该作者]

我试试,谢谢甜老师

 回到顶部