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


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

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

帅哥哟,离线,有人找我吗?
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中含上面代码),都会重新加载一次,如果记录行数多时会很慢,如果已经加载过的树目录能固定下来,就不会每次打开这个窗口都重新加载了,需要时再刷新来重新加载不是更好吗? 不知道表达清楚了没有?~

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/6/26 13:45:00 [只看该作者]

不可以的。

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


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

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


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/6/26 14:03:00 [只看该作者]

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


 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/6/26 17:38:00 [只看该作者]

LoadFilter加Load是用于加载数据的,针对的是DataTable,意思是从后台加载符合条件的数据到DataTable中。
Filter是筛选,针对的是Table,意思是从DataTable中提取符合条件的数据显示在Table中。
两者作用完全不同。

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/6/26 17:43:00 [只看该作者]

在使用LoadFilter加Load的时候,目录树不应该直接根据DataTable生成,其实之前那么多的动态加载数据演示,已经提供了很好的例子给你。

你可以打开CaseStudy目录下关于动态加载的示例文件,可以看到目录树并没有受到LoadFilter的影响。

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | 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也还在呀!


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/6/26 17:57:00 [只看该作者]

DataTable是还在,但是内容不同了,因为你重新加载了。
例如总共有1000行,其中100行的产品为Pd01,现在重新加载,加载条件为产品等于pd01,那么Load后,DataTable就只有100行数据了,重新生成目录树的话,当然是不完整的,数据都不完整了嘛。

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | 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 可能是我等非正式学编程者的永远的痛啊~~~


 回到顶部
总数 17 1 2 下一页