易表在线答疑技术与交流用户社区 → [求助]不包含条件问题


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

主题:[求助]不包含条件问题

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


加好友 发短信
等级:新手上路 帖子:3 积分:0 威望:0 精华:0 注册:2011/5/21 8:48:00
[求助]不包含条件问题  发帖心情 Post By:2011/5/28 10:33:00 [只看该作者]

请问各位大侠!
在条件公式中包含用Instr,不包含用哪个函数?

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


加好友 发短信
等级:超级版主 帖子:16190 积分:125850 威望:1 精华:0 注册:2006/8/12 12:29:00
  发帖心情 Post By:2011/5/28 11:41:00 [只看该作者]

没有这样的函数

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


加好友 发短信
等级:超级版主 帖子:16190 积分:125850 威望:1 精华:0 注册:2006/8/12 12:29:00
  发帖心情 Post By:2011/5/28 12:06:00 [只看该作者]

变通吧?
egd文件下载

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


加好友 发短信
等级:论坛游民 帖子:95 积分:398 威望:0 精华:0 注册:2010/9/15 12:10:00
  发帖心情 Post By:2011/5/28 23:27:00 [只看该作者]

  因为对有些函数不熟悉,用了20分钟时间解剖wjq1072老师3楼的的设计思路,现将体会写出来,如果正确,大家分享,如果有误,还望wjq1072老师再指正!
  1、先建立一个%A%变量,公式设置为:ListFor("表1","第一列",1),功能是:根据"表1"的"第一列"内容生成列表项目,排除所有重复内容。有了这个设置,就能在窗口的变量录入处显示出"第一列"的所有不重复内容,便于选择不包含的内容。注意,虽然用了ListFor("表1","第一列",1)公式,但该变量的属性设置是字符型的(这一点,感到很疑惑?原来变量还可以这样设置,高!),要是选择为表达式,则不会在变量选择窗口中出现列表项目,必须手工填写。
  2、设计一个窗口,在其中插入%A%变量,并设计一个筛选按钮,公式设计为:AddCol(GridName,"k",3, False ) And EvalFor(GridName,"k","Instr([%A%],[第一列]) > -1") And FilterFor("k","=", 0,2) And DeleteCol(GridName,"k")。
  AddCol(GridName,"k",3, False ) ,功能是:在当前表增加一列,列名为"k",列属性是逻辑型(3),并隐藏列( False )。
  EvalFor(GridName,"k","Instr([%A%],[第一列]) > -1"),功能是:对当前表的"k"列重算付值,条件是:所选择的%A%变量值在[第一列]若存在,则"k"列内容为真,以√标出,其他"k"列的内容此时显示为空格未选中状态。 (关于-1和0的含义,说实话,本人有时也糊涂,应该是-1为真,0为假,对吗?)。
  关于Instr([%A%],[第一列]) ,功能是:返回%A%变量字符在[第一列]字符中出现的位置, 也就是判断%A%的内容在[第一列]是否存在,若存在,则用√付值。
  FilterFor("k","=", 0,2),在"k"列筛选=O的行,只满足本次筛选。 "k"列=0的行,即没有用√标出的行,当然是不包含%A%变量值的行。
  DeleteCol(GridName,"k"),功能是:删除"k"列。
  在上述设计中,因为"k"列是隐藏的,所以增加列、重算列、列筛选、列删除等一系列操作,都是不可见的。如果将AddCol(GridName,"k",3, False )公式中的False换成True,即"k"列是可见的,则你会看到增加列、重算列、列筛选、列删除等一系列操作。我认为这是wjq1072 老师设计的高明之处,既完成了一系列操作,又不在表中留任何痕迹,不需要在表数据中留下多余的列!
  关于字符型变量可以用公式的问题,以及逻辑列-1和0的用法,如果wjq1072 老师有时间,烦请给个简单易懂的解释,谢谢。
  再罗嗦一句,多年来,靠解剖论坛的一些设计思路,我的易表水平提高不少,我认为这是一种很好的学习方法,先自己顶一下。因为不同的行业,在使用易表中会有不同的功能需求,这些需求,在你自己的职业范围内,可能很难遇到和想到,所以也就不会考虑去实现这些功能。相反,通过解剖别人的设计,会达到开拓思路的效果,并进一步熟悉一些函数的用法,这比单纯看帮助文件要有意思得多。

  


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


加好友 发短信
等级:超级版主 帖子:16190 积分:125850 威望:1 精华:0 注册:2006/8/12 12:29:00
  发帖心情 Post By:2011/5/30 12:05:00 [只看该作者]

其实可以使用隐藏行函数与“包含”结合使用就可以变通实现“不包含”!
HideRowsFor("第一列","Instr",[%A%],2)

 回到顶部