以文本方式查看主题 - 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后出现问题,实在搞不清问题在哪,关键是在窗口设计中显示时正常。 我传上来项目文件,请老师给检查一下。
|
||||
-- 作者:有点蓝 -- 发布时间:2019/11/13 17:31:00 -- 窗口设计时把自动打开设置为false,然后到afteropenproject事件写代码打开窗口 forms("窗口1").open
|
||||
-- 作者:ahbzczy -- 发布时间:2019/11/14 9:46:00 -- 感谢@有点蓝 老师帮助,这样确实正常了。感觉还是存在窗口打开和统计表生成之间存在的先后问题,但还没有想明白问题的症结。 |