Foxtable(狐表)用户栏目专家坐堂 → 关于自动清除


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

主题:关于自动清除

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


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
关于自动清除  发帖心情 Post By:2015/3/24 10:43:00 [只看该作者]

老师,我的项目需要几项目处理,请指导帮助

 

1、我的每张表都有一逻辑列“选择行”,然后有个窗口对表的内容进行筛选,菜单中有按钮“全选”“全销”,我要求,如果我通过筛选后显示的数据记录,点按钮“全选”或“全销”按钮,则“选择行”列应当只是筛选出来的记录进行变化,而不是所有的记录都全部勾上或销除。现在是无论是否筛选,这两个按钮都是操作全部记录。

2、选择行的状态我要求无论是谁进行了操作,当他退出后,选择行的状态全部变为未勾选的状态。

 

请问老师,上面的功能怎样实现呢?谢谢老师


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


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

看一下:

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

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

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

 

正如帮助所言,对筛选出的行进行操作,那么就遍历Table就行,例如选择所有行。

 

For Each r As Row in Tables("订单").Rows
    r("选择行
"
) = True
Next

 

 

你要撤销勾选:

 

 

For Each r As Row in Tables("订单").Rows
    r("选择行
"
) = False
Next

 

这个选择行最好用表达式列,这样不占用存储空间,退出的时候,也不会保存状态,提醒:表达式列并非一定要设置表达式,没有设置表达式的表达式列,一样可以输入数据,只是不能存储


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


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2015/3/24 11:25:00 [只看该作者]

以下是引用狐狸爸爸在2015/3/24 10:50:00的发言:

看一下:

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

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

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

 

正如帮助所言,对筛选出的行进行操作,那么就遍历Table就行,例如选择所有行。

 

For Each r As Row in Tables("订单").Rows
    r("选择行
"
) = True
Next

 

 

你要撤销勾选:

 

 

For Each r As Row in Tables("订单").Rows
    r("选择行
"
) = False
Next

 

这个选择行最好用表达式列,这样不占用存储空间,退出的时候,也不会保存状态,提醒:表达式列并非一定要设置表达式,没有设置表达式的表达式列,一样可以输入数据,只是不能存储

老师,我要达到的目的就是当筛选后,点击“全选”时,点选择中的就只是筛选出来的行,如果没有筛选出来的行,则不会被选择。

[此贴子已经被作者于2015/3/24 11:29:54编辑过]

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


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

呵呵,我给的代码没有错,全选筛选出的行的代码就是:
 
For Each r As Row in Tables("表名").Rows
    r("选择行") = True
Next
 


 


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


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2015/3/24 11:42:00 [只看该作者]

以下是引用狐狸爸爸在2015/3/24 11:31:00的发言:

呵呵,我给的代码没有错,全选筛选出的行的代码就是:
 
For Each r As Row in Tables("表名").Rows
    r("选择行") = True
Next
 


 

但这个“全选”“全销”按钮是在菜单里的,适用全部表,并不是只定哪个表可以操作


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


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2015/3/24 11:46:00 [只看该作者]

以前用的代码是:CurrentTable.DataTable.replacefor("XZH",True,"")

但它不能按筛选的结果选中,而是无论是否筛选,它都全选


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


加好友 发短信
等级:版主 帖子:1693 积分:12129 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2015/3/24 12:01:00 [只看该作者]

那你可以套用狐爸的代码,改一下啊

 

For Each r As Row in CurrentTable.Rows
    r("选择行
"
) = False
Next

 

 

虽然用CurrentTable不太严谨,但在特殊情况下还是能用

别忘了判断一下 列是否存在

 


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


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

以下是引用爱相随在2015/3/24 11:46:00的发言:

以前用的代码是:CurrentTable.DataTable.replacefor("XZH",True,"")

但它不能按筛选的结果选中,而是无论是否筛选,它都全选

 

呵呵,提问的时候,一开始就贴出你按钮的代码并说明问题,会更快捷地得到帮助,不要只说我不行,却不提供代码

 

改为:

 

Tables("表名").DataTable.replacefor("XZH",True,Tables("表名").Filter)

 

Table为啥只显示部分行,因为筛选了,为什么筛选,因为设置了他的Filter属性。

 

记得回头看一下我贴给你的帮助,知道Table和dataTable的区别,这很重要。

 

 


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


加好友 发短信
等级:四尾狐 帖子:932 积分:6531 威望:0 精华:0 注册:2014/6/25 10:48:00
  发帖心情 Post By:2015/3/24 12:17:00 [只看该作者]

谢谢老师,就是这个效果!!!


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


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

不客气,还有,你应该知道: 二楼的方法也是可以的。

建议看一下:

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=65606

 

[此贴子已经被作者于2015/3/24 12:21:18编辑过]

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