以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]窗口生成带统计的目录树的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=143094)

--  作者:ahbzczy
--  发布时间:2019/11/13 14:31:00
--  [求助]窗口生成带统计的目录树的问题
按照帮助文件写的,窗口是主窗口,里面一个分区面板,分别放一个目录树和一个绑定数据表的表格控件。
点击“应用窗口”能正确显示、生成统计目录树,
但重启项目时,显示如下提示,目录树没有生成内容。
请教老师问题在哪儿呢?
.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




--  作者:有点蓝
--  发布时间:2019/11/13 14:53:00
--  
看不出什么问题,关闭退出项目,删除项目所在的文件夹里的bin目录,然后重启项目试试。

调试一下看是那一句代码有问题:http://www.foxtable.com/webhelp/scr/1485.htm

--  作者:ahbzczy
--  发布时间:2019/11/13 17:21:00
--  
在代码中添加测试,显示2后出现问题,实在搞不清问题在哪,关键是在窗口设计中显示时正常。
我传上来项目文件,请老师给检查一下。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:谯城区失地养老保险管理系统.zip


--  作者:有点蓝
--  发布时间:2019/11/13 17:31:00
--  
窗口设计时把自动打开设置为false,然后到afteropenproject事件写代码打开窗口

forms("窗口1").open

--  作者:ahbzczy
--  发布时间:2019/11/14 9:46:00
--  
感谢@有点蓝 老师帮助,这样确实正常了。感觉还是存在窗口打开和统计表生成之间存在的先后问题,但还没有想明白问题的症结。