Foxtable(狐表)用户栏目专家坐堂 → treeview效率


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

主题:treeview效率

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


加好友 发短信
等级:小狐 帖子:350 积分:3412 威望:0 精华:0 注册:2015/5/12 15:33:00
treeview效率  发帖心情 Post By:2016/8/13 14:24:00 [只看该作者]

以下代码与帮助文件中的代码完全一致,数据有3万多行,加载窗口要3分多钟,求大师指点。



Dim t As WinForm.Table = e.Form.Controls("")

t.BackColor = Color.LightCyan

DataTables("员工家庭").SysStyles("EmptyArea").BackColor = Color.lightcyan

'生成统计表

Dim dt As DataTable

Dim b As New sqlGroupTableBuilder("total","员工家庭")

b.ConnectionName = "HaiHeBase"

b.Groups.AddDef("饮用水")

b.Groups.AddDef("部门村居")

b.Groups.AddDef("所站办组")

b.Groups.AddDef("户主姓名")

b.Totals.AddDef("饮用水",AggregateEnum.count,"结构") '根据客户列来统计结构数

dt = b.Build '参数设置为False,生成一个临时表,不在主界面显示

msgbox(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 bm As String = nd.DataRow("部门村居")

    Dim sz As String = nd.DataRow("所站办组")

    Dim aq As String = nd.DataRow("饮用水")

    Dim xm As String = nd.DataRow("户主姓名")

    Select Case nd.Level

        Case 0

            nd.Text = nd.text & "(" & dt.Compute("count(结构)","饮用水 = '" & aq & "'") & ")"

        Case 1

            nd.Text = nd.text & "(" & dt.Compute("count(结构)","饮用水 = '" & aq & "' and 部门村居 = '" & bm & "'")  & ")"

        Case 2

            nd.Text = nd.text & "(" & dt.Compute("count(结构)","饮用水 = '" & aq & "' and 部门村居 = '" & bm & "'  And 所站办组 = '" & sz & "'") & ")"

        Case 3

            nd.Text = nd.text & "(" & dt.Compute("count(结构)","饮用水 = '" & aq & "' and 部门村居 = '" & bm & "'  And 所站办组 = '" & sz & "' And 户主姓名 =  '" & xm & "'") & ")"

    End Select

Next

trv.Nodes.Insert("全镇户数","全镇户数(" & dt.Compute("count(结构)") & "户)",0)

trv.ResumeRedraw


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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/8/13 15:09:00 [只看该作者]

数据多没有办法的,要么做成分页加载


 回到顶部