Can we write two logic together

Hi Team,

Can we write two logic together in constraint column?

Q105 :-

    • Condition - not(${Q103} =3 and . !=7) - Error Msg "If Sex code is 3 than Marital Status code should be 7 (NOT APPLICABLE). Check the Sex of respondent".
    • Condition - (${Q104} <=3 and . = 5) or ${Q104} > 3 - Error Msg " If Age is less then or equal to three than Marital Status code should be 5 (Never Married). Check the Age of the respondent."

I am enclosing the xlsx form and marked my query question in Yellow colour.Anil-Sample07-export.xlsx (18.8 KB)

Thanks & regards,

Anil

Hi @AnilRawat
of course it's possible even in the doc you can find some simple expressions with and https://docs.getodk.org/form-logic/
If you need something more complex, maybe the form I attached in this post Constraint the answers based on previous answer - #3 by Grzesiek2010

You just need to remember than constraints are not evaluated if the response is left blank, so if in such a column you check answers from previous questions the current one also must be answered.I don't fully understand why and I reported that long time ago https://github.com/getodk/javarosa/issues/327

Hi Grzesiek,

Thanks for your response.

Can you please do me a favour.

I have written a command against the Q105. Can you please that command. It is not working. Only one command is working other one is not.

I would like to request you please make a correction in excel sheet if possible at your end.

Thanks for your support and guidance.

Thanks & regards,

Anil

According to your description:

If Sex code is 3 than Marital Status code should be 7 (NOT APPLICABLE). Check the Sex of respondent. If Age is less then or equal to three than Marital Status code should be 5 (Never Married). Check the Age of respondent.

The expression would be (${Q103}!=’3’ or . =’7’ ) and (${Q104}>3 or . =’5’). Please try it out and let me know.

1 Like

Hi Grzesiek,

Sure, I will check this command and get back to you soon.

Thanks for your support and guidance.

Thanks & regards,

Anil

Dear Grzesiek,

I have checked the below command second command is working but the first one is not working. i have marked command in bold letter.

  1. If Sex code is 3 than Marital Status code should be 7 (NOT APPLICABLE). Check the Sex of the respondent.

  2. If Age is less then or equal to three than Marital Status code should be 5 (Never Married). Check the Age of the respondent.

(${Q103}!=’3’ or . =’7’ ) and (${Q104}>3 or . =’5’).

Please suggest.

Thanks & regards,

Anil

Dear Grzesiek,

I have checked the below command second command is working but the first one is not working. i have marked command in bold letter.

If Sex code is 3 than Marital Status code should be 7 (NOT APPLICABLE). Check the Sex of the respondent.

not(${Q103} =3 and . !=7)

If Age is less then or equal to three than Marital Status code should be 5 (Never Married). Check the Age of the respondent.

((${Q104} <=3 and . = 5) or ${Q104} > 3)

Individual the above commands are working but together second is working but the first one is not working.

Please suggest.

Thanks & regards,

Please attach you form with that expression I need to check if you use it correctly.

Dear Grzesiek,

Thanks for your response.

Please find enclosed the xlsx form. I have marked that question in yellow colour.

Thanks for your support and guidance.

Thanks & regards,

AnilAnil-Sample07-export.xlsx (18.9 KB)

So it's not the expression I prepared for you, you have:
not(${Q103} =3 and . !=7) and ((${Q104} <=3 and . = 5) or ${Q104} > 3)
but mine was:
(${Q103}!=’3’ or . =’7’ ) and (${Q104}>3 or . =’5’)

why do you use that not?

Dear Grzesiek,

I have used this as well this also not working. I have written in my previous mail as well. First Bold command is not working.

(${Q103}!=’3’ or . =’7’ ) and (${Q104}>3 or . =’5’)

  1. If Sex code is 3 than Marital Status code should be 7 (NOT APPLICABLE). Check the Sex of the respondent.

  2. If Age is less then or equal to three than Marital Status code should be 5 (Never Married). Check the Age of the respondent.

Thanks & regards,

Anil

I was on leave and couldn't respond. Were you able to fix your problem or you still need help?

($ {Q103}! = '3' hoặc. = '7') Q105 CHOICE (seclect not 7)