按照帮助文件写的,窗口是主窗口,里面一个分区面板,分别放一个目录树和一个绑定数据表的表格控件。
点击“应用窗口”能正确显示、生成统计目录树,
但重启项目时,显示如下提示,目录树没有生成内容。
请教老师问题在哪儿呢?
.NET Framework 版本:4.0.30319.1026
Foxtable 版本:2019.10.22.1
错误所在事件:窗口,窗口1,AfterLoad
详细错误信息:
Object reference not set to an instance of an object.
------------------------------------
窗口的affterload事件代码:
'首先生成统计表
Dim dt As DataTable
Dim b As New GroupTableBuilder("统计表1",DataTables("参保人员"))
b.Groups.AddDef("所属市区")
b.Groups.AddDef("发放状态")
b.Groups.AddDef("项目名称")
b.Totals.AddDef("姓名",AggregateEnum.Count,"人数") '根据姓名列来统计记录数,也就是参保人数
dt = b.Build(True) '参数设置为True,生成一个临时表,不在主界面显示
'然后根据统计表生成目录树
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt, "所属市区|发放状态|项目名称")
trv.StopRedraw
For Each nd As WinForm.TreeNode In trv.AllNodes
Dim shiqu As String = nd.DataRow("所属市区")
Dim zhuangtai As String = nd.DataRow("发放状态")
Dim xiangmu As String = nd.DataRow("项目名称")
Select Case nd.Level
Case 0
nd.Text = nd.text & "(" & dt.Compute("Sum(人数)","所属市区 = '" & shiqu & "'") & "人)"
Case 1
nd.Text = nd.text & "(" & dt.Compute("Sum(人数)","所属市区 = '" & shiqu & "' And 发放状态 = '" &
zhuangtai & "'") & "人)"
Case 2
nd.Text = nd.text & "(" & nd.DataRow("人数") & "人)" '项目名称
End Select
Next
trv.Nodes.Insert("所有参保人员","所有参保人员(" & dt.Compute("Sum(人数)") & "人)",0)
trv.ResumeRedraw