Verificați logica sondajului - Avansat
From LimeSurvey Manual
General
O opțiune importantă care vă ajută să creați și să mențineți cu ușurință sondaje complexe este „Verificați logica sondajului”.
Pe parcursul dezvoltării și testării sondajului și înainte de a-l activa, este foarte important să se valideze logica sondajului. Acest lucru este valabil mai ales atunci când utilizați relevanță complexă, adaptare și ecuații de validare - trebuie să vă asigurați că nimic nu se va rupe atunci când rulați sondajul.
Această funcție vă permite să validați rapid acuratețea sondajului, grupurilor și întrebărilor dvs. Acesta poate fi accesat din opțiunile din meniul barei de sus situate sub setările legate de sondaj. Este disponibil prin meniul Tools:
După cum puteți observa mai sus, puteți rula această opțiune de patru ori, pentru fiecare limbă folosită într-un sondaj.
Descriere
Opțiunea „Verificați logica sondajului” arată tot ce ați specificat pentru fiecare întrebare și grup (de exemplu, nume, text, ajutor, condiții/relevanță, reguli de validare, valori implicite, subîntrebări, răspunsuri) într-un format tabelar convenabil. Evidențiază erorile și vă permite să faceți clic pe ID-urile de întrebare și grup (sau variabilele utilizate în cadrul ecuațiilor) pentru a deschide noi file de browser pentru a edita acele întrebări sau grupuri. Acest lucru facilitează editarea rapidă a oricăror erori și reîmprospătarea paginii de verificare a logicii pentru a confirma acuratețea sondajului înainte de a-l activa.
Afișajul este, de asemenea, conceput pentru a fi lizibil de către cercetători și sponsorii studiului, astfel încât aceștia să poată valida acuratețea designului și logicii sondajului. Verificarea logicii sondajului actualizează memoria cache pentru toate expresiile utilizate în cadrul unui sondaj activ.
Include următoarele coloane:
- # - arată numărul de secvențe de grup și întrebări, începând de la 0.
- Nume [ ID] - arată codul întrebării pentru grup/întrebare/subîntrebare. Aceste coduri pot fi folosite ca variabile în cadrul expresii. ID este ID-ul întrebării (QID) sau ID-ul grupului (GID). Acest câmp arată, de asemenea, tipul de întrebare (de exemplu, cu alegere multiplă [M])).
- Relevanţă [ Validare] (Implicit) - arată următoarele:
- Relevanță - ecuația relevanței evidențiată de sintaxă pentru întrebare sau grup. Dacă este întotdeauna adevărată (pentru a fi afișată în orice scenariu), valoarea va fi „1'.
- Validare - ExpressionScript generează automat validare ecuație pe baza atributelor întrebării selectate (de exemplu, numărul min/max de răspunsuri, valori min/max/egal sumă, valori individuale min/max sau validarea expresiei regulate). Această secțiune arată ecuația de validare generată, astfel încât să puteți detecta dacă există erori (cum ar fi variabile nedefinite).
- Validarea la nivel de întrebare arată ecuația necesară pentru a verifica atributele întrebării descrise mai sus
- **Validarea la nivel de subîntrebare arată ecuația necesară pentru implementarea array_filter, array_filter_exclude și exclusive_option
- Implicit - dacă întrebarea are o valoare implicită, aceasta este afișată aici, evidențiată de sintaxă (deoarece implicit ar putea fi o expresie).
- Text [ Ajutor] (Sfat) - arată următoarele:
- Text - textul grupului, întrebarea, subîntrebarea sau răspunsul. Este evidențiat de sintaxă pentru a afișa orice croitorie încorporat, permițându-vă astfel să verificați că ați declarat toate variabilele pe care intenționați să le utilizați în croitorie.
- Ajutor - aceasta arată textul de ajutor pentru întrebare, de asemenea evidențiat de sintaxă.
- Sfat - aceasta arată sfatul de validare generat intern, bazat pe atributele întrebării. Același sfat este folosit în toate stilurile de sondaj, plus în ecranele de anchetă imprimabilă și de introducere a datelor.
- Atribute întrebări - aceasta arată un tabel cu toate atributele relevante ale întrebării pentru această întrebare. Atributele care ar putea fi ecuații sunt evidențiate de sintaxă, astfel încât să le puteți valida acuratețea.
Rândurile au coduri de culoare după cum urmează:
- Grupuri - sunt afișate cu un fundal gri deschis
- Întrebări - sunt afișate cu un fundal verde deschis
- ' Subîntrebările' - sunt afișate cu un fundal galben pal
- Răspunsuri - sunt afișate cu un fundal alb simplu
Răspunsurile au un atribut suplimentar în coloana Relevanță:
- Valoare - aceasta este valoarea internă implicită utilizată de calcule. Dacă utilizați Evaluări, aceasta va fi valoarea evaluării. În caz contrar, acesta va fi același cu numele răspunsului.
Utilizare
În partea de sus a paginii, există un mesaj rezumat. Dacă totul este bine, va spune „Nu au fost detectate erori de sintaxă în acest sondaj”, sau „Acest grup” sau „Această întrebare”, „în sine, nu conține erori de sintaxă”. Dacă opusul este adevărat, se va spune „Întrebările X au erori de sintaxă care trebuie corectate”.
Fiecare întrebare care are erori de sintaxă primește fundalul coloanei din cea mai din stânga (adică #) cu coduri de culoare roșie. De asemenea, sub coloana „Nume [ID]” va fi afișat un avertisment care indică numărul minim de erori ale unei întrebări. Următoarele erori sunt frecvente:
- Variabilă nedefinită - dacă nu ați definit toate variabilele sau ați introdus greșit array_filter (sau diferite seturi de opțiuni de răspuns pentru array_filter), atunci unele dintre întrebările dvs. de validare vor afișa erori . Variabilele nedefinite sunt afișate în text roșu, în casete cu o linie roșie.
- Sintaxă greșită - pe măsură ce începeți să utilizați ecuații de relevanță, este posibil să folosiți prea multe sau prea puține paranteze. Astfel de probleme de sintaxă sunt evidențiate și marcate cu roșu. Dacă treceți cu mouse-ul peste orice astfel de text cu casete roșii, un sfat instrument va descrie eroarea.
Culorile din sintaxa ExpressScript
Condițiile și ecuațiile sunt evidențiate de sintaxă pentru a înțelege mai ușor la ce vă uitați:
- Verde / Albastru deschis: O variabilă care face referire la o întrebare mai devreme în sondaj
- Albastru : O funcție
- Gri: O expresie șir
- Maro: O expresie TOKEN (date participant)
- Negru: Operator
Lucruri de verificat:
- Violet: O variabilă care face referire la o întrebare mai târziu în sondaj. De obicei, aceasta este o eroare și trebuie verificată.
- Cadrul roșu sau roșu: O variabilă inexistentă sau referință la o întrebare anterioară sau o eroare de sintaxă - de obicei trebuie verificată.
Variabile nedefinite
Dacă sunt utilizate variabile nedefinite, numele variabilei respective va fi codificat cu culori în roșu și înconjurat de o linie roșie. Dacă treceți mouse-ul peste numele variabilei, acesta va spune „variabilă nedefinită”:
}}
Sintaxă proastă
Cele mai multe dintre greșelile legate de expresie sunt legate de sintaxa proastă. Acest lucru este legat de faptul că, de obicei, administratorii sondajului ratează să adauge o paranteză, să folosească corect parantezele sau folosesc greșit expresiile:
Iată multe exemple bune despre utilizarea evidențierea sintaxei.
JavaScript personalizat prost
Erorile JavaScript vor fi, de asemenea, evidențiate în verificarea logicii sondajului:
Accelerarea editării și validării
Tot textul evidențiat de sintaxă are încorporate sfaturi cu instrumente, pe care se poate face clic:
- Sfaturi instrumente
- Funcții - trecerea mouse-ului vă permite să vedeți scopul și definiția sintaxei funcției;
- Nume variabile - plasarea mouse-ului vă permite să vedeți poziția (grupul, secvența întrebărilor), textul întrebării și răspunsurile permise pentru întrebare.
- Acțiuni
- Nume variabile - făcând clic pe numele variabilei se deschide o nouă fereastră care vă permite pentru a edita întrebarea. Acest lucru facilitează navigarea și verificarea logicii - pur și simplu continuați să faceți clic pe numele variabilelor relevante sau pe criteriile de validare pentru întrebare pentru a vedea de unde provin și cum sunt utilizate.
Exemple
Următoarele exemple sunt preluate din ExpressionScript sample surveys. Puteți găsi capturi de ecran ale sondajelor în curs, explicații și descărcări pe pagina respectivă.
Indicele de masă corporală
Iată capturi de ecran ale acestui exemplu.
Aceasta este vizualizarea întrebare-reordonare a calculului indicelui de masă corporală. Puteți vedea ecuațiile de relevanță pentru greutate, înălțime și IMC în coloana „Întrebare”:
Pentru o prezentare mai bună a sondajului, verificați pagina cu logica sondajului:
Acest exemplu de sondaj este, de asemenea, un bun exemplu de instrucțiuni if() imbricate pentru a genera „weightstatus”.
Logica în cascadă
Iată capturi de ecran ale acestui exemplu.
Acesta arată logica de validare a subîntrebărilor care este generată automat atunci când utilizați array_filter și array_filter_exclude. Acest exemplu arată, de asemenea, cum puteți înlocui valoarea personalizată „Other” (răspunsul pentru Q02_other este Q01_other).
Q05 în acest exemplu arată utilizarea simultană a array_filter și array_filter_exclude pe Q01 și, respectiv, Q02. Acest exemplu demonstrează capabilitățile în cascadă array_filter. Rețineți că unul dintre motivele principale pentru afișarea criteriilor de „validare” la nivel de întrebare și subîntrebări este acela de a vă asigura că nu ați făcut greșeli de scriere în specificarea numelor de variabile array_filter sau array_filter_exclude (sau în cazul în care utilizați nume de variabile diferite pentru lista dvs. de subîntrebări filtrate). Dacă aveți astfel de greșeli de scriere, toate numele variabilelor invalide vor apărea în roșu, indicând faptul că sunt nedefinite, permițându-vă să remediați rapid problema.
Relevanța dinamică
Acest exemplu demonstrează logica dinamică a relevanței în cascadă pentru a controla afișarea vizibilității întrebărilor. Puteți descărca acest exemplu aici.
De asemenea, rețineți că întrebările sunt afișate numai dacă sunt îndeplinite anumite criterii de validare. De exemplu, dacă o persoană declară că are 2 copii, anumite întrebări trebuie să fie completate de respondent (kid1 și kid2).
Relevanța la nivel de grup
Acest exemplu arată cum apare relevanța la nivel de grup în verificarea logică. Iată capturi de ecran ale exemplului descris mai jos.
După cum puteți vedea, ecuația de relevanță la nivel de grup (cohabs > 1 && p1_rel != "") apare în rândul gri Persoana 2 pentru G-2.
De asemenea, puteți observa că toate întrebările sunt obligatorii. Cu toate acestea, dacă grupul este irelevant, la fel sunt și toate întrebările sale. Prin urmare, acele întrebări sunt cu adevărat obligatorii doar dacă grupul este relevant.
De asemenea, puteți observa că anumite întrebări sunt afișate numai dacă răspunsul la întrebarea anterioară nu este gol. Puteți vedea mai jos că, dacă p2_sex nu este completat, p2_name nu va fi afișat, deși este o întrebare obligatorie. De asemenea, întrebarea obligatorie p2_age nu va fi afișată dacă p2_name nu este completată. Aceste întrebări pot fi considerate „obligatorii condiționat”.
În plus, rețineți că mesajele „sfat” sunt create automat pentru dvs. Acestea sunt organizate după intervalul de valori (min/max), intervalul de sumă (min/max/egal), numărul de răspunsuri (min/max), etc (depinde de tipul de întrebare utilizat și de atributele active). Uneori doriți să validați un interval de răspuns, dar nu doriți să afișați ceea ce ar putea părea a fi sfaturi de validare stupide pentru utilizator. În astfel de cazuri, puteți utiliza opțiunea de întrebare hide_tip (ca și în acest caz, pentru a evita să spuneți utilizatorului că vârsta trebuie să fie între 0 și 115 decât dacă încearcă să introducă o valoare proastă - vezi p2_age ).
Virgula ca separator radix (zecimal)
Deși LimeSurvey acceptă pe deplin utilizarea virgulei ca separator radix (zecimal) în timpul execuției, trebuie să utilizați totuși o zecimală ca separator radix în momentul proiectării (de exemplu, când specificați valori min/max în atributele avansate ale întrebării). Exemplul de lucru poate fi găsit aici.
De asemenea, rețineți că logica de „validare” este creată automat pentru dvs. din atributele de întrebare activate. Ecuațiile pot părea copleșitoare, dar nu trebuie să vă faceți griji pentru ele.