Actions

Check survey logic - Advanced/ro: Difference between revisions

From LimeSurvey Manual

(Created page with "După cum puteți observa mai sus, puteți rula această opțiune de patru ori, pentru fiecare limbă folosită într-un sondaj.")
(Created page with "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 trebui...")
 
(42 intermediate revisions by the same user not shown)
Line 18: Line 18:
După cum puteți observa mai sus, puteți rula această opțiune de patru ori, pentru fiecare limbă folosită într-un sondaj.
După cum puteți observa mai sus, puteți rula această opțiune de patru ori, pentru fiecare limbă folosită într-un sondaj.


=Description=
=Descriere=




The '''Check Survey Logic''' option shows everything that you specified for each question and group (e.g., name, text, help, conditions/relevance, validation rules, defaults, subquestions, answers) in a convenient tabular format. It highlights the errors, and lets you click on the question and group IDs (or variables used within equations) to open new browser tabs to edit those questions or groups. This makes it easy to quickly edit any errors and refresh the logic check page to confirm the accuracy of the survey before activating it.
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.


The display is also designed to be be readable by researchers and study sponsors so that they can validate the accuracy of the survey design and logic. Checking the survey logic updates the cache for all expressions used within an active survey.
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.


It includes the following columns:
Include următoarele coloane:


*'''#''' - shows the Group and Question sequence counts, starting from 0.
*'''#''' - arată numărul de secvențe de grup și întrebări, începând de la 0.


*'''Name <nowiki>[</nowiki>ID]''' - shows the question code for the group/question/subquestion. These codes can be used as variables within [[ExpressionScript - Presentation|expressions]]. '''ID''' is the question id (QID), or group id (GID). This field also shows the [[ExpressionScript - Presentation#Qcode_variable_naming|question type]] (e.g., Multiple choice [M])).
*'''Nume<nowiki> [</nowiki> ID]''' - arată codul întrebării pentru grup/întrebare/subîntrebare. Aceste coduri pot fi folosite ca variabile în cadrul [[ExpressionScript - Prezentare|expresii]]. '''ID''' este ID-ul întrebării (QID) sau ID-ul grupului (GID). Acest câmp arată, de asemenea, [[ExpressionScript - Prezentare#Qcode_variable_naming|tipul de întrebare]] (de exemplu, cu alegere multiplă [M])).




{{Note|To find out more about which variables can be used within expressions, read the following [[ExpressionScript - Presentation#Access_to_Variables|wiki subsection]].}}
{{Notă|Pentru a afla mai multe despre ce variabile pot fi utilizate în expresii, citiți următoarea [[ExpressionScript - Prezentare#Access_la_Variabile|subsecțiunea wiki]].}}




*'''Relevance <nowiki>[</nowiki>Validation] (Default)''' - shows the following:
*'''Relevanţă<nowiki> [</nowiki> Validare] (Implicit)''' - arată următoarele:
**''Relevance'' - the syntax-highlighted [[ExpressionScript - Presentation|relevance equation]] for the question or group. If it is always true (to be shown in any scenario), the value will be '''1'''.
**''Relevanță'' - [[ExpressionScript - Prezentare|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'''.
**''Validation'' - ExpressionScript automatically generates the [[ExpressionScript_Engine_-_Quick_start_guide#Validation|validation equation]] based upon the selected question attributes (e.g., min/max number of answers, min/max/equals sum values, min/max individual values or regular expression validation). This section shows the generated validation equation so that you can detect if there are any errors (such as undefined variables).
**''Validare'' - ExpressionScript generează automat [[ExpressionScript_Engine_-_Quick_start_guide#Validation|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).
***Question-level validation shows the equation needed to verify the above-described question attributes
***Validarea la nivel de întrebare arată ecuația necesară pentru a verifica atributele întrebării descrise mai sus
***Subquestion-level validation shows the equation needed to implement [[QS:Array_filter|array_filter]], [[QS:Array_filter_exclude|array_filter_exclude]], and [[QS:Exclusive_option|exclusive_option]]
* **Validarea la nivel de subîntrebare arată ecuația necesară pentru implementarea [[QS:Array_filter|array_filter]], [[QS:Array_filter_exclude|array_filter_exclude]] și [[QS:Exclusive_option|exclusive_option]]
**''Default'' - if the question has a default value, it is shown here, syntax-highlighted (since the default could be an expression).
**''Implicit '' - dacă întrebarea are o valoare implicită, aceasta este afișată aici, evidențiată de sintaxă (deoarece implicit ar putea fi o expresie).


*'''Text <nowiki>[</nowiki>Help] (Tip)''' - shows the following:
*'''Text<nowiki> [</nowiki> Ajutor] (Sfat)''' - arată următoarele:
**''Text'' - the text of the group, question, subquestion, or answer. It is syntax-highlighted to show any embedded [[ExpressionScript - Presentation#Tailoring.2FPiping|tailoring]], thus letting you verify that you have declared all the variables you plan to use in the tailoring.
**''Text'' - textul grupului, întrebarea, subîntrebarea sau răspunsul. Este evidențiat de sintaxă pentru a afișa orice [[ExpressionScript - Presentation#Tailoring.2FPiping|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.
**''Help'' - this shows the help text for the question, also syntax-highlighted.
**''Ajutor '' - aceasta arată textul de ajutor pentru întrebare, de asemenea evidențiat de sintaxă.
**''Tip'' - this shows the internally generated validation tip, based upon the question attributes. This same tip is used in all survey styles, plus in the printable survey and data entry screens.
**''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.
**''Question Attributes'' - this shows a table of all relevant question attributes for this question. Attributes that might be equations are syntax-highlighted so that you can validate their accuracy.
**''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.


Rows are color coded as follows:
Rândurile au coduri de culoare după cum urmează:
*'''Groups''' - are shown with a light grey background
*'''Grupuri''' - sunt afișate cu un fundal gri deschis
*'''Questions''' - are shown with a light green background
*'''Întrebări''' - sunt afișate cu un fundal verde deschis
*'''Subquestions''' - are shown with a pale yellow background
*' ''Subîntrebările''' - sunt afișate cu un fundal galben pal
*'''Answers''' - are shown with a plain white background
*'''Răspunsuri''' - sunt afișate cu un fundal alb simplu


Answers have an additional attribute in the '''Relevance''' column:
Răspunsurile au un atribut suplimentar în coloana '''Relevanță''':
*'''Value''' - this is the default internal value used by calculations. If you are using [[Assessments]], this will be the assessment value. Otherwise, this will be the same as the answer name.
*'''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.




{{Note|The survey description, welcome and end messages, end URL, Survey data policy notice and label are listed within the Cgeck survey Logic (above the table) if their corresponding fields are not empty!}}
{{Notă|Descrierea sondajului, mesajele de întâmpinare și de final, adresa URL de final, notificarea privind politica privind datele sondajului și eticheta sunt listate în logica sondajului Cgeck (deasupra tabelului) dacă câmpurile lor corespunzătoare nu sunt goale!}}


=Usage=
=Utilizare=




At the top of the page, there is a summary message. If all is well, it will say "No syntax errors detected in this survey", or "This group" or "This question", "by itself, does not contain any syntax errors". If the opposite is true, it will say "X questions have syntax errors that need to be corrected".
Î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”.


Each question that has syntax errors gets the background of its leftmost column (i.e. '''#''') color-coded red. Also, a warning stating the number of minimum errors of a question will be displayed under the '''Name [ID]''' column. The following errors are common:
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:


*[[Check survey logic - Advanced#Undefined variable|Undefined variable]] - if you have not defined all of your variables, or mistyped array_filter (or different sets of answer options for array_filter), then some of your validation questions will show errors. Undefined variables are shown in red text, boxed with a red line.
*[[Verificați logica sondajului - Avansat#Variabilă nedefinită|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.


*[[Check survey logic - Advanced#Bad syntax|Bad syntax]] - as you start to use relevance equations, you may use too many or too few parentheses. Such syntax problems are highlighted and boxed in red. If you hover the mouse over any such red-boxed text, a tool-tip will describe the error.
*[[Verificați logica sondajului - Advanced#Bad syntax|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.


== Colors in ExpressScript syntax ==
== Culorile din sintaxa ExpressScript ==
Conditions and equations are syntaxhighlighted to easier figure out what you are looking at:
Condițiile și ecuațiile sunt evidențiate de sintaxă pentru a înțelege mai ușor la ce vă uitați:
# Green / Light Blue: A variable that references a question earlier in the survey
# Verde / Albastru deschis: O variabilă care face referire la o întrebare mai devreme în sondaj
# Blue: A function
# Albastru : O funcție
# Grey: A string expression
# Gri: O expresie șir
# Brown: A TOKEN expression (participant data)
# Maro: O expresie TOKEN (date participant)
# Black: Operator
# Negru: Operator
Things to check:
Lucruri de verificat:
# Purple: A variable that references a question later in the survey. Usually this is an error and needs to be checked.
# Violet: O variabilă care face referire la o întrebare mai târziu în sondaj. De obicei, aceasta este o eroare și trebuie verificată.
# Red or red frame: A non-existing variable or reference to an earlier question or a syntax error - usually needs to be checked.
# Cadrul roșu sau roșu: O variabilă inexistentă sau referință la o întrebare anterioară sau o eroare de sintaxă - de obicei trebuie verificată.




==Undefined Variables==
==Variabile nedefinite==




If undefined variables are used, the respective variable name will be color-coded in red and surrounded by a red line. If you hover your mouse over the variable name, it will say "undefined variable":
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ă”:




Line 92: Line 92:




{{Alert|title=Attention|text=Please note that LimeSurvey does not allow survey administrators to create questions that use the same question code. However, it could happen to have similar question codes within a survey if you import a question group or a question that uses the same question code as one of your already-defined questions. The question can still be imported because the question ids are different. However, if you wish to export the survey results to further explore the [[Exporting_results|survey results]] (R or SPSS), be careful because the question code is seen as a variable!}}
{{Alert|title=Atenție|text=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 [[Exporting_results|rezultatele sondajului]] (R sau SPSS), aveți grijă deoarece codul întrebării este văzut ca o variabilă!}}




<center>[[File:same_code_name_not_recommended.png]]</center>}}
<center>[[File:same_code_name_not_recommended.png]]</center>}}


==Bad syntax==
==Sintaxă proastă==




Most of the expression-related mistakes are related to bad syntax. This is related to the fact that survey administrators usually miss to add a curly bracket, to properly make use of parentheses, or they use expressions wrongly:
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:




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




Here are many good examples on the usage of [[ExpressionScript How-tos#Syntax_Highlighting|syntax highlighting]].
Iată multe exemple bune despre utilizarea [[ExpressionScript How-tos#Syntax_Highlighting|evidențierea sintaxei]].




===Bad custom JavaScript===
=== JavaScript personalizat prost===




The JavaScript errors will also be highlighted in the survey logic check:
Erorile JavaScript vor fi, de asemenea, evidențiate în verificarea logicii sondajului:




<center>[[File:javascript_error.jpg]]</center>
<center>[[Fișier:javascript_error.jpg]]</center>


=Speeding editing and validation=
=Accelerarea editării și validării=




All of the syntax-highlighted text has tooltips embedded, which are clickable:
Tot textul evidențiat de sintaxă are încorporate sfaturi cu instrumente, pe care se poate face clic:
#Tooltips
#Sfaturi instrumente
#*Functions - hovering the mouse lets you see the purpose and syntax definition of the function;
#*Funcții - trecerea mouse-ului vă permite să vedeți scopul și definiția sintaxei funcției;
#*Variable Names - hovering the mouse lets you see the position (group, question sequence), question text, and allowable answers for the question.
#*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.
#Actions
#Acțiuni
#*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.
#*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.




=Examples=
=Exemple=




The following examples are taken from the [[ExpressionScript sample surveys|ExpressionScript sample surveys]]. You can find screenshots of running surveys, explanations, and downloads on that page.
Următoarele exemple sunt preluate din [[ExpressionScript sample surveys|ExpressionScript sample surveys]]. Puteți găsi capturi de ecran ale sondajelor în curs, explicații și descărcări pe pagina respectivă.




==Body Mass Index==
==Indicele de masă corporală==




Here are [[ExpressionScript sample surveys#Screenshots|screenshots]] of this example.
Iată [[ExpressionScript exemple de sondaje#Screenshots|capturi de ecran]] ale acestui exemplu.


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:
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”:




Line 147: Line 147:




For a better survey overview, check the survey logic page:
Pentru o prezentare mai bună a sondajului, verificați pagina cu logica sondajului:




Line 153: Line 153:




This survey example is also a good example of nested if() statements to generate the "weightstatus".
Acest exemplu de sondaj este, de asemenea, un bun exemplu de instrucțiuni if() imbricate pentru a genera „weightstatus”.




<center>[[File:BMI_logic2.jpg]]</center>
<center>[[File:BMI_logic2.jpg]]</center>


==Cascading logic==
==Logica în cascadă==




Here are [[ExpressionScript sample surveys#Cascading Array Filters|screenshots]] of this example.
Iată [[ExpressionScript exemple de anchete#Cascading Array Filters|capturi de ecran]] ale acestui exemplu.


It shows the subquestion validation logic that is automatically generated when you use [[QS:Array_filter|array_filter]] and [[QS:Array_filter_exclude|array_filter_exclude]]. This example also shows how you can substitute the tailored "Other" value (the answer for Q02_other is Q01_other).
Acesta arată logica de validare a subîntrebărilor care este generată automat atunci când utilizați [[QS:Array_filter|array_filter]] și [[QS:Array_filter_exclude|array_filter_exclude]]. Acest exemplu arată, de asemenea, cum puteți înlocui valoarea personalizată „Other” (răspunsul pentru Q02_other este Q01_other).




Line 169: Line 169:




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




Line 175: Line 175:




==Dynamic relevance==
==Relevanța dinamică==




This example demonstrates dynamic cascading relevance logic to control display of question visibility. You can download this example [[ExpressionScript sample surveys#Download|here]].
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 [[ExpressionScript exemple de sondaje#Download|aici]].


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




<center>[[File:dynamic_relevance_logic1.jpg]]</center>
<center>[[Fișier:dynamic_relevance_logic1.jpg]]</center>


==Group-level relevance==
==Relevanța la nivel de grup==




This example shows how group-level relevance appears in the logic check. Here are [[ExpressionScript sample surveys#Sample Census|screenshots]] of the example described below.
Acest exemplu arată cum apare relevanța la nivel de grup în verificarea logică. Iată [[ExpressionScript exemple de sondaje#Sample Census|capturi de ecran]] ale exemplului descris mai jos.


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


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


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".  
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”.  


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 [[QS:Hide_tip|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).
Î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 [[QS:Hide_tip|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 ).




<center>[[File:person2_logic.jpg]]</center>
<center>[[File:person2_logic.jpg]]</center>


==Comma as radix (decimal) separator==
==Virgula ca separator radix (zecimal)==




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 [[ExpressionScript sample surveys#Using Comma as Radix Separator (Decimal Point)|found here]].
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 [[Eșantion de anchetă ExpressionScript#Utilizarea virgulei ca separator de radix (punct zecimal)|găsit aici]].


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




<center>[[File:radix_logic1.jpg]]</center>
<center>[[File:radix_logic1.jpg]]</center>

Latest revision as of 08:45, 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


Iată multe exemple bune despre utilizarea evidențierea sintaxei.


JavaScript personalizat prost

Erorile JavaScript vor fi, de asemenea, evidențiate în verificarea logicii sondajului:


Fișier:javascript_error.jpg

Accelerarea editării și validării

Tot textul evidențiat de sintaxă are încorporate sfaturi cu instrumente, pe care se poate face clic:

  1. 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.
  2. 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).


Fișier:dynamic_relevance_logic1.jpg

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.