Form Builder Guide 2016 - AgTerra Technologies, Inc.

Form Builder Help Guide
Getting Started
This guide covers the essential elements of a Strider
form and introduces common functions that can be used
to create your own customized form
Last Updated:
April 2016
Disclaimer
The use of GPS devices, tablets and smartphones with MapItFast and associated AgTerra products
The internal GPS in your device can be used independently from online services to
automatically set location information in the app, which is recorded as latitude and
longitude.
GPS accuracy may be influenced by topology, environment and equipment.
Furthermore, the accuracy of the maps used in MapItFast (and its associated
products: Strider, SprayLogger and TrackItFast) are not guaranteed. Please use
care when using MapItFast.
MapItFast requires online data transfers for some features, such as accessing
online maps and sharing exported files. Accessing these features over data
network services may incur costs from your provider. If you use the app and data
services on your tablet, you are responsible for any fees that your service provider
charges. Your service provider is not the provider of MapItFast.
AgTerra Technologies makes no representations, expressed or implied, as to data
accuracy, completeness, validity or suitability. The end user assumes the entire risk
as to the quality of the data. AgTerra shall not be liable regardless of the cause or
duration, for any errors, inaccuracies, omissions, or other defects in, or
untimeliness or unauthenticity of data; or for any delay or interruption in the
transmission of data to the user; or for any losses, injuries or damages arising from
its display or use.
2|Page
S
TABLE OF CONTENTS
Overview & Resources
4
Basic Format
4
 Excel formatting
 Necessary components
Metadata
5
 Behind-the-scenes data collection
Question Types
5
 Question types allowed in a form
 Appearance options
Formatting Questions




15
Select-one and select-multiple questions
Grouping questions on a single screen
Repeat groups
Skipping questions
Hints
17
 Add text to improve form useability
Constraining Responses
18
 Maintain uniform data with field contraints
Formulas
18
 Improve form functionality and data quality with formulas
Settings Worksheet
19
 Optional tab that allows for additional form customization
Advanced Features
22

3|Page
Overview & Resources
There are various ways to build a form; this guide is based on XLSForm. The Strider interface
is currently built following the ODK (OpenData Kit) platform and most forms built to work on
ODK Collect will work on Strider. However, some features available on Strider are not
available on ODK and vice versa, so forms will need to be tested. Any issues or questions
should be directed to AgTerra Technologies, Inc. at email [email protected] or telephone
1-307-673-1050.
AgTerra can provide form templates upon request. Below are some sample forms we have
available:
 Weed Spray
 Tree Survey
 Rangeland Monitoring
 Seed Order
 Timesheet
 Expense Tracking
Basic Format
Forms must be uploaded to Strider in .xls format. To ensure that your Excel file is in this
format, go to File → Save As, and select Excel 97-2003 Workbook from the file type
dropdown menu.
Each form must have a worksheet/tab called
survey (all lower-case letters). This is where
your questions will go.
If the form is going to have any drop-down
lists, a second tab is required – choices.
A third, optional worksheet labeled settings
may be used. More details on this worksheet are covered on Page 19.
4|Page
Certain columns must be present in the workbook for the file to be valid. Optional columns
allow for further control over the behavior of the entry. The following columns in pink are
required in all forms; those in green are optional.
type
name
label
hint
appearance
relevant
jr:count
required
constraint
constraint_message
TAB: survey
Additional survey columns:
calculation
default
choice_filter
NOTE - All Excel formatting is ignored so dividing lines, shading, and font formatting can be
used to make the file more readable.
Metadata
Metadata collects information that can be useful for identifying records as they are filled
out and submitted. The user does not see these fields while filling out a form.
type
start
end
today
deviceid
subscriberid
sim_serial
phone_number
TAB: survey
name
label
start
end
today
deviceid
subscriberid
simserial
phonenumber
Metadata is usually placed at the
beginning of a form. Note that it is not
necessary to fill out the label column
for metadata fields.
Question Types
Question type determines how a field will be displayed in the form. Certain question types can be
modified further using the ‘appearance’ column. These are described further on the next page.
5|Page
Examples of allowed question types are listed below. Some questions can be given a different ‘look’
with the appearance column. If an appearance option is available, it is shown in the ‘appearance’
field below. An example of each question type is shown, both as it appears in the .xls form as well a
screenshot of the question on the device.
type
Description
appearance
Description
(Optional)
text
type
text
name
some_text
type
integer
A note appearance will increase the size of the
text box, allowing for easier text entry when
sentences are used.
label
hint
required
This is a basic fill-in-the-blank
question. Please enter something –
this will be the ‘title’ of your form
This is a hint. Note you can enter up to 255 characters by
default. If you want more (or less) you can define the number
allowable. You can also ‘speak’ your answer if your device
allows it. By the way, an answer to this question is ‘required’!
yes
type
integer
note
Text input.
Description
appearance
Integer (i.e., whole
number) input. Only 9
digits allowed, no
formatting such as ,+()etc.
name
tallyup
counter
Description
Count up or down by tapping + or – on either
side of the input line.
label
hint
appearance
Tally Counter
Count up or down with
a tap. A long press
gives you 5 more. Or,
enter a number.
counter
6|Page
type
Description
decimal
name
a_decimal
label
hint
Enter a decimal:
This question has a constraint so that the decimal must be
less than the integer. Constraints are handy for the
current input … but if you violate it you won't see the
message until you swipe to the next page.
type
Description
select_one [options]
Multiple choice question;
only one answer can be
selected.
Click here to learn about advanced
select_one capabilities!
type
select_one
yes_no
Description
Decimal input (15 digits
allowed, including
decimal)
decimal
type
appearance
appearance
minimal
compact
autocomplete
table list
label/listnolabel
constraint
. <= ${tallyup}
Description
- Minimal appearance compresses selection options
to a dropdown menu.
- Compact arranges answer choices side by side.
- Autocomplete allows for choices to be typed in or
selected from a dropdown list.
- Label and list-nolabel can be used in conjunction to
create a table list when several questions have the
same set of answers.
Default Appearance
name
label
hint
select_example
This is a
select_one type
question.
In the type column you must include
the name of a choices list that sets
the available options. Choices lists
are specified on the choices sheet.
appearance
7|Page
Minimal Appearance
type
name
select_one
yes_no
select_example
label
This is a
select_one type
question.
hint
appearance
This select_one question has a 'minimal'
appearance. A drop-down list will appear when
Select One Answer is tapped.
minimal
Compact Appearance
type
name
select_one
yes_no
select_example
label
This is a
select_one type
question.
hint
appearance
This select_one question has a 'compact'
appearance. Choices are shown side-by-side on
the screen.
compact
8|Page
Autocomplete Appearance
type
select_one
weeds
name
weeds
label
hint
appearance
Big Pick List
This question has an 'autocomplete' appearance.
Select from big list or type new entry … the
weed list here isn't that big, but you get the idea.
autocomplete
Table List Appearance
type
name
label
begin group
table_list_example
table-list group
select_one level
table_list_question_1
Question 1
select_one level
table_list_question_2
Question 2
hint
This group of questions has a 'table-list'
appearance.
appearance
table-list
A hint; 1 is low, 5 is high
end group
9|Page
Label/List NoLabel Appearance
type
name
label
hint
appearance
begin group
table_list_example
table-list group
This group of questions has a 'table-list'
appearance.
field-list
select_one level
table_list_label
1 is low, 5 is high
select_one level
table_list_question_1
Question 1
select_one level
table_list_question_2
Question 2
label
list-nolabel
list-nolabel
end group
type
Description
select_multiple [options]
Multiple choice question;
multiple answers can be
selected.
appearance
minimal
compact
table list
label/listnolabel
Description
All appearance options have the same functions
as select-one question type. Note that most
appearance options are available for both select
one and select multiple questions.
Autocomplete however, is only available for
select one question types.
Default Appearance
type
select_multiple
a_b
name
select_multiple
label
hint
Select multiple
This is a select_multiple question.
This field type allows for more than
one option to be selected.
appearance
10 | P a g e
type
Description
appearance
Description
Display a note on the
screen, takes no input.
note
Notes can be simple text or a combination of text and reference to previous fields as a way of summarizing data. The example below displays
the results of a formula used earlier in the form.
type
note
name
calculate_output
type
label
hint
The sum of the integer and
decimal: ${calculate}
Just displaying the result of a calculated field here the two previous numbers added together. Lots
more complex math is also possible.
Description
location (or geopoint)
appearance
appearance
Description
Collect GPS coordinates
(Collects latitude,
longitude, altitude, and
GPS accuracy)
This feature only works on a GPS-enabled device
type
name
label
hint
appearance
geopoint
geopoint_test
Record your location:
You can capture latitude, longitude, altitude, and
accuracy using your device GPS
11 | P a g e
type
Description
image
Take a picture (launches
device camera); or select
(launches browse) an
image
type
image
name
photo
type
Description
barcode
type
barcode
label
Take a picture:
name
barcode_test
appearance
annotate
draw
signature
Description
Annotate allows mark-ups to an image.
Draw allows a sketch to be traced using finger or
mouse.
Signature brings up a signature line.
hint
appearance
Take or choose a picture. You can also mark it up.
annotate
appearance
Description
Scan a barcode, requires
that a barcode scanner
app is installed.
label
hint
Scan a barcode:
You will need a barcode reader app installed. Collect
a number or URL.
appearance
12 | P a g e
type
Description
date
type
date
name
date_test
type
label
Enter a date:
Description
time
type
time
Date input.
name
time_test
appearance
month-year
year
Description
Select month and year or year only.
hint
appearance
Defaults to today.
appearance
Description
Time input.
label
Enter a time:
hint
appearance
Defaults to now.
13 | P a g e
type
Description
datetime
type
datetime
appearance
Description
Date and time input.
name
datetime_test
type
label
Enter a date and a time:
Description
calculate
hint
appearance
Also defaults to now.
appearance
Description
Perform a calculation.
Calculate fields are not visible in a form, but can be seen in record details and reports.
All available calculations are explained in the ‘Formulas’ section.
type
calculate
name
calculate_test
label
hint
calculation
${a_integer}+${a_decimal}
Email
Submitted forms can also be sent to an email address as a report. One or more addresses can be
manually entered (text question type), selected from a list (select_one or select_multiple), or hidden
and automatically sent to a recipient when submitted (calculate). Construct examples for email
recipients are shown below.
14 | P a g e
type
name
text, select_one, select_multiple
or calculate
AUTO_EMAIL_
TO
Email Report To
Emails a copy of this report to entered email
address when this form is submitted.
text, select_one, select_multiple
or calculate
AUTO_EMAIL_
BCC
Email Report To
Emails a copy of this report to entered email
address when this form is submitted.


label
hint
If calculate is used, the following syntax is entered into the calculate column:
if(1=1,’emailaddress’,’emailaddress’)
To add more than two email fields to a form, simply add a unique AUTO_EMAIL_TO field. For
example, if the first two fields are AUTO_EMAIL_TO and AUTO_EMAIL_BCC, the third email field
can be AUTO_EMAIL_TO2.
Formatting Questions
Select One and Multiple Choice Questions
Both ‘select one’ and ‘select all that apply’ questions can be used in a form. A second worksheet called
choices must be added to the Excel workbook in order for these to be used. Here is an example of a
select one question:
type
select_one yes_no
TAB: survey
name
treatment
label
Treatment applied?
List_name
yes_no
yes_no
TAB: choices
name label
yes
Yes
no
No
Notice the question type ‘select_one list-name’ where ‘list-name’
must match a list from the ‘choices’ worksheet.
Allow the selection of more than one answer with the select_multiple question type:
type
select_multiple weeds
TAB: survey
list_name
weeds
weeds
weeds
weeds
name
label
treated_weeds Select all weeds treated:
name
Canada_thistle
Common_burdock
Common_tansy
Dalmatian_toadflax
label
Canada thistle
Common burdock
Common tansy
Dalmatian toadflax
TAB: choices
15 | P a g e
Grouping Questions
Grouping questions allows you to apply rules to several questions. This feature can help organize your
form so that it makes sense to the person filling it out. A common syntax used in the appearance
column is field-list, which places all questions in a group on one page. You can group questions by
sandwiching them between ‘begin group’ and ‘end group’ rows.
type
begin group
text
text
text
name
employee_group
name
position
supervisor
label
Employee Group
Enter the employee
Enter the employee’s job title.
Enter the employee’s supervisor’s
name.
appearance
field-list
end group
TAB: survey
Notice you do not need an end group
name or label, but you must have an
end group for every begin group!
To keep grouped questions on
the same page, put field-list in the
appearance column
Repeat Groups
Repeat groups are helpful anytime multiple sets of similar data need to be entered at one time. Repeat
groups are created with a begin repeat and end repeat before and after the desired set of questions,
just like regular groups. By default the user can enter as many repeat group entries as they wish, but this
number can be constrained to a set number of entries using the specified syntax.
type
begin repeat
begin group
text
text
Text
name
employee_info
employee_group
name
position
supervisor
label
Employee Info
Employee Group
Enter the employee
Enter the employee’s job title.
Enter the employee’s
supervisor’s name.
appearance jr:count
3
field-list
end group
end repeat
TAB: survey
The jr:count column can be used to constrain a repeat group to a specific number
of entries. You can put a number in this field or even reference an integer entered
earlier in the form using the ${} syntax.
16 | P a g e
Skipping Questions
A great feature of Strider is the ability to skip a question based on the response to a previous question.
This ‘skip logic’ improves form usability by making it dynamic and intuitive to a user’s responses. Skip
logic is established using the ‘relevant’ column. The example above shows some convenient syntax
that allows you to easily refer to previous fields: ${treatment} will be replaced with whatever was
entered in the treatment question.
type
select_one yes_no
select_multiple weeds
name
treatment
treated_weeds
label
Treatment applied?
Select all weeds treated:
relevant
${treatment}=’yes’
TAB: survey
These questions are not in a
group or field list because the
dependent question
(treated_weeds) must be
triggered by swiping to next page
once the anchor question
(treatment) has been answered.
List_name
yes_no
yes_no
TAB: choices
name label
yes
Yes
no
No
Note
If relevance is based on a multiple choice
question, use the following syntax:
selected(${select_question}, 'optionD')
Remember to use the value from
the ‘name’ column of the choices
tab when setting relevance!
Hints
Hints are easily added to any question by typing the desired text into the hint column of a form. This is a
convenient way to add some extra instruction or clarification to a question.
type
text
location
name
weather
location
Select_multiple weeds
weeds
label
Weather
GPS
Location
Weeds
hint
Describe the general weather conditions.
This launches the GPS widget. Wait for a good
satellite connection.
Select all weeds observed within a 50-yard radius of
location.
TAB: survey
17 | P a g e
Constraining Responses
It is sometimes necessary to constrain responses to a question in order to maintain data consistency. For
example, it wouldn’t make sense to have a response exceed the number 24 if the question pertained to
daily hours. A custom constraint message can also be added to explain why a response is invalid.
Some examples of constraints are shown below.
type
integer
integer
name
hours
units
label
Hours Worked
Units
text
AUTO_EMAIL_TO
Email Report
To
constraint
. <= 24
. mod 4=0
Constraint_message
Daily hours cannot exceed 24!
Units must be in multiples of 4!
regex(., '[A-Za-z0-9._%+]+@[A-Za-z0-9.-]+\.[A-Za- This isn't a valid email address
z]{2,4}')
TAB: survey
Constraints can even be used in an email field to
make sure an email address is entered correctly.
Formulas
Formulas are used in the constraint, relevant and calculate columns. Formulas are composed of
functions and operators (+, -,*,div, etc).
Calculates
Strider can perform calculations using the values of proceeding questions. In most cases this will
require use of a calculate question. For example, in the survey below we are calculating the amount
of a chemical applied based on the user’s response to number of acres sprayed.
type
decimal
calculate
name
acres_sprayed
herb_amount
label
Number of acres sprayed?
Tip shown is 20% of meal.
calculation
${acres_sprayed} * 0.02
TAB: survey
A calculate does not display to the user, so you can do calculations behind the scenes. A result can be
displayed later in the form by using the ${} syntax in the ‘label’ column, making it a read-only field that
the user can see but not modify.
18 | P a g e
type
note
name
herb_display
label
Gallons applied = ${herb_amount}
TAB: survey
It isn’t necessary to ‘hide’ calculations, however. Simply use a different question type, such as
‘decimal’ or ‘integer’, or if the calculation is a statement returning a string, use ‘text’.
The formula evaluation functionality in Strider is provided by Javarosa. Some operators are listed
here:
Operator
+
*
div
=
!=
<
<=
>
>=
or
and
mod
Description
Addition
Subtraction
Multiplication
Division
Equal
Not equal
Less than
Less than or equal to
Greater than
Greater than or equal to
or
and
Modulus (division
remainder)
Example
${number1} + ${number2}
${number2} - ${number1}
${number1} * 100
${number1} div 4
${price}=9.20
${price}!=5.39
${price}<6.76
${price}<=6.75
${price}>=7.00
${price}>7.99
${price}=9.80 or
${price}=9.70
${price}>90 and
${price}<101
. mod 6 = 0
"/" has another meaning!
Current entry must be divisible by 6
Settings Worksheet
The settings worksheet is an optional feature that can be added to attach additional information to a
form such as the form title, form ID, and form version. These fields are used to identify the form on
the device and desktop. If an ‘instance_name’ field is used, each record will be given a unique name
containing fields from the form.
form_title
form_id
version
instance_name
ExampleForm2016
ExampleFormID_2016
01292016
concat(${some_text},' ',${today})
TAB: settings
19 | P a g e




form_title: The name of the form presented to users.
form_id: The name used to identify the form
version: a version identification
instance_name: this will replace the filled form name while it is still on the device. In this
example, the form name will show the text entered in the field called ‘some_text’ followed by
the date the form was saved. In the Strider app this will show up in the ‘Edit Forms on Device’,
‘Send Forms In’ and ‘Form Management’ menu options as the name of the form. A screenshot
of the instance_name field is shown below:
Instance_name
Tips & Notes

Uploading a Form - When you have built your form and are ready for testing, upload it to your
Strider account, and download it to a device. If Strider

Designing a Form - Keep in mind the device size and shape and how it will be used (i.e.,
indoors/outdoors; form filled all at once starting at the beginning, or portions prefilled;
portrait or landscape or both; likely to be sent in at once or edited frequently after created;
and so on. If not known, it’s best to design to the smallest form, such as a smartphone screen,
and keep labels, hints, and groups/pages of questions short, to avoid unnecessary
scrolling/swiping.

Making changes to a form: When a form is uploaded, its database is saved to Strider. As long
as this database is unchanged, a modified form can be uploaded to replace the previous
version and all associated data will be saved. If the database is changed, however, a new form
must be uploaded and any existing data copied over. The following lists some examples of
changes that can be made without affecting the database structure as well as those that will
require a new form.
20 | P a g e
o
WILL NOT change database structure: Making changes to labels, hints, rules, list
choices, appearance, calculations, constraints, etc. Basically, changes made to any
field besides the ‘type’ or ‘name’ column are acceptable.
o
WILL change the database structure: Adding or subtracting fields (including group and
repeat group fields), changing field names or group names, changing the order of
fields or field types, will change the database structure and require a new form.
To test if your revised form ‘conforms’, try uploading it with the same form name and id with
the previous version still in your account. You will get a message telling you if your upload was
successful or not. If you receive an error, the form database was most likely changed and you
will need to save it as a new form with new name, id and database or delete the old form.
If most of the data fields are the same and you want to migrate data from an old form to a
new one, use the Copy Data feature in Form Management. This feature will only copy data
from matching fields, so any fields that don’t match will be left blank.

Display previous answers: You can display a previous result in the label column using the
syntax: ${prevresult} and adding any additional text.

Repeat groups: At this time, only one level of repeat groups can be handled by Strider (i.e.,
you cannot have a repeat group within a repeat group)

Syntax: Watch out for spaces. Use underscores for spaces in the names column of the survey
sheet, and for choices in the lists on the choices worksheets. Also avoid special characters. It’s
best to stick to alphanumeric and underscores for these fields; if not, test thoroughly before
using.
You are now familiar with basic XLS form constructs and capabilities. To learn about additional
functions available in forms, refer to the Advanced Features pages below. Steps for uploading a
completed form and managing forms in Strider can be found in the Strider Forms User Guide.
Additional questions can be directed to AgTerra Technologies at 1-866-408-2675 or e-mail
[email protected].
21 | P a g e
Advanced Features
Cascading Selects
Cascading selects help narrow down choices for select one questions. For example, a user could select
a state and see only counties from that state, then select a county and only see cities in the selected
county. When designed properly, cascading selects can make forms both easier to navigate and
increase the accuracy of the data collected. A cascading select requires additional column(s) in the
choices tab. An example of a cascading select is shown below.
type
name
label
choice_filter
select_one states
select_one county
select_one cities
state
county
city
State
County
City
state=${state}
state=${state} and county=${county}
TAB: survey
list_name
name
label
state
county
states
states
counties
counties
counties
counties
cities
cities
cities
cities
cities
cities
cities
cities
texas
washington
king
pierce
king
cameron
dumont
finney
brownsville
harlingen
seattle
redmond
tacoma
puyallup
Texas
Washington
King
Pierce
King
Cameron
Dumont
Finney
Brownsville
Harlingen
Seattle
Redmond
Tacoma
Puyallup
washington
washington
texas
texas
texas
texas
texas
texas
washington
washington
washington
washington
king
king
cameron
cameron
king
king
pierce
pierce
TAB: choices
Note the additional columns in the choices tab, which are referenced in
the choice_filter column in the survey tab
22 | P a g e
How cascading selects work in a form: First selection establishes the state.
Second selection is narrowed down to counties within the selected state.
Third selection shows only the cities in the selected county.
Data Pre-loading (Lookup Tables)
Data pre-loading is an exciting new feature that allows you to load existing data into a form using CSV
files. This allows for faster data entry into forms and helps to maintain data consistency. Saving the data
in a separate CSV file also allows for larger data sets to be used, which may not be feasible in the form
itself. The following are some scenarios in which CSV data can be useful:
- Generating customer contact information after a customer name is selected from a list.
- Calculating the amount of chemicals used in a tank mix spray by selecting the mix and amount applied.
- Using cascading selects to narrow down a zip code by selecting a state and a city.
23 | P a g e
Basic Setup
In order for a form to correctly pull data from the CSV, it must contain syntax which references the
desired CSV. The CSV, in turn, must contain the correct columns and naming conventions in order for
the form to recognize it. The following is a simple example of how a zip code can be generated using
cascading selects and data from a CSV file:
.XLS File
type
select_one
states
select_one
cities
text
name
label
appearance
state
State: search('zipcodes')
city
City:
zip
Zip
Code:
search('zipcodes','matches','stateid',${state})
TAB:
survey
list_name
name
label
states
stateid
state
cities
zip_key
city
TAB:
choices
calculation
Remember to
reference the CSV in
the choices tab!
pulldata('zipcodes','zip_key','zip_key',${city})
Search functions in the appearance
column tell the form which CSV file to
use. If cascading selects are desired,
the ‘matches’ or ‘contains’ syntax is
required. If this is the case, the third
component is the associated ‘_key’ or
‘id’ column, and the fourth
component is the previous field that is
being further narrowed down.
Note - Minimal and autocomplete
appearance can also be used.
The pulldata function is used to
populate a field (or fields) with data
once a selection has been made in a
previous question. This is how the
formula works:
pulldata(‘CSV name’,’column within CSV
that will be shown in form’,’key or id
column that will sort the data’,${previous
field upon which data is based})
.CSV File
zip_key
city
stateid
state
82801
Sheridan
1
Wyoming
82716
Gillette
1
Wyoming
80301
Boulder
2
Colorado
80521
Fort Collins
2
Colorado
59102
Billings
3
Montana
59715
Bozeman
3
Montana
File Name = zipcodes.csv
Be aware of any capitalization when
naming your CSV file. It must exactly
match the name in your .xls form.
A _key field is the unique identifier
for a row of data. It can contain
either numbers or text, but no
spaces.
An id field is used when there is a
search function in the form and the
column being searched contains
duplicate values. This column should
contain numbers.
24 | P a g e
Much like cascading selects, the ‘city’ field shows only cities in Colorado when that state is selected.
Once the city has been chosen, the zip code field will be populated with the corresponding data from
the CSV file. Note that each of these questions must be on its own page so that a ‘swipe’ will trigger the
next set of data.
Importance of the Key column in a CSV
It’s important to remember that pre-populated text must have a unique ‘key’ value to reference in the
CSV. Therefore, the final select list should search using the ‘key’ column in the CSV. In this example, the
city question is searching the zip_key CSV column and displaying choices from the city CSV column. It
then uses the zip_key value chosen by the user to determine what to display in the zip text field. If the
list were to search using a column without unique values (such as an ‘id’ column), the form wouldn’t
know what text to pull and the pre-populated text box would be blank.
User Editing of Pre-Loaded Data
Because pulldata() function is a calculation, any data pre-loaded into a text field using this function is
read-only. It will appear to users as though it is an editable text field, however any edits that are made
will not be saved. The form will only use what it sees in the CSV.
One way to allow editing of pre-loaded fields is to add once( at the beginning of a pulldata statement.
This tells the form to only run the calculation once, making it editable after the data has been placed on
the text line. There is a drawback however – if a user goes back in the form and changes a selection tied
to that pulldata field, the data in that field will not update because the once() syntax only allows the
calculate to run one time in that form.
To make the Zip Code field editable, the calculation could be changed to read
once(pulldata('zipcodes','zip_key','zip_key',${city})). This tells the form to run the calculation only one
time and allow the user to change the data after the fact.
Note – Any changes a user makes to pre-loaded data will not affect or update any data in the CSV.
25 | P a g e
In order to maintain data integrity and still allow for user editing of pre-populated fields, it might be
helpful to combine regular pulldata fields with once(pulldata( fields. For example, one page in the form
could use the pulldata function to fill all relevant fields and the user would be instructed to review the
fields for accuracy. If any fields required changes, the user could go to a new page with once(pulldata(
fields where they would be able to overwrite the necessary fields and leave any correct data intact.
CSV Data and the Strider Database
When Strider gathers data from a submitted form, it saves pre-loaded ‘pulldata’ field values just as they
appear in the form. Select lists, however, are handled differently. When a selection is made to a CSVassociated select list, Strider saves the ‘key’ or ‘id’ value to the database rather than the ‘label’ value.
Therefore, if you need to see the ‘label’ value of a selected choice, it is a good idea to add a calculate
field to the form that contains a pulldata function to generate the value from the ‘label’ column.
.XLS File
type
name
select_one
state_search
label
states
select_one
cities
city
text
zip
calculate
state
State:
search('zipcodes')
City:
search('zipcodes','matches'
,'stateid',${state})
Zip
Code:
state
name
TAB:
survey
list_name
appearance
name
label
states
stateid
state
cities
zip_key
city
calculation
It is helpful to give the list a database name that
makes it discernable from the pulldata field so you
know which data field to use when building reports.
pulldata('zipcodes','zip_key','zip_key',${city})
pulldata(‘zipcodes’,’state’,’zip_key’,${city})
Insert a new calculate field after the
select list to generate the “true”
value of the choice list selection.
Remember to use the data field
working off of the key column of
your CSV. If you don’t, the form
won’t know where to look and this
field will be blank.
TAB:
choices
26 | P a g e
The figure below shows how data will look in the Records page of the Strider website when a
form is submitted. The calculated ${state} field can now be used in reports and data exports.
The select-one ${state_search}
field records the zip_key value.
The ${state} calculate field
records the state field.
Uploading CSVs to Strider
CSV files are uploaded after the .xls file has been uploaded to Strider. This is done by clicking the
Associated Files link next to the appropriate form in Form Management.
This will open a window that will allow you to upload your support CSV files to the form.
27 | P a g e