Foxtable(狐表)用户栏目专家坐堂 → 从字符串“True= True And True= True ”到类型“Boolean”的转换无效


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

主题:从字符串“True= True And True= True ”到类型“Boolean”的转换无效

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


加好友 发短信
等级:五尾狐 帖子:1182 积分:8225 威望:0 精华:0 注册:2015/3/30 10:44:00
从字符串“True= True And True= True ”到类型“Boolean”的转换无效  发帖心情 Post By:2018/7/31 14:13:00 [显示全部帖子]

从字符串“True= True And True= True ”到类型“Boolean”的转换无效。
输入字符串的格式不正确。

Dim str2 As String
                Dim str1 As String
 If r("技术服务部") <> "" Then
                    str2 = str2 & r("技术服务部审批") & "= True And "
                    str1 = str1 & "技术服务部:周银河审核OK" & vbcrlf
                End If
                If r("财务部") <> "" Then
                    str2 = str2 & r("财务部审批") & "= True And "
                    str1 = str1 & "财务部:王殿章审核OK" & vbcrlf
                End If
                If r("综合管理部") <> "" Then
                    str2 = str2 & r("综合管理部审批") & "= True And"
                    str1 = str1 & "综合管理部:李建生审核OK" & vbcrlf
                End If
                Dim Id As Integer = str2.LastIndexOf("And")
                str2 = str2.SubString(0,id)
                msgbox(str2)
                If user.name <> r("管代邮箱")  And user.name <> r("副总裁邮箱") And user.name <> r("总裁邮箱") Then
                    If (str2)  Then   ----红色的是不是有问题?


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


加好友 发短信
等级:五尾狐 帖子:1182 积分:8225 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2018/7/31 14:26:00 [显示全部帖子]

比如一行有A,A1,B,B1,C,C1共计6列。
当A和C不为空时,就需要检查A1和C1是否都是true。
如果为true才会执行之后的代码。
帮我看看怎么弄。



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


加好友 发短信
等级:五尾狐 帖子:1182 积分:8225 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2018/7/31 15:07:00 [显示全部帖子]

问题是我一开始不知道A和C列是不是为空,需要加上这个判断

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


加好友 发短信
等级:五尾狐 帖子:1182 积分:8225 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2018/7/31 15:15:00 [显示全部帖子]

我的意思我一开始并不知道是A,B,C到底是哪几列不为空。

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


加好友 发短信
等级:五尾狐 帖子:1182 积分:8225 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2018/7/31 15:43:00 [显示全部帖子]

就是一行有A,A1,B,B1,C,C1,D,D1列。
如果A或者B或者C不为空,那么对应的A1或者B1或者C1需要判断一下是否为true。
比如说A,B不为空,那么当A1和B1都为true的情况下,D为xxx,D1为true。

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


加好友 发短信
等级:五尾狐 帖子:1182 积分:8225 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2018/7/31 16:41:00 [显示全部帖子]

              你能不能看看我的这个怎么改才对。你的最后给的代码相当于每次都是A1,B1,C1都为true,但这是不一定的,可能仅仅是A1,B1判断一下就可以了。
               Dim str2 As String
                Dim str1 As String
                If r("总经办") <> "" Then
                    str2 = str2 & r("总经办审批") & "= True And "
                End If
                If r("研发部") <> "" Then
                    str2 = str2 & r("研发部审批") & "= True And "
                End If
                If r("供应部") <> "" Then
                    str2 = str2 & r("供应部审批") & "= True And "
                End If
                If  r("制造部") <> "" Then
                    str2 = str2 & r("制造部审批") & "= True And "
                End If
                If r("品管部") <> "" Then
                    str2 = str2 & r("品管部审批") & "= True And "
                End If
                If r("商务部") <> "" Then
                    str2 = str2 & r("商务部审批") & "= True And "
                End If
                If r("技术服务部") <> "" Then
                    str2 = str2 & r("技术服务部审批") & "= True And "
                End If
                If r("财务部") <> "" Then
                    str2 = str2 & r("财务部审批") & "= True And "
                End If
                If r("综合管理部") <> "" Then
                    str2 = str2 & r("综合管理部审批") & "= True And"
                End If
                Dim Id As Integer = str2.LastIndexOf("And")
                str2 = str2.SubString(0,id)
                msgbox(str2)
                If user.name <> r("管代邮箱")  And user.name <> r("副总裁邮箱") And user.name <> r("总裁邮箱") Then
                    If (str2)  Then
                        DataTables("上传").SQLReplaceFor("管代","吴慧","ID = '" & r("ID") & "'")
                        DataTables("上传").ReplaceFor("管代","吴慧","ID = '" & r("ID") & "'")
                        DataTables("上传").SQLReplaceFor("管代邮箱","wuhui@bdcom.com.cn","ID = '" & r("ID") & "'")
                        DataTables("上传").ReplaceFor("管代邮箱","wuhui@bdcom.com.cn","ID = '" & r("ID") & "'")


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


加好友 发短信
等级:五尾狐 帖子:1182 积分:8225 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2018/7/31 17:41:00 [显示全部帖子]

这样?
If r.isnull("A")  = false orelse r.isnull("B") = false   orelse r.isnull("C") = false  then    -----A,B,C只要任何一个为fasle就会去判断A1,B1,C1
    If r("A1") = true orelse r("B1") = True orelse r("C") = true Then       ----A1,B1,C1任何一个为true,就去执行r("D1") = true
  r("D1") = true
    End If
End If
那么比如A不为空,B和C为空。那么按照上面的代码需要判断A1,B1,C1是否为true,这时A1为false,B1为true,因为是orelse也满足要求,就去执行r("D1") = true了。
其实必须要A1为true才能执行r("D1") = true。


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


加好友 发短信
等级:五尾狐 帖子:1182 积分:8225 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2018/8/4 16:06:00 [显示全部帖子]

这是我做的一个简单列子
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目10.rar
CheckedComboBox1代码如下:
Dim hqbm As WinForm.CheckedComboBox = e.Form.Controls("CheckedComboBox1")
Dim ss As String = hqbm.value
Dim r As Row = Tables("上传").Current
If ss > "" Then  '先清空,后赋值
    DataTables("上传").ReplaceFor("总经办", "", "ID = '" & r("ID") & "'")  '清空
    DataTables("上传").SQLReplaceFor("总经办", "", "ID = '" & r("ID") & "'")
    DataTables("上传").ReplaceFor("总经办邮箱", "", "ID = '" & r("ID") & "'")
    DataTables("上传").SQLReplaceFor("总经办邮箱", "", "ID = '" & r("ID") & "'")
    DataTables("上传").ReplaceFor("研发部", "", "ID = '" & r("ID") & "'")
    DataTables("上传").SQLReplaceFor("研发部", "", "ID = '" & r("ID") & "'")
    DataTables("上传").ReplaceFor("研发部邮箱", "", "ID = '" & r("ID") & "'")
    DataTables("上传").SQLReplaceFor("研发部邮箱", "", "ID = '" & r("ID") & "'")
    DataTables("上传").ReplaceFor("供应部", "", "ID = '" & r("ID") & "'")
    DataTables("上传").SQLReplaceFor("供应部", "", "ID = '" & r("ID") & "'")
    DataTables("上传").ReplaceFor("供应部邮箱", "", "ID = '" & r("ID") & "'")
    DataTables("上传").SQLReplaceFor("供应部邮箱", "", "ID = '" & r("ID") & "'")
    DataTables("上传").ReplaceFor("制造部", "", "ID = '" & r("ID") & "'")
    DataTables("上传").SQLReplaceFor("制造部", "", "ID = '" & r("ID") & "'")
    DataTables("上传").ReplaceFor("制造部邮箱", "", "ID = '" & r("ID") & "'")
    DataTables("上传").SQLReplaceFor("制造部邮箱", "", "ID = '" & r("ID") & "'")
    
    Dim vals() As String = ss.Split(",") '开始赋值
    For Each val As String In vals
        If val = "总经办" Then
            DataTables("上传").ReplaceFor("总经办", "杨俏琼", "ID = '" & r("ID") & "'")
            DataTables("上传").SQLReplaceFor("总经办", "杨俏琼", "ID = '" & r("ID") & "'")
            DataTables("上传").ReplaceFor("总经办邮箱", "yangqiaoqiong@bdcom.com.cn", "ID = '" & r("ID") & "'")
            DataTables("上传").SQLReplaceFor("总经办邮箱", "yangqiaoqiong@bdcom.com.cn", "ID = '" & r("ID") & "'")
        ElseIf val = "研发部" Then
            DataTables("上传").ReplaceFor("研发部", "冯文羽", "ID = '" & r("ID") & "'")
            DataTables("上传").SQLReplaceFor("研发部", "冯文羽", "ID = '" & r("ID") & "'")
            DataTables("上传").ReplaceFor("研发部邮箱", "fengwenyu@bdcom.com.cn", "ID = '" & r("ID") & "'")
            DataTables("上传").SQLReplaceFor("研发部邮箱", "fengwenyu@bdcom.com.cn", "ID = '" & r("ID") & "'")
        ElseIf val = "供应部" Then
            DataTables("上传").ReplaceFor("供应部", "吴慧", "ID = '" & r("ID") & "'")
            DataTables("上传").SQLReplaceFor("供应部", "吴慧", "ID = '" & r("ID") & "'")
            DataTables("上传").ReplaceFor("供应部邮箱", "wuhui@bdcom.com.cn", "ID = '" & r("ID") & "'")
            DataTables("上传").SQLReplaceFor("供应部邮箱", "wuhui@bdcom.com.cn", "ID = '" & r("ID") & "'")
        ElseIf val = "制造部" Then
            DataTables("上传").ReplaceFor("制造部", "邓虓", "ID = '" & r("ID") & "'")
            DataTables("上传").SQLReplaceFor("制造部", "邓虓", "ID = '" & r("ID") & "'")
            DataTables("上传").ReplaceFor("制造部邮箱", "dengxiao@bdcom.com.cn", "ID = '" & r("ID") & "'")
            DataTables("上传").SQLReplaceFor("制造部邮箱", "dengxiao@bdcom.com.cn", "ID = '" & r("ID") & "'")
        End If
    Next
End If
点击RadioxButton1希望做到。
如果CheckedComboBox1勾选了哪几列,那么对应的那几列的审批必须为true时,管代列为ABC,管代邮箱为ABC@qq.com。
大概就是这么个意思。请帮忙。谢谢。

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


加好友 发短信
等级:五尾狐 帖子:1182 积分:8225 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2018/8/4 16:50:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目10.rar

没说清楚。就是RadioButton1是另外一个窗口里的按钮,要在这里面写代码。
这时和CheckedComboBox1没有关系,CheckedComboBox1里面的值已经记录到当前行了。现在应该是针对当前行来判断。

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


加好友 发短信
等级:五尾狐 帖子:1182 积分:8225 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2018/8/4 17:18:00 [显示全部帖子]

比如用户A登录进来只能看到窗体1,CheckedComboBox1用来勾选部门,勾选完就结束了
比如用户B登录进来只能看到窗体2,RadioButton1,针对某一行需要判断已经勾选的这些部门,对应的审批列都为true时,才把这一列管代和管代邮箱赋值。
B用户其实并不知道CheckedComboBox1的值是什么,也不需要关心,因为勾选的部门已经在某行记录了,他只需要判断对应的审批列。

 回到顶部
总数 14 1 2 下一页