Actions

Check survey logic - Advanced/ro: Difference between revisions

From LimeSurvey Manual

(Created page with "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ă a...")
(Created page with "<center>Fișier:Syntax_highlighting_extra_comma.png</center>")
Line 105: Line 105:
<center>[[File:Syntax_highlighting_parantheses.png]]</center>
<center>[[File:Syntax_highlighting_parantheses.png]]</center>


<center>[[File:Syntax_highlighting_extra_comma.png]]</center>
<center>[[Fișier:Syntax_highlighting_extra_comma.png]]</center>





Revision as of 08:42, 8 November 2023


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:


Fișier:show_logic_file.jpg


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])).


Template:Notă


  • 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.


Template:Notă

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:

  1. Verde / Albastru deschis: O variabilă care face referire la o întrebare mai devreme în sondaj
  2. Albastru : O funcție
  3. Gri: O expresie șir
  4. Maro: O expresie TOKEN (date participant)
  5. Negru: Operator

Lucruri de verificat:

  1. Violet: O variabilă care face referire la o întrebare mai târziu în sondaj. De obicei, aceasta este o eroare și trebuie verificată.
  2. 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ă”:



  Atenție : Rețineți că LimeSurvey nu permite administratorilor de sondaj să creeze întrebări care folosesc același cod de întrebare. Cu toate acestea, s-ar putea întâmpla să existe coduri de întrebare similare într-un sondaj dacă importați un grup de întrebări sau o întrebare care utilizează același cod de întrebare ca una dintre întrebările dvs. deja definite. Întrebarea poate fi încă importată, deoarece ID-urile întrebării sunt diferite. Cu toate acestea, dacă doriți să exportați rezultatele sondajului pentru a explora în continuare rezultatele sondajului (R sau SPSS), aveți grijă deoarece codul întrebării este văzut ca o variabilă!



}}

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:


Fișier:Syntax_highlighting_extra_comma.png


Here are many good examples on the usage of syntax highlighting.


Bad custom JavaScript

The JavaScript errors will also be highlighted in the survey logic check:


Speeding editing and validation

All of the syntax-highlighted text has tooltips embedded, which are clickable:

  1. Tooltips
    • Functions - hovering the mouse lets you see the purpose and syntax definition of the function;
    • Variable Names - hovering the mouse lets you see the position (group, question sequence), question text, and allowable answers for the question.
  2. Actions
    • Variable Names - clicking on the variable name opens a new window that allows you to edit the question. This makes it easy to navigate and verify logic - simply keep clicking on variable names of relevance or validation criteria for the question to see where they come from and how they are used.


Examples

The following examples are taken from the ExpressionScript sample surveys. You can find screenshots of running surveys, explanations, and downloads on that page.


Body Mass Index

Here are screenshots of this example.

This is the question-reorder view of the Body Mass Index calculation. You can see the relevance equations for weight, height, and BMI under the Question column:



For a better survey overview, check the survey logic page:



This survey example is also a good example of nested if() statements to generate the "weightstatus".


Cascading logic

Here are screenshots of this example.

It shows the subquestion validation logic that is automatically generated when you use array_filter and array_filter_exclude. This example also shows how you can substitute the tailored "Other" value (the answer for Q02_other is Q01_other).



Q05 in this example shows simultaneous use of array_filter and array_filter_exclude on Q01 and Q02, respectively. This example demonstrates cascading array_filter capabilities. Note that one of the main reasons for showing the question and subquestion level validation criteria is to help ensure you have not made any typos in specifying the array_filter or array_filter_exclude variable names (or in case you use different variable names for your list of filtered subquestions). If you have such typos, all the invalid variable names will appear in red indicating that they are undefined, letting you quickly fix the problem.



Dynamic relevance

This example demonstrates dynamic cascading relevance logic to control display of question visibility. You can download this example here.

Also note that questions are displayed only if certain validation criteria are met. For example, if a person states that she has 2 kids, certain questions have to be filled in by the respondent (kid1 and kid2).


Group-level relevance

This example shows how group-level relevance appears in the logic check. Here are screenshots of the example described below.

As you can see, the group-level relevance equation (cohabs > 1 && p1_rel != "") appear in the grey Person 2 row for G-2.

You may also notice that all of the questions are mandatory. However, if the group is irrelevant, so are all its questions. As a result, those questions are only truly mandatory if the group is relevant.

You may also note that certain questions are displayed only if the answer to the previous question is not empty. You may see below that if p2_sex is not filled in, p2_name is not going to be displayed, even though it is a mandatory questions. The mandatory question p2_age is also not going to be displayed if p2_name is not filled in. These questions can be considered "conditionally mandatory".

Additionally, note that the tip messages are also automatically created for you. They are organized by value range (min/max), sum value range (min/max/equals), number of answers (min/max), etc (it depends on the used question type and active attributes). Sometimes you want to validate an answer range but don't want to display what might appear to be silly validation tips to the user. In such cases, you can use the hide_tip question option (as in this case, to avoid telling the user that the age must be between 0 and 115 unless they try to enter a bad value - see p2_age).


Comma as radix (decimal) separator

Although LimeSurvey fully supports the use of comma as radix (decimal) separator at run-time, you must still use a decimal as the radix separator at the design-time (e.g., when specifying min/max values in advanced question attributes). The working example can be found here.

Also, remember that the validation logic is created for you automatically from the enabled question attributes. The equations may look overwhelming, but you don't need to worry about them.