I would like to improve on how I use choice filters containing many choice values. Currently if I have choices that need to be available for more than one choice, I simply replicate the choice line and change the choice_filter value.
Example.
type | name | label | choice_filter |
---|---|---|---|
select_multiple datagroup | sel_datagroup | Select all datasets you manage: | |
begin_group | group_addresspoints | Address Point information: | |
select_multiple qaqc | sel_ap_qaqc | Select the QA/QC procedures you currently use: | datagroup=selected(${sel_datagroup},name) |
end_group | |||
begin_group | group_centerlines | Centerline information: | |
select_multiple qaqc | sel_c_qaqc | Select the QA/QC procedures you currently use: | datagroup=selected(${sel_datagroup},name) |
end_group | |||
begin_group | group_taxparcels | Tax Parcel information: | |
select_multiple qaqc | sel_tp_qaqc | Select the QA/QC procedures you currently use: | datagroup=selected(${sel_datagroup},name) |
end_group |
list_name | name | label | datagroup |
---|---|---|---|
datagroup | Address_Points | Address Points | |
datagroup | Centerlines | Centerlines | |
datagroup | Tax_Parcels | Tax Parcels | |
qaqc | Data_Reviewer | Data Reviewer | Address_Points |
qaqc | Data_Reviewer | Data Reviewer | Centerlines |
qaqc | Data_Reviewer | Data Reviewer | Tax Parcels |
qaqc | Internal_Address_Standards | Internal Address Standards | Address_Points |
qaqc | Internal_Address_Standards | Internal Address Standards | Centerlines |
qaqc | Check_Overlapping_Boundaries | Check Overlapping Boundaries | Tax Parcels |
However, I have MANY more possibilities to account for (according to my 6th grade math skills, roughly 4,000 more rows). So what I want to do is something like this:
type | name | label | choice_filter |
---|---|---|---|
select_multiple datagroup | sel_datagroup | Select all datasets you manage: | |
begin_group | group_addresspoints | Address Point information: | |
select_multiple qaqc | sel_ap_qaqc | Select the QA/QC procedures you currently use: | datagroup="All" or datagroup="Addressing" |
end_group | |||
begin_group | group_centerlines | ||
select_multiple qaqc | sel_c_qaqc | Select the QA/QC procedures you currently use: | datagroup="All" or datagroup="Addressing" |
end_group | |||
begin_group | group_taxparcels | ||
select_multiple qaqc | sel_tp_qaqc | Select the QA/QC procedures you currently use: | datagroup="All" or datagroup="Boundaries" |
end_group |
list_name | name | label | datagroup |
---|---|---|---|
datagroup | Address_Points | Address Points | |
datagroup | Centerlines | Centerlines | |
datagroup | Tax_Parcels | Tax Parcels | |
qaqc | Data_Reviewer | Data Reviewer | All |
qaqc | Internal_Address_Standards | Internal Address Standards | Addressing |
qaqc | Check_Overlapping_Boundaries | Check Overlapping Boundaries | Boundaries |
I have tried every configuration I could think of to no avail. Is this possible?
Thanks,
Chris B.
Hi Chris
Currently, cascading selects can only be used with select_one questions. Choice filters cannot be applied to select_multiple questions. We have an open enhancement request for this feature in our system, and I've added your post to it.
Please find documentation on this here: Cascading and external selects—Survey123 for ArcGIS | ArcGIS and info on this blog post:https://community.esri.com/groups/survey123/blog/2015/10/22/cascading-selects-and-external-selects.
To use select_multiple, you would need to have a separate choice list for each set of QA/QC procedures.
Note that when using select_one questions, you can add more columns to the choices sheet to further filter each choice list. For example, you could add columns for each group (addressing, boundaries, etc.) to specify which group(s) each choice in the qaqc list belongs to. You could add a yes/no question for each of these, and then use a choice filter like: addressing=${addressing_yesno} and boundaries=${boundaries_yesno}.
Kind regards,
Jim