在加载树显示统计数据
本节的示例,可以参考CaseStudy目录下的文件:统计加载树.Table
假定我们要设计一个下图所示的加载树,和普通的加载树不同,这个加载树的年、月节点不是纯数字的,会显示"年"、"月"字样,而且每个节点会显示该节点下的订单总数:
设计步骤:
1、新建一个窗口,窗口类型设为主窗口,在窗口中插入一个分区面板。
2、在右分区插入一个Table(表),将其绑定到主表(订单表),并将其停靠属性设置为Fill。
3、在左分区插入一个TreeView(目录树),并将其停靠属性设置为Fill。
4、将分区面板的停靠属性也设为Fill。
5、将窗口的AfterLoad事件设为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
'首先生成统计表 |
上面的代码中,请留意第8行代码:
dt = b.Build(True) '参数设置为True,生成一个临时表,不在主界面显示
加上参数True后,Build生成的表,不会在主界面显示,当不再有地方引用这个表或这个表中的行和列时,这个表就会被自动销毁,参考不显示生成的表。
以本节的例子来说,由于根据这个表生成了目录树,目录树节点的DataRow属性会引用这个表中的行,所以直到关闭窗口,这个表才会被自动销毁。
6、将目录树的NodeMouseDoubleClick事件设为:
Dim
Filter As
String = ""
If
e.Node.Name
<> "加载所有行" Then
'要用Name属性,不能用Text属性
Dim Year
As Integer =
e.Node.DataRow("年")
Dim
Month As
Integer = e.Node.DataRow("月")
Dim Product
As String =
e.Node.DataRow("产品")
Select Case
e.Node.Level
Case 0
Filter ="Year(日期)
= "
& Year
Case 1
Filter ="Year(日期)
= "
& Year
& " And Month(日期)
= "
& Month
Case 2
Filter ="Year(日期)
= "
& Year
& " And Month(日期)
= "
& Month
& " And
产品
= '"
& Product
& "'"
End Select
End
If
DataTables("订单").LoadFilter
= Filter
DataTables("订单").Load()