Foxtable(狐表)用户栏目专家坐堂 → 调用的目标发生了异常


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

主题:调用的目标发生了异常

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


加好友 发短信
等级:幼狐 帖子:83 积分:912 威望:0 精华:0 注册:2019/9/20 14:29:00
调用的目标发生了异常  发帖心情 Post By:2020/1/9 11:40:00 [只看该作者]

出现提示错误,
图片点击可在新窗口打开查看此主题相关图片如下:图片1.png
图片点击可在新窗口打开查看
代码如下,使用的是外部SQL数据表,更改了主键列,狐狸爸爸帮忙看看是哪里出错了。

Dim qt As Integer
If e.DataCol.Name = "工单号" Then
    qt = DataTables("齐套信息").sqlCompute("Count(工单号)","[工单号] = '" & e.NewValue & "' and [缺料] <> 0")
    If qt = 0 Then
        e.DataRow("物料齐套情况") = "齐套"
    Else
        e.DataRow("物料齐套情况") = "未齐套," & "缺少" & qt & "款物料"
    End If
End If

If  e.DataCol.Name <> "更新记录" Then
    Dim lsjl As String = e.DataRow.OriginalValue("更新记录")
    If e.DataRow("更新记录") = "" Then
        e.DataRow("更新记录") = Date.Now() & "  " & e.DataCol.Name & ":" & e.OldValue & "  变更为  " & e.NewValue & ";  操作人: " & user.Name
    Else
        e.DataRow("更新记录") = Date.Now() & "  " & e.DataCol.Name & ":" & e.OldValue & "  变更为  " & e.NewValue & ";  操作人: " & user.Name & Chr(13) & Chr(10) & lsjl
    End If
    DataTables("试产项目进度表").Save()
End If

If e.DataRow("工单号") <> "" Then
e.DataRow("主键列") = e.DataRow("工单号") 
End If

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


加好友 发短信
等级:超级版主 帖子:107757 积分:548124 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/9 12:00:00 [只看该作者]

Dim qt As Integer
If e.DataCol.Name = "工单号" Then
    qt = DataTables("齐套信息").sqlCompute("Count(工单号)","[工单号] = '" & e.NewValue & "' and [缺料] <> 0")
    If qt = 0 Then
        e.DataRow("物料齐套情况") = "齐套"
    Else
        e.DataRow("物料齐套情况") = "未齐套," & "缺少" & qt & "款物料"
    End If
    If e.DataRow("工单号") <> "" Then
        e.DataRow("主键列") = e.DataRow("工单号")
    End If
End If

If  e.DataCol.Name <> "更新记录" Then
    Dim lsjl As String = e.DataRow.OriginalValue("更新记录")
    If e.DataRow("更新记录") = "" Then
        e.DataRow("更新记录") = Date.Now() & "  " & e.DataCol.Name & ":" & e.OldValue & "  变更为  " & e.NewValue & ";  操作人: " & user.Name
    Else
        e.DataRow("更新记录") = Date.Now() & "  " & e.DataCol.Name & ":" & e.OldValue & "  变更为  " & e.NewValue & ";  操作人: " & user.Name & Chr(13) & Chr(10) & lsjl
    End If
    DataTables("试产项目进度表").Save()
End If

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


加好友 发短信
等级:幼狐 帖子:83 积分:912 威望:0 精华:0 注册:2019/9/20 14:29:00
  发帖心情 Post By:2020/1/9 12:47:00 [只看该作者]

代码修改了,直接输入数据不会出错了


但是,合并数据(将excel数据合并进来)的时候还是会出现错误,错误提示如下:


.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2019.12.8.1
错误所在事件:表,试产项目进度表,DataColChanged
详细错误信息:
调用的目标发生了异常。
没有要访问的 Original 数据。

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


加好友 发短信
等级:超级版主 帖子:107757 积分:548124 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/9 13:45:00 [只看该作者]

Dim lsjl As String = IIF(e.DataRow.OriginalValue is nothing,"",e.DataRow.OriginalValue("更新记录"))

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


加好友 发短信
等级:幼狐 帖子:83 积分:912 威望:0 精华:0 注册:2019/9/20 14:29:00
  发帖心情 Post By:2020/1/9 14:03:00 [只看该作者]

把这段代码改了,还是出现同样的错误提示
Dim lsjl As String = IIF(e.DataRow.OriginalValue("更新记录") Is Nothing,"",e.DataRow.OriginalValue("更新记录"))

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


加好友 发短信
等级:超级版主 帖子:107757 积分:548124 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/9 14:17:00 [只看该作者]

Dim lsjl As String = ""
if e.DataRow.OriginalValue Isnot Nothing then
lsjl = e.DataRow.OriginalValue("更新记录")
end if

 回到顶部