You can use the following function types in your fields' display text or in the values of your skip or validation logic: 


See here for more functions and expressions you can use. 


Tip: if your calculation does not seem to work correctly, try adding white space around the operator, e.g. instead of "=($field_1+5)" use "=($field_1 + 5)"


Select functions


FunctionDescriptionExample
selected(string list, string value)Returns true if the given value was selected from the given multi-select list, otherwise returns false.
=selected($select_symptom, "cough")
selected-at(string list, number index)Returns the value of the item at the 0-based index of the given list or returns an empty string if the item does not exist (including for negative index and index 0).
=selected-at($select_symptom, 1) returns the second selected item in the list 
count-selected(list)Returns the number of items selected in the given list.
=count-selected($select_symptom) 



Example

Add a select many field for selecting all relevant symptoms and use the select functions above.

 

Use the Preview to view how it will display on the handset:






Repeat functions


FunctionDescriptionExample
repeat-index()Returns the iteration index of the current repeating group.See example below
indexed-repeat()Indexed-repeat is a function that allows you to get information from a specific iteration of a repeat group and use in another area of the form.=indexed-repeat($field, $group, repeat-index())
See example here.

 

Example

After entering the number of household members that live in a household, a repeating group is used to capture the details of each member. The fieldworker needs to keep track of which household member they are currently capturing information for. 

  • In the display text type '=', then select repeat-index()



  • Once the household member's name is captured you can refer to the person by name to capture their other details.  



  • On the device it will display as follows for the second member:






Set functions


FunctionDescriptionExample
count(list)Returns the number of objects in the argument set=count($repeat_group)
Returns the number of repeats in a group
count-non-empty(list)Returns the number of non-empty objects in the argument set.
position(.. )Returns the current iteration within a repeating group, similar to the =repeat-index() function.See example above

 


Example

The fieldworker must make sure that they have enumerated all members of a household. Display how many members they have captured by counting the number of times they have repeated the member details group.

  • The total number of household members has been captured in the $HH_Number field.
  • $Member_name is a required field in the member details group.
  • In the display text type '=', then select count(), then enter $Member_name as the argument.



  • After editing, the function and field references will be highlighted as follows:




Geographic functions


FunctionDescriptionExample
distance(location_fields)Returns the distance in meters, of geopoints, in the sequence provided by the points in the parameter. 

Note: It takes into account the circumference of the Earth around the equator and does not take altitude into account.
=distance($location1 | $location2)

area(location_fields)Returns the calculated area in m2 of a set of geopoints. 

Note: It takes into account the circumference of the Earth around the equator but does not take altitude into account.
=area($location1 | $location2 | $location3)

 


Example

Add location fields for selecting capturing coordinates and use the geographic functions above.



Use the Preview to view how it will display on the handset: