Foxtable(狐表)用户栏目专家坐堂 → 筛选问题 挺复杂的···


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

主题:筛选问题 挺复杂的···

帅哥哟,离线,有人找我吗?
程兴刚
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2010/4/1 13:23:00 [只看该作者]

以下是引用czy在2010-4-1 13:11:00的发言:


好象没这么简单吧?
少了借贷的比较就失去意义了。

[此贴子已经被作者于2010-4-1 13:12:15编辑过]



没注意到他还有两个条件,这个不是问题,增加两组条件就ok了

..........添加临时列
for i as integer = 0 to tables("帐簿").count -1
    dim dr as datarow
    dr = DataTables("帐簿").Find("[日期] = #" & tables("帐簿").rows(i)("日期") & "# and [凭证号] = '" & tables("帐簿").rows(i)("凭证号") & "'and [借方金额] = " & tables("帐簿").rows(i)("借方金额") & "and [贷方金额] = " & tables("帐簿").rows(i)("贷方金额"))
    if tables("帐簿")(i,"_Identify") = dr("_Identify")
        dr("Note") = "a"
    end if
next
Tables("帐簿").Filter = "[Note] = 'a'"

.........删除临时列


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


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

图片点击可在新窗口打开查看

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2010/4/1 13:27:00 [只看该作者]

借用楼主的方式,这样少写几个字符:

for i as integer = 0 to tables("帐簿").count -1
    dim dr as datarow
    dr = DataTables("帐簿").Find("[日期] = #" & currenttable(i,"日期") & "# and [凭证号] = '" & currenttable(i,"凭证号") & "'and [借方金额] = " & currenttable(i,"借方金额") & "and [贷方金额] = " & currenttable(i,"贷方金额"))
    if tables("帐簿")(i,"_Identify") = dr("_Identify")
        dr("Note") = "a"
    end if
next
Tables("帐簿").Filter = "[Note] = 'a'"

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


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

以下是引用mr725在2010-4-1 10:40:00的发言:

条件在3楼:

条件这样: 日期相同 凭证号相同 借方金额=贷方金额 的行全部筛选注:已有大量的行被筛选掉了,这是之前筛选后的结果,需要再次筛选的) 】  也就是1楼标记了颜色的行都不要显示出来。  结果如下:


图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2010-4-1 10:40:14编辑过]


不理解凭证号为“收-122”为什么要全隐藏掉?


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


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

辅助列为逻辑型。效率应该不错。

24楼的疑问没排除。

Dim L As List(Of String()) = DataTables("帐簿").GetUniqueValues("","日期","凭证号")
For i As Integer = 0 To L.Count -1
    If L(i)(0) = "" Then
        Continue for
    End If
    Dim drs As List(Of DataRow) = DataTables("帐簿").Select("[日期] = #" & L(i)(0) & "# And [凭证号] = '" & L(i)(1) & "'", "_Identify")
    For n As integer = 0 To drs.Count - 1
        If n > 0
            drs(n)("辅助列") = (drs(n)("借方金额") = drs(n-1)("借方金额") AndAlso drs(n)("贷方金额") = drs(n-1)("借方金额")) = False
        End If
    Next
Next

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


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

两位版主的代码都不理想,在6楼附件中少量数据测试都还好(只是C版主的没有排除收-122号的凭证),但在7万多行数据中测试,几乎都要死机了。 估计是Find的问题(即使排除“现金”也是如此)
可能条件说的不完整,重新说明条件:
1、科目名称 有几十个不同科目,要筛选出含“银行” 和 “现金” 的行;
2、相同 [日期] 和相同 [凭证号]  这是必要条件之一(一般会等于或超过两行 );
3、满足1、2后,把 [借方金额] = [贷方金额] 【一定是有两行同日期和同凭证号行里,借、贷金额都相等】筛选出去,    也就是给这两行加注标记到 [辅助列]
4、最后筛选出  [辅助列] is null 的行来···
[此贴子已经被作者于2010-4-1 19:42:45编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2010/4/1 21:47:00 [只看该作者]

要想速度快,辅助列不要用临时列,随着数据的录入,通过前面几个列的变化,用事件代码自动标记,最后只是筛选,就快很多倍了!


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


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

以下是引用mr725在2010-4-1 19:41:00的发言:

1、科目名称 有几十个不同科目,要筛选出含“银行” 和 “现金” 的行

如果用Select速度都不行的话,Find估计就更不行了。
换个思路看看,先加载包含银行和现金的数据是不是会少很多呢?


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


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

大胆的问一句,借方金额会不会存在和贷方金额不相等的情况?


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


加好友 发短信
等级:幼狐 帖子:126 积分:1431 威望:0 精华:0 注册:2009/1/27 10:06:00
  发帖心情 Post By:2010/4/1 23:04:00 [只看该作者]

设找代码1002007   和借方金额>0  条件不就是了


 回到顶部
总数 37 上一页 1 2 3 4 下一页