以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]求助Boolean的转换无效。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=192730)

--  作者:myzy
--  发布时间:2024/7/17 9:32:00
--  [求助]求助Boolean的转换无效。

If e.DataCol.Name = "交单1" Then
    If e.newvalue = True Then
        e.DataRow("派工已做1") = 1
        e.DataRow("交单") = "已交单"
        e.DataRow("本次耗时")=  e.DataRow("小时")*e.DataRow("人数")    \'e.DataRow("数量")
        
    Else
        e.DataRow("派工已做1") = 0
        e.DataRow("交单") = 0  \'Nothing
        e.DataRow("本次耗时")= 0
    End If
End If
If e.DataCol.Name = "交单"
    If e.DataRow(e.DataCol.Name) = "已交单"
        e.DataRow("派工已做1") = 1
        e.DataRow("交单1") = True
        e.DataRow("姓名") = e.DataRow("工号")
        e.DataRow("派工数量") = 1
    Else
        e.DataRow("派工已做1") = 0
        e.DataRow("交单1") =False
        e.DataRow("姓名") = Nothing
    End If
End If


错误所在事件:表,派工_Table1,DataColChanged
详细错误信息:
调用的目标发生了异常。
从字符串“已交单”到类型“Boolean”的转换无效。
输入字符串的格式不正确。


--  作者:有点蓝
--  发布时间:2024/7/17 9:36:00
--  
打开表结构看看,上面这些列,哪些是逻辑列?
--  作者:cd_tdh
--  发布时间:2024/7/17 10:35:00
--  
你交单是逻辑列,
If e.DataCol.Name = "交单1" Then
    If e.newvalue = True Then
        e.DataRow("派工已做1") = 1
        e.DataRow("交单") = "已交单"
        e.DataRow("本次耗时")=  e.DataRow("小时")*e.DataRow("人数")    \'e.DataRow("数量")
        
    Else 
e.DataRow("交单") = "已交单"肯定就不对啊。

--  作者:myzy
--  发布时间:2024/7/17 10:36:00
--  
“交单1”是逻辑列
“交单”是字符列
[此贴子已经被作者于2024/7/17 10:37:21编辑过]

--  作者:cd_tdh
--  发布时间:2024/7/17 10:37:00
--  
“交单”是逻辑列还是字符列?
--  作者:有点蓝
--  发布时间:2024/7/17 10:38:00
--  
肯定还要其它也是逻辑列,比如"交单"。检查表结构
--  作者:cd_tdh
--  发布时间:2024/7/17 10:39:00
--  
e.DataRow("交单") = 0  \'Nothing,改为e.DataRow("交单") = Nothing
另外还要判断为空的情况
[此贴子已经被作者于2024/7/17 10:39:09编辑过]

--  作者:myzy
--  发布时间:2024/7/17 10:44:00
--  
先感谢。但还是不行的。
加单:是字符型

[此贴子已经被作者于2024/7/17 15:15:50编辑过]

--  作者:有点蓝
--  发布时间:2024/7/17 10:44:00
--  
请上传实例测试
--  作者:myzy
--  发布时间:2024/7/17 10:45:00
--  
检查了,就只是“交单1”才是逻辑列