Foxtable(狐表)用户栏目专家坐堂 → 一个动态加载数据的例子


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

主题:一个动态加载数据的例子

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
一个动态加载数据的例子  发帖心情 Post By: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


[本帖被加为精华]
 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/3/14 14:37:00 [显示全部帖子]

以下是引用hnaysx在2009-3-14 9:42:00的发言:

水贴太多了 有啥顶的


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


 回到顶部