select_one_from_file ve select_multiple_from_file, select_one ve select_multiple gibi çalışır; ancak seçenekleri choices çalışma sayfasında tanımlamak yerine forma eklenen harici bir CSV veya XML dosyasından yükler. Bu, seçenek listesi çok uzun olduğunda, sık sık değiştiğinde veya formun tamamını yeniden oluşturmadan güncellenmesi gerektiğinde kullanışlıdır.

Temel XLSForm Tanımı

typenamelabel
select_one_from_file health_facilities.csvfacilitySağlık tesisini seçin
select_multiple_from_file crops.csvcropsHane hangi ürünleri yetiştiriyor?

Tür adından sonra gelen dosya adı, formu yüklerken eklediğiniz dosyanın adıyla eşleşmelidir.

CSV dosya biçimi

CSV dosyanızın en az iki sütunu olmalıdır: name (saklanan değer) ve label (görüntülenen metin). Filtreleme için istediğiniz sayıda ek sütun ekleyebilirsiniz.

health_facilities.csv:

  name,label,district,type
HF001,Nairobi Central Clinic,Nairobi,clinic
HF002,Westlands Health Centre,Nairobi,health_centre
HF003,Kisumu District Hospital,Kisumu,hospital
  

Seçenekleri filtreleme

Yalnızca geçerli bağlamla eşleşen seçenekleri göstermek için choice_filter sütununu kullanın. CSV sütunlarına doğrudan sütun adlarıyla başvurun (${} olmadan):

typenamelabelchoice_filter
select_one districts.csvdistrictİlçe seçin
select_one_from_file health_facilities.csvfacilityTesis seçindistrict = ${district}

Bu örnekte yalnızca seçilen ilçedeki tesisler görüntülenir. choice_filter içindeki district, CSV dosyasındaki district sütununa başvurur; ${district} ise district adlı form alanına başvurur.

Kullanım Alanları

Dosyadan seçim soruları yaygın olarak şunlar için kullanılır:

  1. Uzun seçenek listeleri — sağlık tesisleri, okullar, köyler, tür listeleri (yüzlerce veya binlerce öğe)
  2. Sık güncellenen listeler — ana liste anket turları arasında değiştiğinde yalnızca CSV’yi güncelleyin, formu yeniden oluşturmaya gerek yok
  3. Paylaşılan referans verileri — birden fazla formda kullanılan tek bir CSV dosyası
  4. Filtreli basamaklı seçimler — tüm bölge/ilçe/köyleri tek dosyada yükleyin, ardından üst seçime göre filtreleyin

Dosyayı ekleme

Formunuzu rtSurvey’e yüklediğinizde, CSV dosyasını medya eki olarak ekleyin. Form tanımındaki dosya adı, ekin dosya adıyla tam olarak eşleşmelidir.

Dosyadan seçim ile choice-label() kullanımı

Bir not veya hesaplama alanında seçilen seçeneğin etiketini görüntülemek için:

typenamelabelcalculation
select_one_from_file health_facilities.csvfacilityTesis seçin
calculatefacility_labelchoice-label(${facility}, ${facility})
notesummarySeçilen tesis: ${facility_label}

En İyi Uygulamalar

  1. Mobil cihazlarda iyi performans için CSV dosyalarınızı 5.000 satırın altında tutun.
  2. Her zaman name ve label sütununu ekleyin — ek sütunlar isteğe bağlıdır.
  3. Basamaklı seçimler için üst sütunu olan tek bir CSV kullanın ve choice_filter ile filtreleyin.
  4. Sütun yapısında önemli değişiklikler yaparken CSV dosya adlarını sürümlendirin (örn. facilities_v3.csv).
  5. Filtreleme ifadelerini dikkatlice test edin — choice_filter içindeki bir yazım hatası sessizce hiçbir seçenek göstermez.

Sınırlamalar

  • Çok büyük CSV dosyaları (10.000+ satır), özellikle düşük kaliteli cihazlarda form yüklemeyi yavaşlatabilir.
  • CSV dosyaları formla birlikte yüklenmelidir — çalışma zamanında bir URL’den getirilemezler (dinamik aramalar için search() veya pulldata() kullanın).
  • select_multiple_from_file istemciler arasında daha az yaygın desteklenir — kullanmadan önce uyumluluğu doğrulayın.

search() ile karşılaştırma

select_one_from_filesearch() görünümü
Seçenek kaynağıEkli CSV/XML dosyasıSunucu tarafı veritabanı sorgusu
Çevrimdışı çalışırEvet (dosya paketlenmiş)Bağlantı gerektirir
Seçenek sayısıCihaz belleğiyle sınırlıSınırsız (sayfalanmış)
Gerçek zamanlı veriHayırEvet

Büyük, sık değişen veya sunucu taraflı veri kümeleri için Dinamik Arama bölümüne bakın.

Bu sayfa yardımcı oldu mu?