Foxtable(狐表)用户栏目专家坐堂 → 自动生成目录树:能否固定下来?


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

主题:自动生成目录树:能否固定下来?

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
自动生成目录树:能否固定下来?  发帖心情 Post By:2009/6/26 13:44:00 [显示全部帖子]

Dim tv As WinForm.TreeView
tv =e.Form.Controls(
"TreeView1")
tv.BuildDataTree(
"订单", "", "产品", "客户", "雇员")
这样形成的树目录,每次打开窗口(在afterload中含上面代码),都会重新加载一次,如果记录行数多时会很慢,如果已经加载过的树目录能固定下来,就不会每次打开这个窗口都重新加载了,需要时再刷新来重新加载不是更好吗? 不知道表达清楚了没有?~

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/6/26 13:50:00 [显示全部帖子]

如果‘订单’表经过了筛选,那么形成的树目录就不完整了!~ 取消筛选显示所有行也会很慢~ 
希望最后能固定下来~   狐爸想想办法呀~ 


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/6/26 17:32:00 [显示全部帖子]

这两断代码有何区别吗?:


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

===================================
上下两断代码有何区别????? 黑色字体部分是一样的!~

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

这第二断代码在选择树目录后,重新打开有树目录的窗口后,不能完整加载树目录,而只能将由树目录筛选的结果加载到树目录里。

[此贴子已经被作者于2009-6-26 17:36:06编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/6/26 17:45:00 [显示全部帖子]

以下是引用狐狸爸爸在2009-6-26 14:03:00的发言:

筛选不影响的,因为目录树是根据DataTable生成的。

5楼第二断代码筛选后,为什么重新加载树目录时,不能完整加载? 这个datatable也还在呀!


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/6/26 18:27:00 [显示全部帖子]

以下是引用狐狸爸爸在2009-6-26 17:57:00的发言:
DataTable是还在,但是内容不同了,因为你重新加载了。
例如总共有1000行,其中100行的产品为Pd01,现在重新加载,加载条件为产品等于pd01,那么Load后,DataTable就只有100行数据了,重新生成目录树的话,当然是不完整的,数据都不完整了嘛。

datatable是一个‘仓库’啊,怎么内容不同? 在这里好像变成了table了(由1000行变成了100行)???

datatable 和 table 可能是我等非正式学编程者的永远的痛啊~~~


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/6/26 23:16:00 [显示全部帖子]

以下是引用梦倩在2009-6-26 22:36:00的发言:
怎么五尾狐也会搞不清这个问题啊?

仓库(DataTable)的数据从哪里来的?是从后台的数据文件加载来的,至于加载那些数据,是由DataTable的LoadFilter决定的。
展厅(Table)的数据从哪里来的? 是从仓库(DataTable)中来的,至于展示那些数据,是由Table的Filter属性决定的。

狐爸说:目录树是根据DataTable生成的。我的都是内部表而且就是当前的表,不管是后台或前台数据都在我的项目中,那么 e.Form.Controls("TreeView1").BuildDataTree("订单", "", "产品", "客户", "雇员")生成的目录树是根据DataTable生成的,应该一致的呀。
实际上5楼的两断代码双击后的结果是一样的,即可见的筛选出来的table中的内容一致,其他行都隐藏了或到后台去了,关键是load后,上面的生成目录树的代码就不知道到哪去找datatable了吗? 怎么会缠着table不放???
真的好难理解!~
另外,虽然是五尾狐了,这不能说明什么只是在论坛泡得时间长,有用无有的问题发表一大通,且积极参与狐友的讨论,它不是技术职称呀~  所以有些东东并没有掌握,多向大家学习的结果``` 呵呵····


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/6/27 14:18:00 [显示全部帖子]

呵呵~    没学过数据库原理,真是挺拗口的~   后台数据(原来以为和datatable是一致的)、datatable、table :今后慢慢领会了~   
主题要求没法实现,郁闷了~ 


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/6/27 15:07:00 [显示全部帖子]

好的,学习中~


 回到顶部