Foxtable(狐表)用户栏目专家坐堂 → Find Filter 条件 问题


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

主题:Find Filter 条件 问题

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
Find Filter 条件 问题  发帖心情 Post By:2009/9/14 10:37:00 [只看该作者]

科目名称 列(内容样式): 银行存款_招商银行

在不分列的情况下

Dim dr As DataRow
dr = DataTables("test").Find("'" & dr("科目名称").split("_")(0) & "' = '银行存款' And ''" & dr("科目名称").split("_")(1) & "' = '招商银行' ")

Tables("test").Filter ="[科目名称]1 = '" & Value(0) & "' And [科目名称]2 = '" & Value(1) & "'"

代码中标有底色的部分,'" & dr("科目名称").split("_")(0) & "'可以这么用吗?[科目名称]1又应怎样表达? 

【说明】:
[科目名称]1 = 银行存款   和 [科目名称]2 =招商银行  】
【Value(0) 和 Value(1) 是目录树级次上的[科目名称]1 和[科目名称]2】


不知道我说的清楚没有?
 
[此贴子已经被作者于2009-9-14 10:37:52编辑过]

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


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

比较的时候必须是列名和常量的比较,你的Split计算出来的是一个常量,常量和常量的比较,对于任何行都一样。
不能用find,只能用for each,逐行比较。

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


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

        Select Case e.Node.Level
            Case 0
                Dim Val() As String
                for each s as datarow in datatables("test").datarows
                    Val = s("科目名称").Split("_")
                    if Val(0)= " & Value(0) & " then
                        Tables("test").Filter ="Val(0) = '" & Value(0) & "'"
                        exit for
                    end if
                next
            Case 1
                Dim Val() As String
                for each s as datarow in datatables("test").datarows
                    Val = s("科目名称").Split("_")
                    if Val(1)= " & Value(1) & " then
                        Tables("test").Filter ="Val(0) = '" & Value(0) & "' And Val(1) = '" & Value(1) & "'"
                        exit for
                    end if
                next
        End Select       


这样?

[此贴子已经被作者于2009-9-14 11:41:42编辑过]

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


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

还是不行,又是常量比较啦,难道非要把 科目名称 列 进行分列后,再取 分列名 来比较? 
要知道: 科目 可能有五极,难道我要再分五列?就算内部表,每年也有几万条记录啊~

不分列真的不可以吗?

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


加好友 发短信
等级:幼狐 帖子:180 积分:1239 威望:0 精华:0 注册:2009/5/5 10:20:00
  发帖心情 Post By:2009/9/14 13:00:00 [只看该作者]

Dim dr As DataRow
dr = DataTables("test").Find(" 科目名称= '" & dr("科目名称").split("_")(0)&"_招商银行"& "' )
不知道这样的行不行呀?

[此贴子已经被作者于2009-9-14 13:01:17编辑过]

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/9/14 14:38:00 [只看该作者]

为何不用Like ?


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/9/14 14:49:00 [只看该作者]

这样行吗?

Dim Value() As String = e.Node.FullPath.Split("\")
Select Case e.Node.Level
    Case 0
        Tables("test").Filter = "科目名称 Like  '" & e.Node.Text & "*'"
    Case 1
        Tables("test").Filter = "科目名称 Like '" & Value(0) & "_"  & Value(1) & "*'"
End Select

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


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

以下是引用czy在2009-9-14 14:49:00的发言:
这样行吗?

Dim Value() As String = e.Node.FullPath.Split("\")
Select Case e.Node.Level
    Case 0
        Tables("test").Filter = "科目名称 Like  '" & e.Node.Text & "*'"
    Case 1
        Tables("test").Filter = "科目名称 Like '" & Value(0) & "_"  & Value(1) & "*'"
End Select

谢谢c版,很好用~  【下午有空时一直在琢磨不分列怎么来生成目录树,没成功(用其他方式替代了),所以刚刚才试了试您的代码,非常理想】


 回到顶部