Warning |
---|
WARNING: These are advanced configurationsSome of these appearances must be configured by advanced modification of forms. You can request better form builder support for these formatting options by reaching out to support@dimagi.com. All supported formatting options are listed on this page. If you use a formatting option found in XLSForms, we cannot guarantee compatibility with CommCare! |
...
You can make any text question on CommCare into an address lookup with geocoding validation. For more information see our guide on Address Geocoding in Web Apps.
Expand |
---|
SummaryThe address question type was born out of the need to quickly and accurately input address data into CommCare. It is a question type that provides an address lookup, which lets users select a complete address. Other questions may be configured to "subscribe" to the address question. When an address is selected, the question will "broadcast" the address's individual fields to subscribing questions, which will then be automatically filled out. In this way, one can build a form where a user selects an address and then the address's city, postal code, etc. are automatically populated into other questions. The address question is available in Web Apps and App Preview, but not on CommCare Mobile. DemonstrationHow to Enable the Address Question Type in a Form
Go to the address-subpart-receiving questions and under Advanced / Appearance Attribute for each of those, enter "receive-<topic>-<field>", where "<topic>" matches the address question topic name from the previous step, and "<field>" is the subpart of the address to be received by each question (e.g. "city", "zipcode", etc). The full list of available fields appears below.
Address Question Type ComponentsThe address question is not a formal question type, but an appearance on a text question. When the appearance is set to 'address' on a text (by entering 'address' into the Appearance Attribute under the Advanced question fields as demonstrated above), the question appears as an address search bar. BroadcastsBroadcasts will have an appearance tag of 'broadcast-<topic>' where 'topic' is a reference name that ties broadcasts to receivers (e.g. 'broadcast-hello' is tied to 'receive-hello-street'). Please note that an appearance can have multiple appearance types, so to have an address question broadcast its address components to receivers, the appearance becomes 'address broadcast-<topic>.' ReceiversReceivers will have an appearance type in the format 'receive-<topic>-<field>' where <topic> corresponds to the same topic of the broadcast. FieldsFields will map to the mapbox geocoder API in one of the following ways:
Usage DetailsReceiver Question TypesTextThe text question type is preferred for most of the components that have wide range of options such as 'street', 'zipcode', 'city'. If you have a defined set of options like 'states', consider the Multiple Choice and Multiple Choice Combobox. NumericNumeric question types are supported as receivers, but they are less ideal than text questions. Although they seem reasonable for zipcode, they will strip out the leading '0' (e.g. '02139' becomes '2139'). A text question with validation is better. Multiple Choice and Multiple Choice ComboboxThese questions are ideal when you want to limit the set of options, e.g. 'states'. When a broadcast is sent to a receiver, an option in the multiple choice is selected only if it matches the field it subscribes to. If there is no match, it registers a NO ANSWER as an answer. This means that if there is a previously selected answer but it receives a field that does not match its options, it will clear out the previous answer. Special Combobox Feature: Tiered FallbacksIt is possible to receive multiple fields and select the first match in the multiple choice combobox options. For example, if you wanted to only match on states 'CA', 'NY' and 'MA', but if none of those states match the address being received you want to fallback to match on countries 'United States of America', 'Puerto Rico', you would use 'receive-<topic>-<field1>||<field2>||<fieldn>'. An option will be selected when the first match is encountered going down the list of fields. Repeat GroupsIf an address group is used inside of a repeat group, the selected address's fields will only broadcast within that same group. SettingsIn "Project Settings", on the "Basic" page, is an option to set the project's default location: This default location is used to set the proximity parameter, which influences search results when there are many, or ambiguous, results. For best results, select a location somewhere in your project's deployment area. |
...
Collapsible Groups
In Web Apps, groups can be configured to show a bordered box with a header. Clicking on the header will then show or hide the questions inside the group:
...
When the group is opened, the warning icon will disappear from the header and be visible on the question with the error, along with the error message:
...
How to do it
In the Advanced section of the Question Properties section, you'll mark the group as collapsible and whether you want it to be open or closed when the form loads.
If you wish to have the group open when the form is first opened, set the Appearance Attribute to: group-collapse collapse-open
...
We are also able to use alignment values to align the button toggle. When using alignment appearance attributes text-align-center and text-align-right, the element position will adjust based on the screen width or other entry fields, except for labels, for better custom positioning.
Combined Multiple Choice Using a Question List Group
...
The first question will define the headers (so you will not be able to actually record data for it). For that first question, in the Advanced section of the Question Properties, set the field Appearance Attribute to:
Anchor | ||||
---|---|---|---|---|
|
...
This dropdown also allows you to filter the list by typing in a text box. When possible, it will also try to prevent users from entering text that is not part of a valid answer.
...
How to do it
In the Advanced section of the Question Properties, set the field Appearance Attribute to:
Anchor | ||||
---|---|---|---|---|
|
...
There are 3 different variations of a combo box available, which use different rules for how they filter answer choices in the dropdown menu based upon the text that the user has entered:
Standard - This option is recommended for if your question has simple, mostly one-word answer choices. The filter matches on prefixes, i.e. entering the text "ap" would show "Apple" and "Apply", but not "Cape"
In the Advanced section of the Question Properties, set the field Appearance Attribute to:
comboboxAnchor combobox combobox
Multiple Words - This option is recommended for if your question has more complicated, mostly multiple-word answer choices. The filter checks for matches on individual words that appear anywhere within the entered text. On Web Apps, the fuzzy matching approach typically yields better results than Multiple Words.
In the Advanced section of the Question Properties, set the field Appearance Attribute to:
combobox multiwordAnchor combobox multiword combobox multiword
Fuzzy Matching - This option is recommended for if your question has more complicated answer choices that you expect users might misspell or mistype. The filter is more permissive and will show answer choices that are deemed similar to the entered text.
In the Advanced section of the Question Properties, set the field Appearance Attribute to:
combobox fuzzyAnchor combobox fuzzy combobox fuzzy Technical note: "fuzziness" is largely based on edit distance, which calculates how similar the search string is to the options. CommCare also does some special case handling, in particular to handle searches that match the beginning of one or more of the options (as when the user has started typing out a long option).
...
This is similar the the single select dropdown above, but for a multiple select (checkbox) question type.
...
How to do it
In the Advanced section of the Question Properties, set the field Appearance Attribute to: minimal
...
Time questions display in 24-hour format by default, but they can be change to a 12-hour format with an AM/PM option:
...
How to do it
In the Advanced section of the Question Properties, set the field Appearance Attribute to: 12-hour
...
For all questions that are not Repeat Groups:
In the Advanced section of the Question Properties, set the field Appearance Attribute to: "n"-per-row where "n" is any integer (i.e. 3-per-row). This needs to be updated for each question you wish to include in a row with a "tiled" format.
...