Foxtable(狐表)用户栏目专家坐堂 → 求助:多选筛选树的代码


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

主题:求助:多选筛选树的代码

帅哥,在线噢!
wjl-se
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:771 积分:6388 威望:0 精华:0 注册:2011/12/1 14:47:00
求助:多选筛选树的代码  发帖心情 Post By:2012/6/29 14:16:00 [只看该作者]

引用帮助中的多选目录树:

目录树的AfterCheckNode事件代码设置为:

Dim trv As WinForm.TreeView = e.Sender
Dim
flt As String
For
Each nd As WinForm.TreeNode In e.node.Nodes '同步子节点选中状态
    nd.Checked = e.Node.
Checked
Next
If
e.node.ParentNode IsNot Nothing Then '去掉父节点选中状态
    e.node.ParentNode.Checked =
False
End
If
For
Each nd As WinForm.TreeNode In trv.AllNodes
    If nd.Level > 0 AndAlso nd.ParentNode.Checked Then
'如果父节点选中
        Continue For
'跳过此节点,处理下一结点
    End If
    If nd.Checked Then
        If flt > "" Then
            flt = flt & " Or " 
'注意用or而不是And
        End If
        If nd.Level = 0 Then
'注意下面的条件都要用括号括起来
            flt = flt &
"( 产品 = '" & nd.Text & "')"
       
Else
            flt = flt & "( 产品 = '" & nd.ParentNode.Text & "' And 客户 = '" & nd.Text & "')"
        End If
    End If   

Next
Tables
("订单").Filter = flt

 

现在我想在“订单总表中”实现 "部门|年|月" 的多选筛选树,代码应该怎么写?请老师帮忙,谢谢!(“年”“月”来自订单总表里的“填报日期”列)

[此贴子已经被作者于2012-6-29 14:25:30编辑过]

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


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

嘿嘿,这个可不简单,有空我再帮你看看吧。


 回到顶部
帅哥,在线噢!
wjl-se
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:771 积分:6388 威望:0 精华:0 注册:2011/12/1 14:47:00
  发帖心情 Post By:2012/6/29 14:50:00 [只看该作者]

多谢狐爸!!

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


加好友 发短信
等级:婴狐 帖子:5 积分:97 威望:0 精华:0 注册:2012/6/25 11:53:00
  发帖心情 Post By:2012/6/29 17:04:00 [只看该作者]

拼接不行吗?

 回到顶部
帅哥,在线噢!
wjl-se
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:771 积分:6388 威望:0 精华:0 注册:2011/12/1 14:47:00
  发帖心情 Post By:2012/7/3 15:38:00 [只看该作者]

变通一下,增加两列表达式,分别得出“年”,“月”,上面的代码该怎么写呢?主要是最后面的几句。。。

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


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

计算年月的话,直接用表达式就行:

 

http://www.foxtable.com/help/topics/1285.htm

 


 回到顶部
帅哥,在线噢!
wjl-se
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:771 积分:6388 威望:0 精华:0 注册:2011/12/1 14:47:00
  发帖心情 Post By:2012/7/3 16:04:00 [只看该作者]

哦,不是这个意思。为了实现“部门|年|月”的多选筛选树,我又增加了两个表达式列,得到了“年”和“月”,这样是不是就可以套用一楼的代码了?如果可以,应该怎么改?自己照葫芦画瓢没成功...


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/7/3 16:20:00 [只看该作者]

其实一模一样的:

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:统计演示.table

请仔细分析一下,你的为什么不行,然后告诉我原因。


 回到顶部
帅哥,在线噢!
wjl-se
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:771 积分:6388 威望:0 精华:0 注册:2011/12/1 14:47:00
  发帖心情 Post By:2012/7/3 22:33:00 [只看该作者]

改成"年|月|部门"就可以了图片点击可在新窗口打开查看 可是这不是我想要的。

 

记得在数据统计一章说过,日期必须放在前面,只是知道,但不知道为什么。再说,我用表达式得到的“年”和“月”都是字符型的呀。

那问题可能就在表达式身上了,应该跟这个有关吧。之前发过帖问过筛选树的问题,说表达式的日期不能生成筛选树。可是我现在生成的是字符型的列,不是日期啊。

 

表达式还有什么特殊性?还请狐爸指点迷津……


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/7/4 7:58:00 [只看该作者]

改成"年|月|部门"就可以了,任何情况都可以,只要你合成的表达式正确。

不要只说不行,如果搞不定,就像我这样做个例子,只是你要做的是不行的例子。


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