Foxtable(狐表)用户栏目专家坐堂 → 加载树统计错误


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

主题:加载树统计错误

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


加好友 发短信
等级:二尾狐 帖子:522 积分:5033 威望:0 精华:0 注册:2015/4/15 15:25:00
加载树统计错误  发帖心情 Post By:2015/7/8 22:52:00 [只看该作者]

参照帮助文件-->SQL相关-->SQL应用实例-->在加载树显示统计数据

 

1.应用窗口时统计的数量是正确的,但不符合条件的值如何隐藏?

 

2.在窗口设计器预览时,出现错误弹窗,不知道如何避免(不想注释掉SystemIdle中的代码)


图片点击可在新窗口打开查看此主题相关图片如下:显示.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:错误.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.zip


图片点击可在新窗口打开查看此主题相关图片如下:代码.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2015/7/8 22:53:15编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/8 23:17:00 [只看该作者]

      
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.table


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


加好友 发短信
等级:二尾狐 帖子:522 积分:5033 威望:0 精华:0 注册:2015/4/15 15:25:00
  发帖心情 Post By:2015/7/9 15:27:00 [只看该作者]

1楼是用“入职日期”来显示加载树统计数据

 

我现在用“课室”、“组别”、“班别”生成统计数据

 

窗口应用时没有问题,显示的资料都是正确的,但窗口设计-->文件-->预览,又弹出“菜单的SystemIdle事件执行过程.....”,窗口一直跳出来,停不下来

 

请问:哪里需要修改?

 

另外,在目录树生成,还没有选择节点前,会显示所有人员,包括已离职的人员。

 

 

窗口 Afterload事件:

Dim dt As DataTable
Dim b As New SQLGroupTableBuilder("统计表1","员工名册")    '首先生成统计表
b.C     '这里是数据库名称,在论坛无法正常显示
b.Filter = "离职 = 0"
b.Groups.AddDef("课室")
b.Groups.AddDef("组别")
b.Groups.AddDef("班别")
b.Totals.AddDef("工号",AggregateEnum.Count,"工号")   '根据工号列来统计记录数,也就是人数
b.Build()
dt = DataTables("统计表1")   '生成统计表
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt,"课室|组别|班别")   '然后根据统计表生成目录树
trv.StopRedraw
For Each nd As WinForm.TreeNode In trv.AllNodes
    Dim ke As String = nd.DataRow("课室")
    Dim zu As String = nd.DataRow("组别")
    Dim ban As String = nd.DataRow("班别")
    Select Case nd.Level
        Case 0
            nd.Text = nd.text & "(" & dt.Compute("Sum(工号)","课室 = '" & ke & "'" ) & "人)"
        Case 1
            nd.Text = nd.text & "(" & dt.Compute("Sum(工号)","课室 = '" & ke & "' And 组别 = '" & zu & "'" ) & "人)"
        Case 2
            nd.text = nd.text & "(" & dt.Compute("Sum(工号)","课室 = '" & ke & "' And 组别 = '" & zu & "' And 班别 = '" & ban & "'" )  & "人)"
    End Select
Next
trv.Nodes.Insert("加载所有行","加载所有行(" & dt.Compute("Sum(工号)") & "人)",0)
trv.ResumeRedraw

 

 

目录树 NodeMouseClick事件:

Dim Filter As String = "离职日期 is null "
If e.Node.Name <> "加载所有行" Then   '要用Name属性,不能用Text属性
    Dim ke As String = e.Node.DataRow("课室")
    Dim zu As String = e.Node.DataRow("组别")
    Dim ban As String = e.Node.DataRow("班别")
    Select Case e.Node.Level
        Case 0
            Filter = "课室 = '" & ke & "'and 离职日期 is null"
        Case 1
            Filter = "课室 = '" & ke & "' and 组别 = '" & zu & "'"
        Case 2
            Filter = "课室 = '" & ke & "' and 组别 = '" & zu & "'and 班别 = '" & ban & "'"
    End Select
End If
DataTables("员工名册").LoadFilter = filter
DataTables("员工名册").Load()

[此贴子已经被作者于2015/7/9 15:33:03编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/9 15:31:00 [只看该作者]

 你的Table1控件弄成副本表了吗?不要主表。

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


加好友 发短信
等级:二尾狐 帖子:522 积分:5033 威望:0 精华:0 注册:2015/4/15 15:25:00
  发帖心情 Post By:2015/7/9 15:35:00 [只看该作者]

Table1 控件

作为副本:False

允许编辑:True

 

另外,在目录树生成,还没有选择节点前,会显示所有人员,包括已离职的人员。


图片点击可在新窗口打开查看此主题相关图片如下:table1.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2015/7/9 15:36:19编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/9 15:38:00 [只看该作者]

作为副本,设置成true

 

第二个问题,afterLoad事件加入代码

 

DataTables("员工名册").LoadFilter = "离职日期 is null "
DataTables("员工名册").Load()


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


加好友 发短信
等级:二尾狐 帖子:522 积分:5033 威望:0 精华:0 注册:2015/4/15 15:25:00
  发帖心情 Post By:2015/7/9 15:49:00 [只看该作者]

问题解决,非常感谢。

 

Foxtable是个好软件~!


 回到顶部