Anket mantığını denetle - Gelişmiş
From LimeSurvey Manual
Genel
Karmaşık anketler oluşturmanıza ve bunları kolayca sürdürmenize yardımcı olan önemli bir seçenek Anket mantığını denetle seçeneğidir.
Anketin geliştirilmesi ve test edilmesi sırasında ve etkinleştirmeden önce, anket mantığını doğrulamak çok önemlidir. Karmaşık ilinti, uyarlama ve geçerlilik denklemleri kullandığınızda bu durum özellikle geçerlidir; anketi çalıştırdığınızda hiçbir şeyin bozulmayacağından emin olmanız gerekir.
Bu özellik, anketinizin, grupların ve soruların doğruluğunu hızlıca doğrulamanızı sağlar. Ankete ilişkin ayarların altında yer alan üst çubuk menü seçeneklerinden erişilebilir. Araçlar menüsü üzerinden kullanılabilir:
Yukarıda görebileceğiniz gibi, bu seçeneği bir ankette kullanılan her dil için ayrı ayrı olmak üzere dört kez çalıştırabilirsiniz.
Açıklama
Anket mantığını denetle seçeneği, her soru ve grup için belirttiğiniz her şeyi (ör. ad, yazı, yardım, koşullar/ilinti, geçerlilik kuralları, öntanımlı değerler, alt sorular, yanıtlar) kullanışlı bir tablo biçiminde gösterir. Hataları vurgular ve söz konusu soru veya grupları düzenlemek için soru ile grup kimliklerine (veya denklemlerde kullanılan değişkenlere) tıklayarak yeni tarayıcı sekmeleri açmanızı sağlar. Bu sayede hataları hızlıca düzenleyebilir ve anketi etkinleştirmeden önce doğruluğunu onaylamak için mantık denetimi sayfasını yenileyebilirsiniz.
Görünüm, araştırmacılar ve çalışma sponsorları tarafından da okunabilecek şekilde tasarlanmıştır; böylece anket tasarımının ve mantığının doğruluğunu doğrulayabilirler. Anket mantığının denetlenmesi, etkin bir anketteki tüm ifadelerin önbelleğini günceller.
Aşağıdaki sütunları içerir:
- # - Grup ve Soru sıra sayılarını 0'dan başlayarak gösterir.
- Ad [kimlik] - grup/soru/alt soru için soru kodunu gösterir. Bu kodlar ifadelerde değişken olarak kullanılabilir. Kimlik, soru kimliği (QID) veya grup kimliğidir (GID). Bu alan ayrıca soru türünü de gösterir (ör. Birkaç seçim [M])).
- İlinti [Geçerlilik] (Öntanımlı) - aşağıdakileri gösterir:
- İlinti - soru veya grup için söz dizimi vurgulanmış ilinti denklemi. Her zaman doğruysa (her senaryoda gösterilecekse) değer 1 olur.
- Geçerlilik - ExpressionScript, seçilen soru özniteliklerine (ör. en az/en çok yanıt sayısı, en az/en çok/eşit toplam değerleri, en az/en çok bireysel değerler veya kurallı ifade doğrulaması) dayanarak geçerlilik denklemini otomatik olarak oluşturur. Bu bölüm, hatalı bir şey olup olmadığını (ör. tanımlanmamış değişkenler) anlayabilmeniz için oluşturulan geçerlilik denklemini gösterir.
- Soru düzeyindeki geçerlilik, yukarıda açıklanan soru özniteliklerini doğrulamak için gereken denklemi gösterir
- Alt soru düzeyindeki geçerlilik, array_filter, array_filter_exclude ve exclusive_option öğelerini uygulamak için gereken denklemi gösterir
- Öntanımlı - sorunun öntanımlı bir değeri varsa burada söz dizimi vurgulanmış olarak gösterilir (öntanımlı değer bir ifade olabileceğinden).
- Yazı [Yardım] (İpucu) - aşağıdakileri gösterir:
- Yazı - grubun, sorunun, alt sorunun veya yanıtın yazısı. Gömülü uyarlamaları göstermek için söz dizimi vurgulanmıştır; böylece uyarlamada kullanmayı planladığınız tüm değişkenleri tanımladığınızdan emin olabilirsiniz.
- Yardım - sorunun yardım yazısını gösterir; bu da söz dizimi vurgulanmıştır.
- İpucu - soru özniteliklerine dayanarak dahili olarak oluşturulan geçerlilik ipucunu gösterir. Aynı ipucu tüm anket stillerinde, ayrıca yazdırılabilir anket ve veri girişi ekranlarında kullanılır.
- Soru öznitelikleri - bu sorunun ilgili tüm soru özniteliklerinin bulunduğu bir tabloyu gösterir. Denklem olabilecek öznitelikler, doğruluklarını denetleyebilmeniz için söz dizimi vurgulu olarak gösterilir.
Satırlar aşağıdaki gibi renklendirilir:
- Gruplar - açık gri arka planla gösterilir
- Sorular - açık yeşil arka planla gösterilir
- Alt sorular - soluk sarı arka planla gösterilir
- Yanıtlar - düz beyaz arka planla gösterilir
Yanıtların İlinti sütununda ek bir özniteliği vardır:
- Değer - hesaplamalarda kullanılan öntanımlı dahili değerdir. Değerlendirmeler kullanıyorsanız bu değer, değerlendirme değeri olacaktır. Aksi halde yanıt adıyla aynı olur.
Kullanım
Sayfanın üst kısmında bir özet iletisi bulunur. Her şey yolundaysa "Bu ankette bir söz dizimi hatası bulunamadı" veya "Bu grup" ya da "Bu soru", "tek başına herhangi bir söz dizimi hatası içermiyor" yazar. Aksi durumda "X sorunun düzeltilmesi gereken söz dizimi hataları var" yazar.
Söz dizimi hataları bulunan her sorunun en soldaki sütununun (yani #) arka planı kırmızıyla renklendirilir. Ayrıca sorunun en az hata sayısını belirten bir uyarı Ad [kimlik] sütununun altında görüntülenir. Aşağıdaki hatalar yaygındır:
- Tanımlanmamış değişken - tüm değişkenlerinizi tanımlamadıysanız ya da array_filter'ı yanlış yazdıysanız (veya array_filter için farklı yanıt seçenekleri kümeleri kullandıysanız), bazı geçerlilik sorularınızda hata görüntülenir. Tanımlanmamış değişkenler kırmızı yazıyla ve kırmızı çizgiyle çerçevelenmiş olarak gösterilir.
- Hatalı söz dizimi - ilinti denklemlerini kullanmaya başladığınızda fazla veya eksik parantez kullanabilirsiniz. Bu tür söz dizimi sorunları vurgulanır ve kırmızı çerçeveyle gösterilir. Fareyi kırmızı çerçeveli bu tür bir metnin üzerine getirirseniz bir araç ipucu hatayı açıklar.
ExpressionScript söz diziminde renkler
Koşullar ve denklemler, ne gördüğünüzü daha kolay anlayabilmeniz için söz dizimi vurgulamasıyla gösterilir:
- Yeşil / Açık mavi: Ankette daha önceki bir soruya başvuran değişken
- Mavi: İşlev
- Gri: Dize ifadesi
- Kahverengi: Bir TOKEN ifadesi (katılımcı verileri)
- Siyah: İşleç
Denetlenmesi gerekenler:
- Mor: Ankette daha sonraki bir soruya başvuran değişken. Genellikle bu bir hatadır ve denetlenmelidir.
- Kırmızı veya kırmızı çerçeve: Var olmayan bir değişken ya da önceki bir soruya başvuru veya bir söz dizimi hatası - genellikle denetlenmesi gerekir.
Tanımlanmamış değişkenler
Tanımlanmamış değişkenler kullanılırsa ilgili değişken adı kırmızıyla renklendirilir ve kırmızı bir çizgiyle çevrelenir. Fareyi değişken adının üzerine getirirseniz "tanımlanmamış değişken" yazar:


}}
Hatalı sözdizimi
İfadelerle ilgili hataların çoğu hatalı sözdiziminden kaynaklanır. Bunun nedeni, anket yöneticilerinin genellikle bir küme parantezi eklemeyi unutmaları, parantezleri doğru kullanmamaları veya ifadeleri yanlış kullanmalarıdır:


Burada sözdizimi vurgulamanın kullanımına ilişkin birçok iyi örnek bulabilirsiniz.
Hatalı özel JavaScript
JavaScript hataları da anket mantığı denetiminde vurgulanır:

Düzenleme ve doğrulamayı hızlandırma
Sözdizimi vurgulanmış tüm metinlerde, tıklanabilir araç ipuçları bulunur:
- Araç ipuçları
- Fonksiyonlar - fare imlecini üzerine getirdiğinizde fonksiyonun amacını ve sözdizimi tanımını görebilirsiniz;
- Değişken adları - fare imlecini üzerine getirdiğinizde sorunun konumunu (grup, soru sırası), soru yazısını ve izin verilen yanıtları görebilirsiniz.
- Eylemler
- Değişken adları - değişken adına tıkladığınızda soruyu düzenlemenizi sağlayan yeni bir pencere açılır. Bu, mantıkta gezinmeyi ve doğrulamayı kolaylaştırır - sorunun uygunluk veya geçerlilik ölçütlerindeki değişken adlarına tıklamaya devam ederek bunların nereden geldiğini ve nasıl kullanıldığını görebilirsiniz.
Örnekler
Aşağıdaki örnekler ExpressionScript örnek anketlerinden alınmıştır. Çalışan anketlerin ekran görüntülerini, açıklamaları ve indirme bağlantılarını bu sayfada bulabilirsiniz.
Vücut Kitle İndeksi
Bu örneğin ekran görüntüleri burada.
Bu, Vücut Kitle İndeksi hesaplamasının soru yeniden sıralama görünümüdür. Kilo, boy ve VKİ için uygunluk denklemlerini Soru sütununun altında görebilirsiniz:

Anketin daha iyi bir özetini görmek için anket mantığı sayfasına bakın:

Bu anket örneği, "weightstatus" değerini üretmek için iç içe if() ifadelerinin kullanımına da iyi bir örnektir.

Basamaklı mantık
Bu örneğin ekran görüntüleri burada.
array_filter ve array_filter_exclude kullandığınızda otomatik olarak oluşturulan alt soru geçerlilik mantığını gösterir. Bu örnek ayrıca özelleştirilmiş "Diğer" değerinin nasıl yerine konabileceğini de gösterir (Q02_other yanıtı Q01_other'dır).

Bu örnekteki Q05, sırasıyla Q01 ve Q02 üzerinde array_filter ve array_filter_exclude'un eş zamanlı kullanımını gösterir. Bu örnek, basamaklı array_filter özelliklerini sergiler. Soru ve alt soru düzeyindeki geçerlilik ölçütlerinin gösterilmesinin ana nedenlerinden birinin, array_filter veya array_filter_exclude değişken adlarını belirtirken (veya süzülmüş alt soru listeniz için farklı değişken adları kullanırsanız) yazım hatası yapmadığınızdan emin olmanıza yardımcı olmak olduğunu unutmayın. Böyle yazım hatalarınız varsa, tüm geçersiz değişken adları tanımsız olduklarını belirtmek üzere kırmızı görünür ve sorunu hızlıca düzeltmenizi sağlar.

Dinamik uygunluk
Bu örnek, soruların görünürlüğünü denetlemek için dinamik basamaklı uygunluk mantığını gösterir. Bu örneği buradan indirebilirsiniz.
Ayrıca soruların yalnızca belirli geçerlilik ölçütleri karşılandığında görüntülendiğini unutmayın. Örneğin, bir kişi 2 çocuğu olduğunu belirtirse, katılımcının bazı soruları doldurması gerekir (kid1 ve kid2).

Grup düzeyinde ilinti
Bu örnek, grup düzeyindeki ilintinin mantık denetiminde nasıl göründüğünü gösterir. Aşağıda açıklanan örneğin ekran görüntülerine buradan ulaşabilirsiniz.
Gördüğünüz gibi, grup düzeyindeki ilinti denklemi (cohabs > 1 && p1_rel != "") G-2 için gri renkli Person 2 satırında görünür.
Ayrıca tüm soruların zorunlu olduğunu fark edebilirsiniz. Ancak grup ilgisiz ise tüm soruları da ilgisizdir. Sonuç olarak, bu sorular yalnızca grup ilgili olduğunda gerçekten zorunludur.
Ayrıca bazı soruların yalnızca önceki sorunun yanıtı boş değilse görüntülendiğini fark edebilirsiniz. Aşağıda, p2_sex doldurulmamışsa p2_name zorunlu bir soru olmasına rağmen görüntülenmeyeceğini görebilirsiniz. Zorunlu soru olan p2_age de p2_name doldurulmamışsa görüntülenmeyecektir. Bu sorular "koşullu olarak zorunlu" kabul edilebilir.
Ayrıca ipucu mesajlarının da sizin için otomatik olarak oluşturulduğunu unutmayın. Bunlar değer aralığına (min/maks), toplam değer aralığına (min/maks/eşittir), yanıt sayısına (min/maks) vb. göre düzenlenir (kullanılan soru türüne ve etkin özniteliklere bağlıdır). Bazen bir yanıt aralığını doğrulamak, ancak kullanıcıya gereksiz görünebilecek geçerlilik ipuçlarını göstermek istemeyebilirsiniz. Bu gibi durumlarda hide_tip soru seçeneğini kullanabilirsiniz (bu örnekte olduğu gibi; kullanıcı hatalı bir değer girmeye çalışmadıkça yaşın 0 ile 115 arasında olması gerektiğini söylememek için - bkz. p2_age).

Ondalık ayırıcı olarak virgül
LimeSurvey, çalışma zamanında ondalık ayırıcı olarak virgül kullanımını tam olarak desteklese de tasarım zamanında (örneğin gelişmiş soru özniteliklerinde min/maks değerleri belirtirken) ondalık ayırıcı olarak yine de nokta kullanmalısınız. Çalışan örneği burada bulabilirsiniz.
Ayrıca geçerlilik mantığının, etkinleştirilen soru özniteliklerinden sizin için otomatik olarak oluşturulduğunu unutmayın. Denklemler karmaşık görünebilir, ancak bunlar hakkında endişelenmenize gerek yoktur.

