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


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

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

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


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

我认为是大难题,帮你顶一下先。

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


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

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

看一楼,没看出你筛选的条件是什么,临时列标记就是你要筛选的条件

条件在3楼:

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


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

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


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

文件中标明的是最后要的结果?
1002001怎么被全部筛选掉?


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


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

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

文件中标明的是最后要的结果?
1002001怎么被全部筛选掉?

结果在12楼。


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


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

我是这样做的,基本可以了: 帮看看有没有不妥之处
for i as integer = 1 to currenttable.count -1
    if currenttable(i,"日期") = currenttable(i-1,"日期") and _
        currenttable(i,"凭证号") = currenttable(i-1,"凭证号")  and _
        currenttable(i,"借方金额") = currenttable(i-1,"贷方金额") or _
        currenttable(i,"日期") = currenttable(i-1,"日期") and _
        currenttable(i,"凭证号") = currenttable(i-1,"凭证号")  and _
        currenttable(i,"贷方金额") = currenttable(i-1,"借方金额")           
           
            currenttable(i,"临时列") = "将被筛选掉")         
            currenttable(i-1,"临时列") = "将被筛选掉")

    end if
next
Tables("帐簿").Filter = "[临时列] is null "          ‘谢谢程版提示···
还有更好的办法吗?

[此贴子已经被作者于2010-4-1 19:54:17编辑过]

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


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

您的判断有问题,假如是隔行、甚至隔几行相同呢?

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


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

以下是引用程兴刚在2010-4-1 11:48:00的发言:
您的判断有问题,假如是隔行、甚至隔几行相同呢?

那要来几次遍历了,可就麻烦了。。。 要用select 归集等···

幸好,会计分录有规则,目前感觉能将其排序成1楼的样式,否则真的难了····(碰到时再请教)


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


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

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

那要来几次遍历了,可就麻烦了。。。 要用select 归集等···

幸好,会计分录有规则,目前感觉能将其排序成1楼的样式,否则真的难了····(碰到时再请教)


不会吧?

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


前面加上增加临时列,后面加上删除临时列的代码,您自己搞定(临时列相当于您文件中的[Note]列)。


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


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

以下是引用程兴刚在2010-4-1 12:52:00的发言:


不会吧?

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


前面加上增加临时列,后面加上删除临时列的代码,您自己搞定(临时列相当于您文件中的[Note]列)。


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

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

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


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

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

我是这样做的,基本可以了: 帮看看有没有不妥之处
for i as integer = 1 to currenttable.count -1
    if currenttable(i,"日期") = currenttable(i-1,"日期") and _
        currenttable(i,"凭证号") = currenttable(i-1,"凭证号")  and _
        currenttable(i,"借方金额") = currenttable(i-1,"贷方金额") or _
        currenttable(i,"日期") = currenttable(i-1,"日期") and _
        currenttable(i,"凭证号") = currenttable(i-1,"凭证号")  and _
        currenttable(i,"贷方金额") = currenttable(i-1,"借方金额")           
           
            currenttable(i,"临时列") = "将被筛选掉")         
            currenttable(i-1,"临时列") = "将被筛选掉")

    end if
next
Tables("帐簿").Filter = "[临时列] = '' "          ‘谢谢程版提示···
还有更好的办法吗?

[此贴子已经被作者于2010-4-1 10:49:25编辑过]


效率似乎太低了。


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