以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  一个动态加载数据的例子  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=2095)

--  作者:狐狸爸爸
--  发布时间:2009/3/14 3:49:00
--  一个动态加载数据的例子

假定你有一个订单表,也许有几百个产品,上十万个订单,那么将其全部载入到Foxtable中是不现实的。
能不能用一个目录树列出所有的产品和客户,当我们双击某个产品或客户时,才加载对应的订单呢?
实现这样的功能,其实很简单:


1、首先我们参考大容量数据的管理,使得打开项目的时候,订单表不会加载任何数据。


2、然后新建一个窗口,窗口中插入一个目录树(TreeView),窗口的AfterLod事件代码设为:


Dim
cmd As New SQLCommand
Dim
dt As DataTable
cmd.CommandText =
"SELECT DISTINCT 产品,客户 From {订单}"
dt = cmd.ExecuteReader()

Dim
trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildDataTree(dt, "",
"产品", "客户"
)


这样一旦打开窗口,该目录树列出所有的产品和客户。


3、最后将目录树的NodeMouseDoubleClick事件设为:


Dim
Value()As String
Dim
Filter As string
Value = e.Node.FullPath.Split(
"\\")
Select
Case e.Node.Level
Case 0
Filter =
"[产品] = \'" & Value(0) & "\'"
Case 1
Filter =
"[产品] = \'" & Value(0) & "\' And [客户] = \'" & Value(1) & "\'"
End
Select
DataTables
("订单").LoadFilter = Filter
DataTables
("订单"
).Load()


这样我们只需双击某个节点,既可动态加载对应的订单。

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:管理项目11.table


--  作者:gaoqr
--  发布时间:2009/3/14 7:03:00
--  

学习!


--  作者:菜鸟foxtable
--  发布时间:2009/3/14 8:39:00
--  
顶起
--  作者:kylin
--  发布时间:2009/3/14 9:10:00
--  

收藏


--  作者:狐狸爸爸
--  发布时间:2009/3/14 14:37:00
--  
以下是引用hnaysx在2009-3-14 9:42:00的发言:

水贴太多了 有啥顶的


还是你的水多点。
图片点击可在新窗口打开查看


--  作者:woodiy
--  发布时间:2009/4/12 10:17:00
--  

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

我设置如下代码,可是出错了

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.CommandText = "SELECT DISTINCT 省市,客户名称 From {出库主表}"
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildDataTree(dt, "","省市", "客户名称")


--  作者:yangming
--  发布时间:2009/4/12 10:24:00
--  
先收藏,呵呵