InfoPath Tip: Working with radio buttons and check boxes

Indeed, working with InfoPath is easy but sometimes some tips come in handy, specially when you are short on time.

We will see how you can control different sections in a form using radio buttons. Consider this scenario. You have sections in a form. Each section opens up by clicking a check box. There are radio options in the form, option 1 and option 2. When user selects option 1, checkbox 1 should be checked and section 1 should open. When user selects option 2, checkbox 2 should be checked and section 2 should open. Similarly, when user selects option 2, checkbox 1 should be unchecked and section 1 should hide. When user selects option 1, checkbox 2 should be unchecked and section 2 should hide. Fair enough! It seems easy but there is a small catch. To check a checkbox, you set its value to "True" or "1". To uncheck it, you set its value to "False" or "0". Does this work? No. To uncheck a checkbox, you should set its value to "" (blank). Setting it to "False" will not give error but desired result will not be produced. The checkbox will not be unchecked and hence related section will not hide. Also, to set a value to "True", simply writing "True" in the value will not work. You should use boolean() function. For example, boolean("True") or boolean("False"). Another interesting thing is, simply typing this formula in the value box will not work. InfoPath will treat it as a text. InfoPath will put single quotes around it and consider it text. Proper way is to use designer.

1. This is how form with controls will look like:


Fig 1: Form

2. Add conditional formatting to Section 1 to hide it when Checkbox 1 is checked.



Fig 2: Conditional formatting for Section 1

3. Add conditional formatting to Section 2 to hide it when Checkbox 2 is checked.

4. Add rule to Option 1. By default, the value of Option button 1 is "1" and value of option button 2 is "2". Name rule "Open Section1" and set condition:



Fig 3: Set condition for Rule "Open Section1"

5. After setting the condition, click "Add Action" button to add action. In the "Field", select "Checkbox1" then click the "fx" button to add formula.



Fig 4: Add Action

6. Use "Insert Function" button to add "boolean" function or write it directly in the formula box. Click "Verify Formula" button to verify the formula and then click "OK".



Fig 5: Add Formula

7. You need to add three more rules. Rules are shared between both option buttons. Rules you set for any of the option buttons work for both the buttons. Add second rule "Close Section 2". Set following condition:



Fig 6: Set condition for rule "Close Section 2"

Add action for this rule. Select "Checkbox1" in "Field" and leave the value blank. This will uncheck the "Checkbox1".

8. Add third rule "Open Section 2" to open section 2. Set condition: Options is equal to "2" and add action: "Checkbox2" has value "boolean("True")". Use technique described above to add formula. Remember, typing formula manually will not set the boolean value and will be considered as plain text by InfoPath.

9. Add fourth rule "Close Section 1". Add following condition:



Fig 7: Set condition for rule "Close Section 1"

Add following action:



Fig 8: Add action

Select "Checkbox1" in "Field" and leave value blank. This will uncheck the "Checkbox1". Remember sections are bound with these check boxes. Checking Checkbox1 will show section 1 and unchecking it will hide section 1. Similarly, checking Checkbox2 will show section 2 and unchecking it will hide section 2.

That's it. The tip, in a nutshell, was that you should set the value of the checkbox to "blank" to uncheck it. Setting it to "False" will not uncheck it.