I have 4 variables/questions of type integer in my .xlsx file. Let's call the variables A, B, C, D. I use XLSForm then upload the form to ODKAggregate.
I am trying to use relevance conditions to display a question only if A=B and also C=D. I have tried all of the approaches below but all of them have produced results that are equivalent to A=B or C=D. In other words, while I want to see the question only if both conditions are met, I am seeing the question if EITHER condition is met. This is equivalent to providing the Boolean OR rather than the Boolea AND.
1: ${A}= ${B} and ${C} = ${D}
2: (${A}= ${B} and ${C} = ${D})
3: (${A} = ${B}) and (${C} = ${D})
To re-articulate, I am using the below as a relevance criterion where I
have integer variables named A, B, C, and D. I want to see the question for
variable E in all cases EXCEPT where A = B and C = D, i.e. when A=B and
C=D, I do not want to see E. I am using 'and' with two NOT EQUAL statements
but none of the below 5 solutions (expanded since last message) works.
Instead all of the below solutions omit E in ANY case where A!=B, rather
than only in the case when A!=B AND C!=D.
1: ${A} != ${B} and ${C} != ${D}
2: (${A} != ${B} and ${C} != ${D})
3: (${A} != ${B}) and (${C} != ${D})
4: (${A} != ${B} and ${C} != ${D})
5: ((${A} != ${B}) and (${C} != ${D}))
···
On Monday, January 23, 2017 at 10:42:48 PM UTC-5, Brett Gall wrote:
I have 4 variables/questions of type integer in my .xlsx file. Let's call
the variables A, B, C, D. I use XLSForm then upload the form to
ODKAggregate.
I am trying to use relevance conditions to display a question only if A=B
and also C=D. I have tried all of the approaches below but all of them have
produced results that are equivalent to A=B or C=D. In other words, while I
want to see the question only if both conditions are met, I am seeing the
question if EITHER condition is met. This is equivalent to providing the
Boolean OR rather than the Boolea AND.
1: ${A}= ${B} and ${C} = ${D}
2: (${A}= ${B} and ${C} = ${D})
3: (${A} = ${B}) and (${C} = ${D})
I found a solution via the use of not(). Why this works and != doesn't is a
mystery. The below evaluates the whole compound logic rather than the first
term of the formula:
not(${A} = ${B} and ${C} = ${D})
···
On Wednesday, January 25, 2017 at 4:49:00 PM UTC-5, Brett Gall wrote:
To re-articulate, I am using the below as a relevance criterion where I
have integer variables named A, B, C, and D. I want to see the question for
variable E in all cases EXCEPT where A = B and C = D, i.e. when A=B and
C=D, I do not want to see E. I am using 'and' with two NOT EQUAL statements
but none of the below 5 solutions (expanded since last message) works.
Instead all of the below solutions omit E in ANY case where A!=B, rather
than only in the case when A!=B AND C!=D.
1: ${A} != ${B} and ${C} != ${D}
2: (${A} != ${B} and ${C} != ${D})
3: (${A} != ${B}) and (${C} != ${D})
4: (${A} != ${B} and ${C} != ${D})
5: ((${A} != ${B}) and (${C} != ${D}))
On Monday, January 23, 2017 at 10:42:48 PM UTC-5, Brett Gall wrote:
I have 4 variables/questions of type integer in my .xlsx file. Let's call
the variables A, B, C, D. I use XLSForm then upload the form to
ODKAggregate.
I am trying to use relevance conditions to display a question only if A=B
and also C=D. I have tried all of the approaches below but all of them have
produced results that are equivalent to A=B or C=D. In other words, while I
want to see the question only if both conditions are met, I am seeing the
question if EITHER condition is met. This is equivalent to providing the
Boolean OR rather than the Boolea AND.
1: ${A}= ${B} and ${C} = ${D}
2: (${A}= ${B} and ${C} = ${D})
3: (${A} = ${B}) and (${C} = ${D})
Hi Brett,
The behavior you are describing is not what i would expect. Are you (or do
you need to be) accounting for nulls in this situation? Often times,
especially with non-equality checks, you need to account for the null as
well. So maybe something like:
${A} != ${B} and ${A} != null and ${B} != null
or something like that.
Otherwise I'd review the data output on the other side of test entry and
see if ${A} and ${B} are actually ending up with the values you think they
are.
Also please note, if they are within a repeat then these checks need to be
formulated a different way. The standard ${} reference format is not valid
for referencing items within repeats (neither from within the repeat nor
from outside of it).
Jason
···
On Wednesday, January 25, 2017 at 5:36:28 PM UTC-5, Brett Gall wrote:
>
> I found a solution via the use of not(). Why this works and != doesn't is
> a mystery. The below evaluates the whole compound logic rather than the
> first term of the formula:
>
> not(${A} = ${B} and ${C} = ${D})
>
> On Wednesday, January 25, 2017 at 4:49:00 PM UTC-5, Brett Gall wrote:
>
>> To re-articulate, I am using the below as a relevance criterion where I
>> have integer variables named A, B, C, and D. I want to see the question for
>> variable E in all cases EXCEPT where A = B and C = D, i.e. when A=B and
>> C=D, I do not want to see E. I am using 'and' with two NOT EQUAL statements
>> but none of the below 5 solutions (expanded since last message) works.
>> Instead all of the below solutions omit E in ANY case where A!=B, rather
>> than only in the case when A!=B AND C!=D.
>>
>> 1: ${A} != ${B} and ${C} != ${D}
>> 2: (${A} != ${B} and ${C} != ${D})
>> 3: (${A} != ${B}) and (${C} != ${D})
>> 4: (${A} != ${B} and ${C} != ${D})
>> 5: ((${A} != ${B}) and (${C} != ${D}))
>>
>>
>>
>> On Monday, January 23, 2017 at 10:42:48 PM UTC-5, Brett Gall wrote:
>>
>>> I have 4 variables/questions of type integer in my .xlsx file. Let's
>>> call the variables A, B, C, D. I use XLSForm then upload the form to
>>> ODKAggregate.
>>>
>>> I am trying to use relevance conditions to display a question only if
>>> A=B and also C=D. I have tried all of the approaches below but all of them
>>> have produced results that are equivalent to A=B or C=D. In other words,
>>> while I want to see the question only if both conditions are met, I am
>>> seeing the question if EITHER condition is met. This is equivalent to
>>> providing the Boolean OR rather than the Boolea AND.
>>>
>>> 1: ${A}= ${B} and ${C} = ${D}
>>> 2: (${A}= ${B} and ${C} = ${D})
>>> 3: (${A} = ${B}) and (${C} = ${D})
>>>
>>>
>>>