以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请假记录datacolchanged问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=114248)

--  作者:edisontsui
--  发布时间:2018/2/1 15:57:00
--  请假记录datacolchanged问题
我的如下代码:

\'请假记录自动输入员工资料
If e.DataCol.Name = "姓名" Then 
    Dim dr As DataRow 
    dr = DataTables("员工名单").Find("姓名 = \'" & e.DataRow("姓名") & "\'" )
    If dr IsNot Nothing 
        e.DataRow("部门") = dr("部门")
    End If
End If

使用时总是出现警告:

.NET Framework 版本:2.0.50727.8669
Foxtable 版本:2017.3.18.1
错误所在事件:表,请假记录,DataColChanging
详细错误信息:
调用的目标发生了异常。
从字符串“装配”到类型“Double”的转换无效。
输入字符串的格式不正确。

我的“请假记录”里和"员工名单"里的“部门”这个数据栏都是字符型的。这是为什么呢?谢谢。

--  作者:有点甜
--  发布时间:2018/2/1 16:03:00
--  

这段代码没问题,贴出你 DataColChanging 的完整代码。


--  作者:edisontsui
--  发布时间:2018/2/3 15:38:00
--  
如下是DataColChanging 的完整代码:

If e.DataRow("年月") = ""
    If e.DataCol.name <> "年月" And e.DataCol.name <> "无薪假天数" And e.DataCol.name <> "确认"   Then
        If e.NewValue > 0 Then
            MessageBox.Show("必须先输入年月!")
            e.Cancel = True
        End If
    End If 
End If

If e.DataRow("姓名") = ""
    If e.DataCol.name <> "年月" And e.DataCol.name <> "姓名" And e.DataCol.name <> "无薪假天数" And e.DataCol.name <> "确认" Then
        If e.NewValue > 0 Then
            MessageBox.Show("必须先输入姓名!")
            e.Cancel = True
        End If
    End If 
End If

If e.DataCol.name <> "年月" And e.DataCol.name <> "姓名" And e.DataCol.name <> "薪假天数" And e.DataCol.name <> "确认" And e.DataCol.name <> "薪假类型" Then
    If e.newvalue > 1
        MessageBox.Show("数据不允许大于1!")
        e.Cancel = True
    End If
End If

--  作者:有点蓝
--  发布时间:2018/2/3 16:05:00
--  
问题在这种代码:e.NewValue > 0。字符列不能和数值进行比较

没看懂你代码表示的意思