以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  增加列,会弹窗报错,求指导  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=158161)

--  作者:piratesytu
--  发布时间:2020/11/10 9:55:00
--  增加列,会弹窗报错,求指导
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:村干部基本信息,AfterSelRangeChange
详细错误信息:
值不能为 null。
参数名: key




Dim c As Col = e.Table.Cols(e.NewRange.LeftCol)
Dim dict As new Dictionary(of String,Integer)
Dim r As Row
For i As Integer = e.NewRange.TopRow To e.NewRange.BottomRow
    r = e.Table.Rows(i)
    If dict.ContainsKey(r(c.Name)) Then
        dict(r(c.Name)) += 1
    Else
        dict.Add(r(c.Name),1)
    End If
Next
Dim f As Integer = e.Table.Cols("学历_全日制").Index 
Dim f2 As Integer = e.Table.Cols("党组织建制").Index
Dim f3 As Integer = e.Table.Cols("干部类型").Index
Dim f4 As Integer = e.Table.Cols("工作单位_村居社区").Index 
If e.NewRange.LeftCol = e.NewRange.RightCol AndAlso (e.NewRange.LeftCol =f OrElse e.NewRange.LeftCol =f2 OrElse e.NewRange.LeftCol =f3 OrElse e.NewRange.LeftCol =f4) Then
Dim s As String = ""
For Each key As String In dict.Keys
    s = s & ";" & key & ":" & dict(key)
StatusBar.Message2 = s
Next
Else
StatusBar.Message2 = ""
End If

请版主帮忙指导!

--  作者:有点蓝
--  发布时间:2020/11/10 10:17:00
--  
应该是有空单元格

For i As Integer = e.NewRange.TopRow To e.NewRange.BottomRow
    r = e.Table.Rows(i)
if r.isnull(c.Name) = false
    If dict.ContainsKey(r(c.Name)) Then
        dict(r(c.Name)) += 1
    Else
        dict.Add(r(c.Name),1)
    End If
end if
Next

--  作者:piratesytu
--  发布时间:2020/11/10 10:49:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:未知错误.jpg
图片点击可在新窗口打开查看

增加if r.isnull(c.Name) = false之后,提示未知编译错误

--  作者:有点蓝
--  发布时间:2020/11/10 10:51:00
--  
仔细看2楼:end if