select_multiple soru türü, katılımcının bir veya daha fazla seçenek belirleyebildiği bir liste görüntüler. Varsayılan olarak seçenekler onay kutusu olarak görüntülenir. Saklanan değer, seçilen tüm seçenek değerlerinin boşlukla ayrılmış listesidir.

Temel XLSForm Tanımı

survey çalışma sayfası:

typenamelabel
select_multiple cropscrops_grownHane hangi ürünleri yetiştiriyor?

choices çalışma sayfası:

list_namenamelabel
cropsmaizeMısır
cropsbeansFasulye
cropsricePirinç
cropsvegetablesSebze
cropsotherDiğer

Daha fazla ayrıntı için XLSForm spesifikasyonuna bakın.

Saklanan veri biçimi

Dışa aktarılan sütun, seçilen değerlerin boşlukla ayrılmış listesini içerir:

  maize beans vegetables
  

İfadelerde select_multiple değerlerini test ederken = değil selected() fonksiyonunu kullanın (aşağıya bakın).

Kullanım Alanları

Select_multiple soruları şunlar için kullanılır:

  1. Birden fazla geçerli yanıt toplama (örn. gelir kaynakları, yetiştirilen ürünler, semptomlar)
  2. Onay kutusu tarzı anlaşma öğeleri (örn. “Geçerli olanları seçin”)
  3. Dil veya beceri envanterleri
  4. Birden fazla yanıtın aynı anda geçerli olduğu herhangi bir soru

Görünüm seçenekleri

GörünümAçıklama
(yok)Varsayılan onay kutuları, her satırda bir tane
minimalAçılır çoklu seçim widget’ı
compactKompakt ızgara, sütun sayısı ekran genişliğine göre ayarlanır
compact-NN sütuna zorlanmış kompakt ızgara
horizontalYatay sırada düzenlenmiş seçenekler (web)
horizontal-compactYatay, kompakt aralık (web)
labelYalnızca etiketleri gösterir, onay kutusu yok (list-nolabel ile birlikte kullanın)
list-nolabelYalnızca onay kutularını gösterir, etiket yok (label ile birlikte kullanın)
columns(N)N sütunda görüntüle (rtSurvey uzantısı)

Örnek: 3 sütunlu kompakt düzen

typenamelabelappearance
select_multiple symptomssymptomsGözlemlenen tüm semptomları seçincompact-3

İfadelerde selected() kullanımı

Saklanan değer boşlukla ayrılmış bir dize olduğundan, belirli bir seçeneğin seçilip seçilmediğini test etmek için mutlaka selected() kullanmalısınız. = kullanmak doğru çalışmaz.

relevant içinde

Yalnızca “diğer” seçilmişse takip sorusunu göster:

typenamelabelrelevant
select_multiple cropscrops_grownHangi ürünler yetiştiriliyor?
textcrops_otherLütfen diğer ürünleri belirtinselected(${crops_grown}, 'other')

constraint içinde

En az 2 seçim zorunlu kılın:

typenameconstraintconstraint_message
select_multiple issuesissuescount-selected(.) >= 2En az 2 sorun seçin

En fazla 3 ile sınırlandırın:

typenameconstraintconstraint_message
select_multiple prioritiesprioritiescount-selected(.) <= 3En fazla 3 öncelik seçin

calculate içinde — seçilen etiketleri birleştirme

Okunabilir bir özet oluşturmak için selected-at(), count-selected() ve choice-label() birleştirin:

typenamecalculation
calculatecrops_summaryjoin(’, ‘, ${crops_grown})

“Hiçbiri” / özel seçenek

Yaygın bir kalıp, bir seçeneği diğerleriyle karşılıklı dışlayıcı yapmaktır. Bunu uygulamak için constraint kullanın:

typenamelabelconstraintconstraint_message
select_multiple issuesissuesMevcut tüm sorunları seçinnot(selected(., 'none') and count-selected(.) > 1)“Hiçbiri” diğer seçeneklerle birlikte seçilemez

choices:

list_namenamelabel
issueswaterSu sıkıntısı
issuesroadsKötü yollar
issueshealthSağlık hizmetleri eksikliği
issuesnoneHiçbiri

Seçimleri sayma ve özetleme

FonksiyonÖrnekSonuç
count-selected(field)count-selected(${crops_grown})Seçilen seçenek sayısı
selected(field, value)selected(${crops_grown}, 'maize')doğru/yanlış
selected-at(field, index)selected-at(${crops_grown}, 0)Birinci seçilen değer
choice-label(field, value)choice-label(${crops_grown}, 'maize')Bir değerin etiketi

En İyi Uygulamalar

  1. relevant, constraint ve calculate içinde her zaman selected() kullanın — asla = veya != kullanmayın.
  2. Soru tasarımı gerektiriyorsa maksimum seçim sayısını sınırlandırmak için kısıtlama ekleyin.
  3. Sıfır seçim geçerli bir yanıt olduğunda “Hiçbiri” veya “Uygulanamaz” seçeneği ekleyin.
  4. Uzun listeler için (15+ seçenek), aşırı kaydırmayı önlemek için minimal (çoklu seçim açılır listesi) kullanın.
  5. Veriyi dışa aktarıp analiz aracınızda dize bölme kullanın — boşlukla ayrılmış biçim, pivot yapmadan önce bölme gerektirir.

Sınırlamalar

  • Select_multiple değerleri = ile doğrudan karşılaştırılamaz. Her zaman selected() kullanın.
  • Kompakt görünüm çok uzun seçenek etiketleri için iyi görünmeyebilir.
  • Seçenekleri choice_filter ile filtrelerken filtreleme tüm görüntülenen seçeneklere uygulanır, select_one ile aynı şekilde.
Bu sayfa yardımcı oldu mu?