You are on page 1of 126

type name label

start starttime
end endtime
deviceid deviceid
subscriberid subscriberid
simserial simid
phonenumber devicephonenum

Welcome to the sample pre-load


plots form (search-and-select
variety), a sample household survey
with pre-loaded information about
each household's agricultural plots.
note intronote Please swipe forward to continue.

Do you consent to participate in this


select_one yesno consent survey? Christopher Robe
Normally, you wo
eliciting the house
complex than usu
begin group consented Sample preload module different methods
Please select how you would like to
select_one hhidentrymethod hhidentrychoice select the household ID:

select_one region hhidregion Please select the household's region.

select_one district hhiddistrict Please select the household's district.

select_one village hhidvillage Please select the household's village.


select_one hhid selectedhhid Please select the household.

begin group searchopt HH search options


select_one searchoption searchtype Search type:
text searchtext Search text:
end group searchopt
select_one hhid foundhhid Choose a matching household:
calculate hhid

calculate nplots
calculate plot1description
calculate plot1size
calculate plot2description
calculate plot2size
calculate plot3description
calculate plot3size
calculate plot4description
calculate plot4size
calculate plot5description
calculate plot5size
calculate plot6description
calculate plot6size
calculate plot7description
calculate plot7size
calculate plot8description
calculate plot8size
calculate plot9description
calculate plot9size
calculate plot10description
calculate plot10size

No pre-loaded data was found for


this household. Therefore, plot-
note nopreloadnote specific questions will be skipped.

begin group plots Plots

Please select your best-performing


plot in the most recent agricultural
select_one plot bestplot season.

I will now ask you a series of


questions about each of your $
note plotsintro {nplots} agricultural plots.
Did you cultivate your "$
{plot1description}" (size ${plot1size})
select_one yesno plot1cultivated plot in the most recent season?

Did you cultivate your "$


{plot2description}" (size ${plot2size})
select_one yesno plot2cultivated plot in the most recent season?

Did you cultivate your "$


{plot3description}" (size ${plot3size})
select_one yesno plot3cultivated plot in the most recent season?

Did you cultivate your "$


{plot4description}" (size ${plot4size})
select_one yesno plot4cultivated plot in the most recent season?

Did you cultivate your "$


{plot5description}" (size ${plot5size})
select_one yesno plot5cultivated plot in the most recent season?

Did you cultivate your "$


{plot6description}" (size ${plot6size})
select_one yesno plot6cultivated plot in the most recent season?

Did you cultivate your "$


{plot7description}" (size ${plot7size})
select_one yesno plot7cultivated plot in the most recent season?

Did you cultivate your "$


{plot8description}" (size ${plot8size})
select_one yesno plot8cultivated plot in the most recent season?

Did you cultivate your "$


{plot9description}" (size ${plot9size})
select_one yesno plot9cultivated plot in the most recent season?
Did you cultivate your "$
{plot10description}" (size $
{plot10size}) plot in the most recent
select_one yesno plot10cultivated season?
end group plots

Thank you. That concludes the


note endnote sample survey.

end group consented


hint default

Christopher Robert:
Normally, you would just have one method of
eliciting the household ID. This form is a bit more
complex than usual because it demonstrates two
different methods in a single form.

contains
appearance

ne method of
orm is a bit more
emonstrates two
m. organized

Christopher
Robert:
This shows all
regions in the .csv
fie.

Christopher Robert:
search('hhplotdetails') This shows all districts
within the chosen
region.
search('hhplotdetails', 'matches', 'regionid', ${hhidregion})
Christopher Robert:
This shows all villages within the selected district.
search('hhplotdetails', 'matches', 'districtid', ${hhiddistrict})
search('hhplotdetails', 'matches', 'villageid', ${hhidvillage}) Christopher Robert:
This shows all
households within the
selected village.
field-list organized
minimal

search('hhplotdetails', ${searchtype}, 'household', ${searchtext}, 'regionid', ${hhidregion})


Christopher Robert:
This searches the
household field for the
text entered by the user
(with the search type also
selected by the user).
Christopher Robert:
This searches the
household field for the
text entered by the user
(with the search type also
selected by the user).

organized
constraint constraint message relevance disabled required

yes
Christopher Robert:
Only show if
respondent consents. ${consent}=1

yes
Christopher Robert:
Only show selections if they
selected that option.
Otherwise, skip.

Christopher Robert:
This shows all districts yes
within the chosen
region.
${hhidentrychoice}=1 yes

ted district. ${hhidentrychoice}=1 yes


Christopher Robert:
${hhidentrychoice}=1 yes
This shows all
households within the
selected village.
${hhidentrychoice}=2 Christopher Robert:
Only show search fields if
yesthat option.
they selected
Otherwise,yes
skip.

${hhidentrychoice}=2
Christopher Robert:
This searches the
household field for the
text entered by the user
(with the search type also
selected by the user).
Christopher Robert:
This searches the
household field for the
text entered by the user
(with the search type also
selected by the user).

Christopher Robert:
Only show if the nplots field is blank
(which indicates that plot data was
not found for the current
household).

Christopher Robert:
Only show if we have pre-loaded
empty(${nplots}) data (otherwise, nplots will be
blank).

not(empty(${nplots}))

yes
Christopher
Robert:
Only ask about
plots that they
actually have.
Christopher
Robert:
Only ask about
plots that they
actually have.

${nplots} >= 1 yes

${nplots} >= 2 yes

${nplots} >= 3 yes

${nplots} >= 4 yes

${nplots} >= 5 yes

${nplots} >= 6 yes

${nplots} >= 7 yes

${nplots} >= 8 yes

${nplots} >= 9 yes


${nplots} >= 10 yes
required message read only calculation

Christopher Robe
This expression c
her Robert: household ID dep
w search fields if was selected or f
cted that option. fields can refer to
se, skip. is valid however i
household ID dep
was selected or f
fields can refer to
is valid however i

if(${hhidentrychoice}=1, ${selectedhhid}, ${foundhhid})


Christopher Robe
Pull the nplots va
pulldata('hhplotdetails', 'nplots', 'hhid_key', ${hhid}) hhplotdetails.csv
pulldata('hhplotdetails', 'plot1description', 'hhid_key', ${hhid}) the hhid_key colu
entered into the h
pulldata('hhplotdetails', 'plot1size', 'hhid_key', ${hhid})
pulldata('hhplotdetails', 'plot2description', 'hhid_key', ${hhid})
pulldata('hhplotdetails', 'plot2size', 'hhid_key', ${hhid})
pulldata('hhplotdetails', 'plot3description', 'hhid_key', ${hhid})
pulldata('hhplotdetails', 'plot3size', 'hhid_key', ${hhid})
pulldata('hhplotdetails', 'plot4description', 'hhid_key', ${hhid})
pulldata('hhplotdetails', 'plot4size', 'hhid_key', ${hhid})
pulldata('hhplotdetails', 'plot5description', 'hhid_key', ${hhid})
pulldata('hhplotdetails', 'plot5size', 'hhid_key', ${hhid})
pulldata('hhplotdetails', 'plot6description', 'hhid_key', ${hhid})
pulldata('hhplotdetails', 'plot6size', 'hhid_key', ${hhid})
pulldata('hhplotdetails', 'plot7description', 'hhid_key', ${hhid})
pulldata('hhplotdetails', 'plot7size', 'hhid_key', ${hhid})
pulldata('hhplotdetails', 'plot8description', 'hhid_key', ${hhid})
pulldata('hhplotdetails', 'plot8size', 'hhid_key', ${hhid})
pulldata('hhplotdetails', 'plot9description', 'hhid_key', ${hhid})
opher Robert:
how if the nplots field is blank pulldata('hhplotdetails', 'plot9size', 'hhid_key', ${hhid})
indicates that plot data was pulldata('hhplotdetails', 'plot10description', 'hhid_key', ${hhid})
und for the current
hold). pulldata('hhplotdetails', 'plot10size', 'hhid_key', ${hhid})

pher Robert:
how if we have pre-loaded
therwise, nplots will be
repeat_count media:image media:audio media:video

Christopher Robert:
This expression calculates the appropriate
household ID depending on whether it
was selected or found. That way, later
fields can refer to just one hhid field that
is valid however it was determined.
household ID depending on whether it
was selected or found. That way, later
fields can refer to just one hhid field that
is valid however it was determined.

Christopher Robert:
Pull the nplots value from the
hhplotdetails.csv file, for the row in which
the hhid_key column has the value
entered into the hhid field.
note
response_note publishable minimum_seconds
choice_filter
Christopher Robert:
Only show as many choices
as plots that they have.
filter <= ${nplots}
list_name value label image
yesno 1 Yes
yesno 0 No
hhidentrymethod 1 Multiple-choice selections
hhidentrymethod 2 Search region for household
searchoption contains Contains
searchoption matches Matches
searchoption startswith Starts with
searchoption endswith Ends with
region regionid region
district districtid district
village villageid village
hhid hhid_key household
plot 1 ${plot1description}
plot 2 ${plot2description}
plot 3 ${plot3description}
plot 4 ${plot4description}
plot 5 ${plot5description}
plot 6 ${plot6description}
plot 7 ${plot7description}
plot 8 ${plot8description}
plot 9 ${plot9description}
plot 10 ${plot10description}
filter

1
2
3
4
5
6
7
8
9
10
form_title form_id version
Sample Form - Preloading - Search and select samplepreloadsns 2201050208
public_key submission_url default_language
english
The survey worksheet

This worksheet specifies all of the groups, questions, and other fields in your survey form,
each in its own row. Aside from overall settings and lists of multiple-choice options,
everything about your survey form is specified in this worksheet.

For more help, see the following help topic: How do I design my form?

type name
This column specifies the type of the field or This column specifies the name of the field
group. It has to follow a pre-specified or group. Field names must be unique, and
format, and Excel's conditional formatting they cannot include any spaces or
has been used to auto-highlight rows that punctuation. Example: age
appear to have a valid type column -- so, if
you are using Excel and your row is not
automatically highlighted, re-check that you
have entered the type properly. See below
for an exhaustive list of brief examples.

Examples (scroll right for appearance styles)

text fieldname
text fieldname
integer fieldname
decimal fieldname
select_one listname fieldname

select_one listname fieldname


select_one listname fieldname

select_one listname fieldname

select_one listname fieldname

select_one listname fieldname

select_one listname fieldname

select_one listname fieldname

select_one listname fieldname

select_one listname fieldname

select_one listname fieldname


select_one listname fieldname

select_multiple listname fieldname

select_multiple listname fieldname

select_multiple listname fieldname

select_multiple listname fieldname

select_multiple listname fieldname

select_multiple listname fieldname

select_multiple listname fieldname

select_multiple listname fieldname

select_multiple listname fieldname

geopoint fieldname
geoshape fieldname
geotrace fieldname

barcode fieldname
date fieldname
date fieldname
datetime fieldname
datetime fieldname
image fieldname
image fieldname

image fieldname

image fieldname

audio fieldname
video fieldname
file fieldname

note fieldname
start fieldname
end fieldname
deviceid fieldname
subscriberid fieldname
simserial fieldname
caseid fieldname
phonenumber fieldname
comments fieldname
calculate fieldname
calculate_here fieldname
text audit fieldname
audio audit fieldname
audio audit fieldname
audio audit fieldname
begin group groupname

end group groupname
begin repeat repeatname

end repeat repeatname
begin repeat repeatname

end repeat repeatname
speed violations count fieldname
speed violations list fieldname
speed violations audit fieldname

Quick reference for relevance, constraint, and calculation expressions

Operation Operator
Addition +
Subtraction -
Multiplication *
Division div
Modulus mod
Equal =
Not equal !=
Greater-than >
>-or-equal >=
Less-than <
<-or-equal <=
Or or
And and
Not not()

Function
once(expression)
once(random())
pulldata(csvname, colname,
lookupcolname, lookupval)
string-length(field)
count-selected(field)
selected(field, value)
selected-at(field, number)

jr:choice-name(value, 'field')

concat(fieldorstring, fieldorstring, ...)


index()
count(repeatgroup)
sum(repeatedfield)
join(string, repeatedfield)
min(repeatedfield)
max(repeatedfield)
indexed-repeat(repeatedfield, repeatgroup,
index)
substr(fieldorstring, startindex, endindex)
coalesce(field1, field2)
round(field, digits)

regex(field, expression)

if(expression, valueiftrue, valueiffalse)

number(field)
int(field)
string(field)
date(string)

date-time(string)

format-date-time(field, format)

today()

now()
uuid()
version()
username()
duration()
hash(fieldorvalue, …)
linebreak()
rank-index(index, repeatedfield)

rank-value(fieldorvalue, fieldorlist)
de-duplicate(string, field)
distance-between(geopointfield1,
geopointfield2)
area(repeatedgeopointfield)
short-geopoint(geopointfield)

pow(base, exponent)
log10(fieldorvalue)
sin(fieldorvalue)
cos(fieldorvalue)
tan(fieldorvalue)
asin(fieldorvalue)
acos(fieldorvalue)
atan(fieldorvalue)
atan2(x, y)
sqrt(fieldorvalue)
exp(x)
pi()
label label:languagename
For those field types that present a user Any label:languagename column (e.g.,
interface, this column is where you put the label:tamil) may be added in order to
primary text for the question or field. You provide labels in an alternative language.
can include line-breaks in your label text by
pressing Alt+Enter on Windows or
Control+Option+Enter on a Mac.

Standard text field:


Text field which uses the numeric keypad:
Standard integer field:
Standard decimal field:
Standard multiple-choice field (allows one
selection, shown as series of radio buttons):

Multiple-choice field (allows one selection,


auto-advances to next question as soon as
an option is selected):
Multiple-choice field (allows one selection,
shown as a drop-down selector):

Multiple-choice field (allows one selection,


shown as a compact table of options):

Multiple-choice field (allows one selection,


shown as a compact table of options with
exactly three columns):

Multiple-choice field (allows one selection,


shown as a compact table of options, auto-
advances to next question as soon as an
option is selected):

Multiple-choice field (allows one selection,


shown as a compact table of options with
exactly three columns, auto-advances to
next question as soon as an option is
selected):

Multiple-choice field (allows one selection,


loads options from pre-loaded .csv file,
includes options based on a "contains"
comparison):

Multiple-choice field (allows one selection,


loads options from pre-loaded .csv file,
includes options based on a "starts with"
comparison):

Multiple-choice field (allows one selection,


loads options from pre-loaded .csv file,
includes options based on an "ends with"
comparison):

Multiple-choice field (allows one selection,


loads options from pre-loaded .csv file,
includes options based on an "exact match"
comparison):
Multiple-choice field (allows one selection,
loads options from pre-loaded .csv file,
includes options based on both a "contains"
comparison and an "exact match" filter):

Standard multiple-choice field (allows


multiple selections, shown as series of radio
buttons):

Multiple-choice field (allows multiple


selections, shown as a pop-up selector):
Multiple-choice field (allows multiple
selections, shown as a compact table of
options):

Multiple-choice field (allows multiple


selections, shown as a compact table of
options with exactly three columns):

Multiple-choice field (allows multiple


selections, loads options from pre-loaded
.csv file, includes options based on a
"contains" comparison):

Multiple-choice field (allows multiple


selections, loads options from pre-loaded
.csv file, includes options based on a "starts
with" comparison):

Multiple-choice field (allows multiple


selections, loads options from pre-loaded
.csv file, includes options based on an "ends
with" comparison):

Multiple-choice field (allows multiple


selections, loads options from pre-loaded
.csv file, includes options based on an "exact
match" comparison):

Multiple-choice field (allows multiple


selections, loads options from pre-loaded
.csv file, includes options based on both a
"contains" comparison and an "exact
match" filter):

Standard GPS location-capture field:


Boundary-capture field (GPS polygon):
Boundary- or path-capture field (GPS
polyline or polygon):
Standard scan-barcode field:
Standard date field:
Date field (but for smaller screens):
Standard date+time field:
Date+time field (but for smaller screens):
Standard image-capture field:
Image-capture field which allows user to
annotate image:
Image-capture field which allows user to
draw image:
Image-capture field which collects a
signature as the image:
Standard audio-capture field:
Standard video-capture field:
Attach text, image, video, audio, PDF, ZIP, or
MS Office file (Excel or Word):
Standard note field (read-only).

Standard group

Standard repeated group


Group repeated exactly three times

Example Example answer


1+1 2
3-2 1
3*2 6
10 div 2 5
9 mod 2 1
${fieldname} = 3 true or false
${fieldname} != 3 true or false
${fieldname} > 3 true or false
${fieldname} >= 3 true or false
${fieldname} < 3 true or false
${fieldname} <= 3 true or false
${fieldname} = 3 or ${fieldname} = 4 true or false
${fieldname} > 3 and ${fieldname} < 5 true or false
not(${fieldname} > 3 and ${fieldname} < 5) false or true

Example
once(random())
once(random())
pulldata('hhplotdata', 'plot1size', 'hhid_key',
${hhid})
string-length(.) > 3
count-selected(.) >= 1
selected(${fieldname}, 'Male')
selected-at(${fieldname}, 0) = 'Shona'

jr:choice-name(selected-at($
{selectmultfield}, 0), '${selectmultfield}')

concat(${firstname}, ' ', ${lastname})


index()
count(${repeatgroupname})
sum(${loan_size})
join(' ,', ${hh_member_name})
min(${hh_member_age})
max(${hh_member_age})

indexed-repeat(${name}, ${names}, 1)

substr(${phone}, 0, 3)
coalesce(${id}, ${id2})
round(${interest_rate}, 2)
regex(., '[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.
[A-Za-z]{2,4}')

if(selected(${country}, 'South Africa') or


selected(${country}, 'Zimbabwe'), 'SADC',
'Non-SADC')
number('34.8') = 34.8
int('39') = 39
string(34.8) = '34.8'
${fieldname} > date('2013-01-31')

${fieldname} > date('2013-01-31 16:42:00')

format-date-time(${fieldname}, '%Y-%b-%e
%H:%M:%S')
format-date-time(today(), '%Y-%b-%e')
once(format-date-time(now(), '%Y-%b-%e
%H:%M:%S'))
uuid()
version()
username()
duration()
hash(${name}, ${birthdate})
linebreak()
rank-index(1, ${random_draw})
rank-value(${random_draw}, $
{list_of_draws})
de-duplicate(' ', join(' ', ${repeatedfield}))
distance-between(${start_gps}, ${end_gps})
area(${gps_reading})
short-geopoint(${location})
pow(1+${annual_interest_rate}, $
{years_of_interest})
log10(${field})
sin(${field})
cos(${field})
tan(${field})
asin(${field})
acos(${field})
atan(${field})
atan2(${fieldx}, ${fieldy})
sqrt(${field})
exp(${fieldx})
pi()
hint hint:languagename
Text in this column, if any, will appear Any hint:languagename column (e.g.,
italicized beneath the field's label. You can hint:tamil) may be added in order to
include line-breaks in your hint text by provide hints in an alternative language.
pressing Alt+Enter on Windows or
Control+Option+Enter on a Mac.
default appearance
If you want to default the user's entry or For field types that allow multiple
selection for a given field, you can specify a appearances, you can specify the
number or some text in this column. appearance style in this column (e.g., quick
or minimal for select_one fields). See the
Alternatively, you can specify an expression individual examples below.
for dynamically calculating the field's
default entry or selection, in the calculation
column. See the following help topic for
more details: How can I provide default
entries or selections for users filling out my
form?

numbers

quick
minimal

compact

compact-3

quickcompact

quickcompact-3

search('hhplotdata', 'contains', 'respondentname', ${nametofind})

search('hhplotdata', 'startswith', 'respondentname', ${nameprefix})

search('hhplotdata', 'endswith', 'respondentname', ${namesuffix})

search('hhplotdata', 'matches', 'respondentname', ${nametofind})


search('hhplotdata', 'contains', 'respondentname', ${nametofind}, 'vill

minimal

compact

compact-3

search('hhplotdata', 'contains', 'respondentname', ${nametofind})

search('hhplotdata', 'startswith', 'respondentname', ${nameprefix})

search('hhplotdata', 'endswith', 'respondentname', ${namesuffix})

search('hhplotdata', 'matches', 'respondentname', ${nametofind})

search('hhplotdata', 'contains', 'respondentname', ${nametofind}, 'vill


no-calendar

no-calendar

annotate

draw

signature

p=50
p=50;s=0;d=60
p=50;s=0-600;d=60
p=50;s=firstfield;d=lastfield
v=5;d=120
constraint constraint message
Enter an expression into this column to If the user tries to move forward but the
validate entered or selected values. The constraint expression is false, a generic
user will only be allowed to proceed to the "That entry is invalid" message will appear;
next question when the expression to override this message on a field-by-field
evaluates to true. Use the constraint builder basis, enter another message into this
to build new constraint expressions. (Also column.
see the expression quick-reference
following the examples below.) Example: . <
130
espondentname', ${nametofind})

respondentname', ${nameprefix})

espondentname', ${namesuffix})

espondentname', ${nametofind})
espondentname', ${nametofind}, 'villageid', ${villageid})

espondentname', ${nametofind})

respondentname', ${nameprefix})

espondentname', ${namesuffix})

espondentname', ${nametofind})

espondentname', ${nametofind}, 'villageid', ${villageid})


constraint message:languagename relevance
Any constraint message:languagename Enter an expression into this column to
column (e.g., constraint message:tamil) may control when a field or group displays to the
be added in order to provide constraint user (i.e., to control when it is "relevant").
messages in an alternative language. The field or group will only show up to users
when the expression in this column
evaluates to true; otherwise, it will remain
hidden. Use the relevance builder to build
new relevance expressions. (Also see the
expression quick-reference following the
examples below.) Example: ${age} < 18
disabled required
Enter yes into this column to temporarily Enter yes into this column to require that
disable a field. (Rarely used.) users enter or select a value before
continuing.
required message required message:languagename
If the user tries to move forward without Any required message:languagename
entering or selecting a value for a required column (e.g., required message:tamil) may
field, a generic "Sorry, this response is be added in order to provide required
required" message will appear; to override messages in an alternative language.
this message on a field-by-field basis, enter
another message into this column.
read only calculation
Enter yes into this column to make it read- This column specifies the expression to use
only (a user can see the field, but cannot for a calculate field, or the expression to use
enter or select a value). (Rarely used, for calculating the default entry or selection
because note fields, which are by nature for a visible form field. Use the calculation
read-only, are automatically read-only builder to build new calculation expressions.
regardless of what is specified here.) (Also see the expression quick-reference
following the examples below.)
(${age1}+${age2}+${age3}) div 3
once(format-date-time(now(), '%Y-%b-%e %H:%M:%S'))
repeat_count media:image
For a begin repeat row, this column can To include an image to display for a field (in
specify the number of times to repeat the addition to or in lieu of its label), its
group of questions. (Can be a fixed count filename should be specified here (and the
like 3 or a reference to an earlier field like $ file should be uploaded with this form
{numhh_members}.) defintion). Which media file formats are
supported will depend on your Android
device, but all devices support common
image formats like .jpg or .png. Example:
paddy.png
Y-%b-%e %H:%M:%S'))
3
media:audio media:video
To include a sound clip that can be played at To include a video clip that can be played at
a field, its filename should be specified here a field, its filename should be specified here
(and the file should be uploaded with this (and the file should be uploaded with this
form defintion). Which media file formats form defintion). Which media file formats
are supported will depend on your Android are supported will depend on your Android
device. Example: explanation.3gpp device. Example: demonstration.mp4
media:image:languagename media:audio:languagename
Any media:image:languagename column Any media:audio:languagename column
(e.g., media:image:tamil) may be added in (e.g., media:audio:tamil) may be added in
order to provide images for an alternative order to provide audio clips for an
language. alternative language.
media:video:languagename choice_filter
Any media:video:languagename column When filtering lists of multiple-choice
(e.g., media:video:tamil) may be added in options, this column specifies, for each field,
order to provide video clips for an which prior field should be used when
alternative language. filtering the list of options. For more details,
see the following help topic: How can I filter
the list of multiple-choice options presented
to users? Example: filter=${survey_region}
note response_note
This column can specify an optional note to This column can specify optional text or
appear with the field in printable versions of symbols to appear in the response area to
the survey form, in order to explain when the right of questions in printable versions
groups or fields will appear (i.e., when they of the survey form. For a text field, for
are relevant), what restrictions there are on example, you might put something like |
user entries (i.e., what constraints apply), ___|___| if you are looking for two letters
etc. or numbers; or, for a checkbox, you might
put a hollow square like □ (this is a special
HTML character: enter "&#9633;", without
quotes, into this column); finally, for a radio
button, you might simply enter a capital O.
publishable minimum_seconds
Enter yes into this column to indicate that a Enter a number of seconds that represents
field in an encrypted form should be left the minimum time enumerators should
unencrypted so that it can be published to spend the first time they view the field. This
one or more datasets. Use only for non- represents a "speed limit" that can be
sensitive fields that can be left unencrypted enforced by Collect (with the Enforce
without compromising data security. (This minimum times for fields option within
field is ignored for unencrypted forms.) Collect's Admin Settings); alternatively, you
can track violations with the following field
types: "speed violations count", "speed
violations list", and "speed violations audit"
(see examples for these field types below).
The choices worksheet

This worksheet is for the configuration of option lists for your multiple-choice questions.
For regular option lists, all possible options will be listed here, one option per row. For
option lists that will be dynamically loaded from a pre-loaded .csv file, there will be a
single row that indicates from which .csv columns to load the option values, labels, and
images (see the following help topic: How do I dynamically load multiple-choice options
from pre-loaded data?).

list_name value
This column specifies the name of a This column specifies the internal value
multiple-choice question type (without any stored for a given choice. (It should really be
spaces or punctuation). A given list of called "value" rather than "name".)
options will involve multiple rows, each with Example: 1
the same list_name. Example: yesno
If dynamically loading from a pre-loaded
.csv file, this should instead be the .csv
column name from which to load option
values.
label label:languagename
This column specifies the label to use for a Any label:languagename column (e.g.,
given choice, in the form's default language. label:tamil) may be added in order to
Example: Yes provide labels in an alternative language.

If dynamically loading from a pre-loaded


.csv file, this should instead be the .csv
column name -- or comma-separated list of
column names -- from which to load option
labels for the default language.
image image:languagename
To include an image to display for an option, Any label:languagename column (e.g.,
its filename should be specified here (and label:tamil) may be added in order to
the file should be uploaded with this form provide images in an alternative language.
defintion). Which media file formats are
supported will depend on your Android
device, but all devices support common
image formats like .jpg or .png. Example:
paddy.png

If dynamically loading from a pre-loaded


.csv file, this should instead be the .csv
column name from which to load image
filenames.
filter
To filter the list of options displayed, a filter
value can be specified here, along with a
filter expression in the choice_filter column
of the survey worksheet. For example, you
might have filter values like LAC and a
choice_filter like filter=${survey_region}.
For more details, see the following help
topic: How can I filter the list of multiple-
choice options presented to users?
The settings worksheet

This worksheet contains overall settings for your form, all specified in the second row of
the worksheet. When you download a form template from your SurveyCTO server, these
settings will be pre-filled for you.

form_title form_id
This is the title of your form. If you begin This is the unique ID that will identify the
this title with TEST - (as in "TEST - form. While the form title can have spaces
Household listing survey"), it will not appear and can be changed from time to time, the
by default to users (see the following help form ID must not contain spaces and must
topic: How can I prevent forms from remain fixed for the life of the form. The
appearing until after I am finished testing form ID must also begin with a letter, and it
them?). can only include letters, numbers,
underscores, and hyphens (no other
punctuation or special characters). Example:
hhlisting_round1
version public_key
This is the version number of the form, This is the public key with which to encrypt
which you must increase each time you all form submissions. See the following help
modify an existing form. If you started with topic for details: How do I encrypt my data?
a form template or with one of the sample
forms, then this is automatic: the version is
set to a formula that automatically
increments every minute. (Otherwise, you
need to increment the version number
yourself, taking care to keep the number of
digits fixed; the version has to be a single
whole number, and its number of digits has
to stay the same from one version to the
next. The convention is to always use a ten-
digit number that represents the current
date and time, e.g., 1401130917 for 9:17AM
on January 13, 2014. Alternatively, you can
use 10-digit numbers like 0000000001 and
0000000024 or 3-digit numbers like 001 and
024.)
submission_url default_language
This is the submission URL to use when This is the name of the language associated
submitting encrypted forms. See the with labels, images, and other content when
following help topic for details: How do I no other language is specified. For example,
encrypt my data? the label:french column is clearly in French,
but the label column, which will display by
default, is in an unknown language. Put the
name of that default language here. See the
following help topic for details: How do I
translate my form into multiple languages?

You might also like