Foxtable(狐表)用户栏目专家坐堂 → 请问,自动编号事件出错提示,是什么原因?如何解决?


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

主题:请问,自动编号事件出错提示,是什么原因?如何解决?

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


加好友 发短信
等级:婴狐 帖子:43 积分:669 威望:0 精华:0 注册:2014/5/4 14:52:00
请问,自动编号事件出错提示,是什么原因?如何解决?  发帖心情 Post By:2019/11/27 10:53:00 [显示全部帖子]

表中录入了字段更改事件,后出现如下提示:
Exception has been thrown by the target of  an  invocation
是什么原因,如何解决?

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


加好友 发短信
等级:婴狐 帖子:43 积分:669 威望:0 精华:0 注册:2014/5/4 14:52:00
  发帖心情 Post By:2019/11/27 11:22:00 [显示全部帖子]

If e.DataCol.Name = "送达日期" Then
    If e.DataRow.Isnull("送达日期") Then
        e.DataRow("送达编号") = Nothing
    Else
        Dim d As Date = e.DataRow("送达日期")
        Dim y As Integer = d.Year
        Dim fd As Date = New Date(y,1,1)
        Dim ld As Date = fd.addyears(1)
        Dim bh As String = Format(d,"yyyy")
        If e.DataRow("送达编号").StartWith(bh) = False
            Dim max As String
            Dim idx As Integer
            max = e.DataTable.Compute("Max(送达编号)","送达日期 >= #" & fd & "# And 送达日期 < #" & ld & "# And [_Identify] <> " & e.DataRow("_Identify"))
            If max > "" Then
                idx = CInt(max.Substring(4,4)) + 1
            Else
                idx = 1
            End If
            e.DataRow("送达编号") = bh & Format(idx,"0000")
        End If
    End If
End If

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


加好友 发短信
等级:婴狐 帖子:43 积分:669 威望:0 精华:0 注册:2014/5/4 14:52:00
  发帖心情 Post By:2019/11/27 14:16:00 [显示全部帖子]

对不起,占用老师的时间了。是我代码没敲对,StartsWith 敲成了StartWith。
以下代码,运行无误:
If e.DataCol.Name = "送达日期" Then
    If e.DataRow.Isnull("送达日期") Then
        e.DataRow("送达编号") = Nothing
    Else
        Dim d As Date = e.DataRow("送达日期")
        Dim y As Integer = d.Year
        Dim fd As Date = New Date(y,1,1)
        Dim ld As Date = fd.addyears(1)
        Dim bh As String = Format(d,"yyyy")
        If e.DataRow("送达编号").StartsWith(bh) = False
            Dim max As String
            Dim idx As Integer
            max = e.DataTable.Compute("Max(送达编号)","送达日期 >= #" & fd & "# And 送达日期 < #" & ld & "# And [_Identify] <> " & e.DataRow("_Identify"))
            If max > "" Then
                idx = CInt(max.Substring(4,4)) + 1
            Else
                idx = 1
            End If
            e.DataRow("送达编号") = bh & Format(idx,"0000")
        End If
    End If
End If

 回到顶部