Hi, is there a way to have multiple different questions populate the same field inside of this program. I am creating a datasheet for graduate work and I am trying to cut down on errors for my field data entry.
Say I wanted to have a question that had landcover type choices, then out of those choices I chose Mixed Conifer (mx). Then my survey sends me to a subset of survey site identifiers based on that landcover type. Now if I had multiple landcover types, each of which sent me to a different subset of survey site identifiers to choose from, is there a way that those site identifiers could populate only one field.
Ex. I have mx1, pp1, pj1, gr1, bmx2, bpp2, bpj2, bmx2. Each of these site identifiers was chosen from a different subset question in my survey based on what landcover type I chose. Now is there a way that all of these values could populate into a single field without having to set another rule or calculation? Like all of these values for site identifier go straight into a field named "site identifier"
Yes, this is possible. You can concatenate the answers of previous questions into one text string via a calculation in a text question. Is that what you want to do?
Are the original questions all seperate select one questions with choice lists, or plain text questions for any user input? Do you want to show all the values from each one answered, or just some, or just one, depending on which ones get answered or skipped? Further to concatenating values, you could also use nested if() statements, to work out which values form which questions get used in the final calculation.
Do you have an example XLSform file you could share, that has all the questions and values you want in the single field?
Yes using it as a calculation would work as well. I would rather it autopopulate but if that is not possible then a calculation would work. I don't have the survey questions fully built out and the survey is not published yet.
Could you possibly write out an example of the coding for the nested if statement? I would like to have probably 8 different landcovers and each of those would have a certain amount of sites in its subset list.
select_one landcover - choices(mx, bmx, pp, bpp, gr, bgr, pj, bpj)
then a select_one sites question that has subset sites for each landcover
landcover - landcover sites list
mx - mx1, mx2, mx3
bmx - bmx1, bmx2, bmx3
pp - pp1, pp2, pp3
bpp - bpp1, bpp2, bpp3
gr - gr1, gr2, gr3
bgr- bgr1, bgr2, bgr3
pj - pj1, pj2, pj3
bpj- bpj1, bpj2, bpj 3
Based on your example above, I think actually what you are after is Cascading Selects - where the choice from the first select one filters the choices from the second select one question. This is out of the box built in functionality, you can do this without needing to write any additional calculations or expressions.
Please refer to online documentation: https://doc.arcgis.com/en/survey123/desktop/create-surveys/xlsformcascadingselects.htm
Also this great blog post: https://community.esri.com/t5/arcgis-survey123-blog/survey123-tricks-of-the-trade-choice-filters/ba-...
And there is also a sample in Connect called "Choice Filters and Cascading Selects" which has an example of how to configure your XLSForm.
Thank you very much! This helped me immensely! I do have one more question for you though. Is there a way to have a choice that links to 2 different choices from the selected column?
Say habitats mx and pp are in 2 different land ownerships (sfnf and vcnp). Is there a way to code it to show those habitats in both questions? Or do I just rewrite them in the choices column and add a different ownership?
Yes, you would have to repeat then with different choice filters The whole purpose of choice filters and cascading selects is to filter the list, such as a country, state, city etc. From that point of view a city can only be in one state and the state only in one country.
You can also try using multiple choice filters, with different columns against the choice list for the different choices, that way you can filter or all of them using a more complex query in the choice filter column.