Foxtable(狐表)用户栏目专家坐堂 → [讨论]错误事件


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

主题:[讨论]错误事件

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


加好友 发短信
等级:三尾狐 帖子:644 积分:4124 威望:0 精华:0 注册:2016/10/19 16:45:00
[讨论]错误事件  发帖心情 Post By:2017/3/2 9:25:00 [只看该作者]

老师,菜单事件我没有设置过为什么有这样的错误提示,该事件位置在哪里找到?。谢谢

.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2016.7.29.1
错误所在事件:菜单,AfterSelRangeChange
详细错误信息:
Object reference not set to an instance of an object.


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110569 积分:562735 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/2 9:37:00 [只看该作者]

事件代码贴出来

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/2 10:12:00 [只看该作者]

导入系统菜单,修改一下菜单的 AfterSelRangeChange事件


Dim t As Table
RibbonMenu.StatusBar.Message3 = ""
Vars("SysUpdateAggregate") = False
If e.Table IsNot CurrentTable OrElse CurrentTable Is Nothing Then
    Return
Else
    t = CurrentTable
End If
If t.TopRow = t.BottomRow AndAlso t.LeftCol = t.RightCol Then
    Return
End If
For c As Integer = t.LeftCol To t.RightCol
    If C > 0 Then
        If t.Cols(c).IsNumeric = False Then
            Return
        End If
    End If
Next
Vars("SysUpdateAggregate") =  True

 

http://www.foxtable.com/webhelp/scr/1079.htm

 


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


加好友 发短信
等级:三尾狐 帖子:644 积分:4124 威望:0 精华:0 注册:2016/10/19 16:45:00
  发帖心情 Post By:2017/3/2 10:24:00 [只看该作者]

老师,上面好了,下面错误提示找不出原因。


.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2016.7.29.1
错误所在事件:表,费用明细, DataColChanged
详细错误信息:
Exception has been thrown by the target of an invocation.
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index


Select Case  e.DataCol.Name
    Case "姓名","项目","规格"
        Dim n1 As Integer
        Dim Lms,py,jps As  String
        Dim jps1 As New List(Of String)
        
        Lms ="姓名|项目|规格"
        For Each py  In Lms.split("|")
            If  py =e.DataCol.Name Then
                Exit For
            End If
            n1+=1
        Next
        If e.DataRow.Isnull(e.DataCol.Name) Then
            py  ="@|#|$".split("|")(n1)
        Else
            py = GetPY(e.DataRow(e.DataCol.Name),True)
        End If
        
        jps1.AddRange(e.DataRow("简拼").split("|"))
        jps1.Insert(n1,py)
        jps1.RemoveAt(n1+1)
        
        For Each py  In jps1
            jps+=py & "|"
        Next
        e.DataRow("简拼") = jps.trim("|")
End Select
[此贴子已经被作者于2017/3/2 10:24:59编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/2 10:38:00 [只看该作者]

 例子上传来测试。

 

Select Case  e.DataCol.Name
    Case "姓名","项目","规格"
        Dim n1 As Integer
        Dim Lms,py,jps As  String
        Dim jps1 As New List(Of String)
       
        Lms ="姓名|项目|规格"
        For Each py  In Lms.split("|")
            If  py =e.DataCol.Name Then
                Exit For
            End If
            n1+=1
        Next
        If e.DataRow.Isnull(e.DataCol.Name) Then
            py  ="@|#|$".split("|")(n1)
        Else
            py = GetPY(e.DataRow(e.DataCol.Name),True)
        End If
        If e.DataRow.isnull("简拼") = False Then
            jps1.AddRange(e.DataRow("简拼").split("|"))
        Else
            jps1.AddRange("@|#|$".split("|"))
        End If
        jps1.Insert(n1,py)
        jps1.RemoveAt(n1+1)
       
       
        For Each py  In jps1
            jps+=py & "|"
        Next
        e.DataRow("简拼") = jps.trim("|")
       
End Select


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


加好友 发短信
等级:三尾狐 帖子:644 积分:4124 威望:0 精华:0 注册:2016/10/19 16:45:00
  发帖心情 Post By:2017/3/2 12:04:00 [只看该作者]

老师,新增行是可以的,原来的数据重置列就不行。

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/2 12:12:00 [只看该作者]

 实例上传上来测试。

 回到顶部