哈喽,我是办公助手小W,又到了跟大家分享办公小技巧的时候啦!
上一节咱们讲了团建的文化衫如何通过筛选条件查询相关员工信息,除了用到了判断符>、<、=之外,不知道有没有小伙伴留意到,我在讲筛选条件为不同身高员工信息里对员工身高判断时,在写筛选条件“[文化衫数量查询表_扩展表].[身高(cm)] > 160 并且 [文化衫数量查询表_扩展表].[身高(cm)] < 165”时,用了【并且】。
"并且“在Workfine中的逻辑判断是要求判定同时成立的意思,“并且”连接的表达式中有任何一个不成立,那么整个判定将不成立。
因为我们要筛选满足身高在160-165之间的,既要大于160又要小于165,需要判定同时成立才能提取数据,那如果换成了另一个逻辑判断【或者】会是什么样的结果呢?
我也去尝试了一下,结果是所有数据都被取出来了。即身高要求满足了大于160的所有数据都会被提取出来,由此就可以看出两者的区别了。
”或者“是要求判定条件中有一个成立即可。”或者“连接的表达式,有任何一个条件成立,那么整个判定就成立。
这两个逻辑判断比较简单,只要大家理清思路,就能区分出来。今天咱们主要讲的是第三个逻辑判断”括号“。()代表逻辑判断的优先级,括号内的逻辑会作为一个整体优先判断。与我们的数学算数一样,2*2+3 与2*(2+3)所得到的结果是不同的,括号内的表达式组成了一个逻辑判断的单元,整个括号内的条件会优先判断,然后再与括号外的条件做合并判断。
还是拿上一节的文化衫表单来做讲解啊,咱现在需要查询出身高160以上,或者选择文化衫款式为A款的,所有女员工信息。
按照这个文字逻辑顺序,有小伙伴可能是这么写的:[文化衫数量查询表_扩展表].[身高(cm)] >= 160 或者 [文化衫数量查询表_扩展表].[款式ABCD] = 'A' 并且 [文化衫数量查询表_扩展表].[性别] = '女'。
乍一看没毛病,到底对不对呢?咱去验证一下对不对啊!在应用端点击查询后会发现,所有的数据都被提取出来了,如下图:

从上面的数据来看,这个筛选条件先筛选了身高大于等于160的人,由于这个表中所有人身高都大于160,而且连接前后表达式的是【或者】,所以前面表达式判断满足后,整个判定就已经执行了。系统将所有身高大于等于160的数据都提取出来了,我们要怎么来将他们区别开呢?()加在哪里呢?
咱的需求中是要筛出符合条件的所有女员工的,而按照正常文字逻辑填写的筛选条件,第一个表达式就已经将所有数据提取完了,我们是不是可以将【并且】以及后面女员工的表达式与前面用()来分开呢?括号内优先执行完了再跟括号外的表达式做合并判断。
将身高≥160或者款式为A的用()括起来,优先执行筛选出这部分的员工,然后再用【并且】筛出性别为女的员工。筛选条件修改成这样([文化衫数量查询表_扩展表].[身高(cm)] >= 160 或者 [文化衫数量查询表_扩展表].[款式ABCD] = 'A') 并且 [文化衫数量查询表_扩展表].[性别] = '女'。咱们再到应用端试试:

这样查询到的就是身高160以上,或者选择文化衫款式为A款的,所有女员工啦。
最后总结一下,当表达式两端要同时满足判定时,用【并且】,只有一端满足即可完成整个判定时用【或者】,当表达式中有两个以上用【或者】连接的时候就要把它们用()括起来优先运算。
以上就是今天分享的Workfine中筛选条件关于逻辑判断的内容啦,如果你也发现了更多Workfine的使用小技巧,欢迎来跟小W分享哦!
网友评论