Foxtable(狐表)用户栏目专家坐堂 → 复杂的筛选功能


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

主题:复杂的筛选功能

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


加好友 发短信
等级:九尾狐 帖子:2701 积分:17999 威望:0 精华:0 注册:2013/4/9 10:41:00
复杂的筛选功能  发帖心情 Post By:2017/9/7 17:13:00 [显示全部帖子]

如果项目流程相同的行没有一个已完成,这显示项目名称相同的所有行,然后在筛选出日期列有日期的行
相当于筛选出 项目流程 列内,相同的行 没有已完成 再对应项目名称所有的行,再筛选出 计划_开始日期列有日期的行。
换的理解就是,筛选出项目流程相同的是否有一行的状态列有已完成,把没有意见完成的相同项目名称相同的行,且日期列有日期的行筛选出来。
比如 项目流程列有很多相同的,如:项目流程a 项目流程a 项目流程a 项目流程b 项目流程b 项目流程b 项目流程c 项目流程c 项目流程c 先检查这些项目流程列 相同的再状态列有没 已完成的,比如项目流程a 相同的行 再状态列有一行是已经完成就不筛选,(或者不管)继续看项目流程b,如果项目流程b相同在状态列没有一个已完成,那么筛选出项目流程行所有相同的 且日期列有日期的。


其实这个确实很麻烦,是想筛选出项目名称下的项目流程是否没个都已经完成,如果完成不管。如果项目流程相同的没有一个已完成,则显示出同行 项目名称相同的所有行,再这里已经筛选的里面筛选出 计划_开始日期列 有日期的行,非常的麻烦,不知道能不能实现。

以这个为例,项目A的流程2 流程3在状态别都有已完成,就不管他,
再看项目B的流程1和流程2,流程1的状态有已完成,但是流程2的状态列没有已完成,则筛选出项目B所有在计划_开始有日期的行,可以这样筛选吗?后面的都这样筛选。确实太复杂了,感谢 感谢 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170907170946.png
图片点击可在新窗口打开查看

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

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


加好友 发短信
等级:九尾狐 帖子:2701 积分:17999 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2017/9/8 11:18:00 [显示全部帖子]

可以筛选出 项目流程 列 相同的行的状态列没有已完成的行吗?
比如项目流程列 所有流程2有已完成就不显示,如果没有就显示 所有的流程2 相同的行,感谢 感谢 
[此贴子已经被作者于2017/9/8 11:18:19编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2701 积分:17999 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2017/9/8 14:37:00 [显示全部帖子]

为什么还是排除不了 状态列 对于已完成,同时和 项目流程内容相同的行呢, 感谢 感谢 

Dim t As Table = Tables("计划表")
Dim ls  = t.DataTable.GetValues("项目名称|项目流程", "状态 <> '已完成'")
Dim str As String = "'',"
For Each ary() As String In ls
    str &= "'" & ary(0) + ary(1) & "',"
Next
t.filter = "项目名称+项目流程 in (" & str.trim(",") & ")"


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


加好友 发短信
等级:九尾狐 帖子:2701 积分:17999 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2017/9/9 0:24:00 [显示全部帖子]

  其实思路很简单,检查项目流程是不是每个都完成了,完成了就不筛选,如果没有完成,就要筛选出这个项目流程的整个项目名称,在这个的基础上筛选有日期的。
就好比A(项目名称) 下面有123(项目流程),如果不管123 的任何有一个没有完成(已完成),都要显示出整个 项目名称,这个的基础上筛选出有时间的行。

所以 第一个方框有已完成(项目流程相同的行)不管(不筛选),第二个框相同,三个也是,项目流程相同的都有 已完成,
但是 第四框(项目流程相同的行)没有已经 已完成 ,那么 显示出项目名称相同的,再这个的基础上显示有时间的行,
那么 没有 已完成的框  是 4、5、6、7的框没有已完成,他们分别相同的 项目名称列是 项目B 课名A  ,再在已经筛选了的筛选有时间的 行
所以要筛选的就是第8、11、14、19、23、
虽然8行的方框有已完成,但是 项目B 流程2 没有完成,就要把相同的项目名称一起筛选出,在筛选有时间的行。


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170909000306.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2017/9/9 0:25:14编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2701 积分:17999 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2017/9/9 12:30:00 [显示全部帖子]

这个是什么原因呀?感谢感谢  

.NET Framework 版本:2.0.50727.8669
Foxtable 版本:2017.6.12.1
错误所在事件:
详细错误信息:
无法在 System.Boolean 和 System.String 上执行“And”操作。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:筛选.table



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


加好友 发短信
等级:九尾狐 帖子:2701 积分:17999 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2017/9/9 14:31:00 [显示全部帖子]

谢谢 谢谢 重要搞好了!!

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


加好友 发短信
等级:九尾狐 帖子:2701 积分:17999 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2017/9/12 23:31:00 [显示全部帖子]

感谢 可以了 我问问 为什么点击按钮后, 如果只输入了计划_开始日期和 计划结束日期 就加载不了时间,是改那里啊 感谢 感谢 


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


加好友 发短信
等级:九尾狐 帖子:2701 积分:17999 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2017/9/14 0:31:00 [显示全部帖子]



如果在ComboBox1,选择工作, 选择RadioButton1(已完成)ComboBox2 在点击下选择的时候只显示,工作, 项目名称的每个项目流程完成了的。
如果点击RadioButton1(已完成) ,其实就是点击ComboBox2的下拉,下拉清单只显示出ComboBox1范围的 项目名称列的项目都完成了的项目(判断项目名称是否完成判断是项目流程相同是不是在状态列都有已完成)的有日期的行,
如果RadioButton2(全部),则ComboBox2 在点击下拉选择的时候只显示RadioButton2范围类的所有项目名称
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:筛选.table


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170914002753.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2017/9/14 0:31:59编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2701 积分:17999 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2017/9/21 21:45:00 [显示全部帖子]

能看看这个吗?为什么 红色代码不是黑色代码相反筛选的呢?感谢 感谢 
红色代码筛选出 项目名称|项目流程,状态 都有 已完成   且有计划_开始日期 已经输入的行。
比如项目名称的每个项目流程 都已完成,在筛选出计划_开始日期 已输入的行,感谢 感谢 


Dim t As Table = Tables("计划表")
Dim ls  = t.DataTable.GetValues("项目名称|项目流程", "状态 = '已完成'")
Dim str As String = "'',"
For Each ary() As String In ls
    str &= "'" & ary(0) + ary(1) & "',"
Next
t.filter = "计划_开始日期 is not null and (项目名称+项目流程) not in (" & str.trim(",") & ")"

Dim t As Table = Tables("计划表")
Dim ls  = t.DataTable.GetValues("项目名称|项目流程", "状态 <> '已完成'")
Dim str As String = "'',"
For Each ary() As String In ls
    str &= "'" & ary(0) + ary(1) & "',"
Next
t.filter = "计划_开始日期 is not null and (项目名称+项目流程) not in (" & str.trim(",") & ")"

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


加好友 发短信
等级:九尾狐 帖子:2701 积分:17999 威望:0 精华:0 注册:2013/4/9 10:41:00
  发帖心情 Post By:2017/9/21 22:31:00 [显示全部帖子]

还是没有把 项目名称 包含每个项目有已完成的 行筛选出来呢 感谢 感谢 


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