Actions

Check survey logic - Advanced/sl: Difference between revisions

From LimeSurvey Manual

(Created page with "Na vrhu strani je povzetek sporočila. Če je vse v redu, bo pisalo "V tej anketi ni zaznanih sintaksnih napak" ali "Ta skupina" ali "To vprašanje", "samo po sebi ne vsebuje...")
(Created page with "Ne pozabite tudi, da se logika '''validacije''' samodejno ustvari za vas iz omogočenih atributov vprašanja. Enačbe so morda videti ogromne, vendar vam zaradi njih ni treba...")
 
(37 intermediate revisions by the same user not shown)
Line 65: Line 65:
Na vrhu strani je povzetek sporočila. Če je vse v redu, bo pisalo "V tej anketi ni zaznanih sintaksnih napak" ali "Ta skupina" ali "To vprašanje", "samo po sebi ne vsebuje sintaksnih napak". Če je res nasprotno, bo pisalo "X vprašanj ima sintaktične napake, ki jih je treba popraviti".
Na vrhu strani je povzetek sporočila. Če je vse v redu, bo pisalo "V tej anketi ni zaznanih sintaksnih napak" ali "Ta skupina" ali "To vprašanje", "samo po sebi ne vsebuje sintaksnih napak". Če je res nasprotno, bo pisalo "X vprašanj ima sintaktične napake, ki jih je treba popraviti".


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:
Vsako vprašanje s sintaksnimi napakami dobi ozadje skrajno levega stolpca (tj. '''#''') barvno kodirano rdeče. Pod stolpcem '''Ime [ID]'' bo prikazano tudi opozorilo, ki navaja najmanjše število napak pri vprašanju. Pogoste so naslednje napake:


*[[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.
*[[Preverite logiko ankete - Napredno#Nedefinirana spremenljivka|Nedefinirana spremenljivka]] - če niste definirali vseh svojih spremenljivk ali napačno vnesli array_filter (ali različne nize možnosti odgovora za array_filter), bodo nekatera vaša preverjalna vprašanja pokazala napake . Nedefinirane spremenljivke so prikazane z rdečim besedilom, obrobljene z rdečo črto.


*[[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.
*[[Preverite logiko ankete - Napredno#Slaba sintaksa|Slaba sintaksa]] - ko začnete uporabljati enačbe ustreznosti, lahko uporabite preveč ali premalo oklepajev. Takšne sintaksne težave so označene in obrobljene z rdečo. Če se z miško pomaknete nad tako rdeče obrobljeno besedilo, bo napaka opisana v orodnem namigu.


== Colors in ExpressScript syntax ==
== Barve v sintaksi ExpressScript ==
Conditions and equations are syntaxhighlighted to easier figure out what you are looking at:
Pogoji in enačbe so sintakse označene, da lažje ugotovite, kaj gledate:
# Green / Light Blue: A variable that references a question earlier in the survey
# Zelena / Svetlo modra: spremenljivka, ki se nanaša na vprašanje prej v anketi
# Blue: A function
# Modra : funkcija
# Grey: A string expression
# Siva: nizovni izraz
# Brown: A TOKEN expression (participant data)
# Rjava: izraz TOKEN (podatki o udeležencih)
# Black: Operator
# Črna: Operator
Things to check:
Stvari za preverjanje:
# Purple: A variable that references a question later in the survey. Usually this is an error and needs to be checked.
# Vijolična: spremenljivka, ki se sklicuje na vprašanje kasneje v anketi. Običajno je to napaka in jo je treba preveriti.
# Red or red frame: A non-existing variable or reference to an earlier question or a syntax error - usually needs to be checked.
# Rdeč ali rdeč okvir: neobstoječa spremenljivka ali sklic na prejšnje vprašanje ali sintaksna napaka - običajno je treba preveriti.




==Undefined Variables==
==Nedefinirane spremenljivke==




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":
Če so uporabljene nedefinirane spremenljivke, bo ime zadevne spremenljivke označeno z rdečo barvo in obdano z rdečo črto. Če z miško premaknete nad ime spremenljivke, bo pisalo "nedefinirana spremenljivka":




<center>[[File:undefined_varaible.jpg]]</center>
<center>[[Datoteka:undefined_varaible.jpg]]</center>




{{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=Pozor|text=Upoštevajte, da LimeSurvey skrbnikom anket ne dovoljuje ustvarjanja vprašanj, ki uporabljajo isto kodo vprašanja. Lahko pa se zgodi, da so podobne kode vprašanj znotraj ankete, če uvozite skupino vprašanj ali vprašanje, ki uporablja isto kodo vprašanja kot eno od vaših že definiranih vprašanj. Vprašanje je še vedno mogoče uvoziti, ker so ID-ji vprašanj različni. Če pa želite izvoziti rezultate ankete za nadaljnje raziskovanje [[Exporting_results|rezultatov ankete]] (R ali SPSS), bodite previdni, ker se koda vprašanja obravnava kot spremenljivka!}}




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


==Bad syntax==
==Slaba sintaksa==




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:
Večina napak, povezanih z izrazi, je povezanih s slabo sintakso. To je povezano z dejstvom, da skrbniki anket običajno ne dodajo zavitega oklepaja, pravilno uporabijo oklepaje ali napačno uporabljajo izraze:




<center>[[File:Syntax_highlighting_parantheses.png]]</center>
<center>[[Datoteka:Syntax_highlighting_parantheses.png]]</center>


<center>[[File:Syntax_highlighting_extra_comma.png]]</center>
<center>[[Datoteka:Syntax_highlighting_extra_comma.png]]</center>




Here are many good examples on the usage of [[ExpressionScript How-tos#Syntax_Highlighting|syntax highlighting]].
Tu je veliko dobrih primerov uporabe [[ExpressionScript How-tos#Syntax_Highlighting|označevanja sintakse]].




===Bad custom JavaScript===
===Slab JavaScript po meri===




The JavaScript errors will also be highlighted in the survey logic check:
Napake JavaScript bodo poudarjene tudi pri preverjanju logike ankete:




<center>[[File:javascript_error.jpg]]</center>
<center>[[Datoteka:javascript_error.jpg]]</center>


=Speeding editing and validation=
=Hitro urejanje in preverjanje=




All of the syntax-highlighted text has tooltips embedded, which are clickable:
Vse besedilo, označeno s sintakso, ima vdelane opise orodij, ki jih je mogoče klikniti:
#Tooltips
#Opis orodij
#*Functions - hovering the mouse lets you see the purpose and syntax definition of the function;
#*Funkcije - če lebdite nad miško, lahko vidite namen in definicijo sintakse funkcije;
#*Variable Names - hovering the mouse lets you see the position (group, question sequence), question text, and allowable answers for the question.
#*Imena spremenljivk - Če lebdite na miški, lahko vidite položaj (skupina, zaporedje vprašanj), besedilo vprašanja in dovoljene odgovore za vprašanje.
#Actions
#Dejanja
#*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.
#*Imena spremenljivk - s klikom na ime spremenljivke se odpre novo okno, ki vam za urejanje vprašanja. To olajša krmarjenje in preverjanje logike – preprosto še naprej klikajte imena spremenljivk, ki so relevantna ali merila za preverjanje, za vprašanje, da vidite, od kod prihajajo in kako se uporabljajo.




=Examples=
=Primeri=




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.
Naslednji primeri so vzeti iz [[Vzorčne ankete ExpressionScript|vzorčne ankete ExpressionScript]]. Na tej strani lahko najdete posnetke zaslona izvajanja anket, razlage in prenose.




==Body Mass Index==
==Indeks telesne mase==




Here are [[ExpressionScript sample surveys#Screenshots|screenshots]] of this example.
Tukaj so [[ExpressionScript sample surveys#Screenshots|posnetki zaslona]] tega primera.


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:
To je pogled preureditve vprašanj za izračun indeksa telesne mase. Enačbe ustreznosti za težo, višino in BMI si lahko ogledate pod stolpcem »Vprašanje«:




Line 147: Line 147:




For a better survey overview, check the survey logic page:
Za boljši pregled ankete preverite stran z logiko ankete:




Line 153: Line 153:




This survey example is also a good example of nested if() statements to generate the "weightstatus".
Ta primer ankete je tudi dober primer ugnezdenih stavkov if() za ustvarjanje "statusa teže".




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


==Cascading logic==
==Kaskadna logika==




Here are [[ExpressionScript sample surveys#Cascading Array Filters|screenshots]] of this example.
Tukaj so [[ExpressionScript sample surveys#Cascading Array Filters|posnetki zaslona]] tega primera.


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).
Prikazuje logiko potrjevanja podvprašanja, ki se samodejno ustvari, ko uporabite [[QS:Array_filter|array_filter]] in [[QS:Array_filter_exclude|array_filter_exclude]]. Ta primer tudi prikazuje, kako lahko nadomestite prilagojeno vrednost »Drugo« (odgovor za Q02_other je 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 v tem primeru prikazuje hkratno uporabo array_filter in array_filter_exclude na Q01 oziroma Q02. Ta primer prikazuje kaskadne zmogljivosti array_filter. Upoštevajte, da je eden od glavnih razlogov za prikaz kriterijev '''validacije''' ravni vprašanja in podvprašanja pomagati zagotoviti, da niste naredili tipkarskih napak pri podajanju imen spremenljivk array_filter ali array_filter_exclude (ali v primeru, da uporabljate različna imena spremenljivk za vaš seznam filtriranih podvprašanj). Če imate takšne tipkarske napake, bodo vsa neveljavna imena spremenljivk prikazana rdeče, kar pomeni, da so nedefinirana, kar vam bo omogočilo, da hitro odpravite težavo.




Line 175: Line 175:




==Dynamic relevance==
==Dinamična ustreznost==




This example demonstrates dynamic cascading relevance logic to control display of question visibility. You can download this example [[ExpressionScript sample surveys#Download|here]].
Ta primer prikazuje dinamično kaskadno logiko ustreznosti za nadzor prikaza vidnosti vprašanja. Ta primer lahko prenesete [[ExpressionScript sample surveys#Download|tukaj]].


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).
Upoštevajte tudi, da so vprašanja prikazana samo, če so izpolnjena določena merila za preverjanje veljavnosti. Na primer, če oseba izjavi, da ima 2 otroka, mora anketiranec izpolniti določena vprašanja (otrok1 in otrok2).




<center>[[File:dynamic_relevance_logic1.jpg]]</center>
<center>[[Datoteka:dynamic_relevance_logic1.jpg]]</center>


==Group-level relevance==
==Ustreznost na ravni skupine==




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.
Ta primer prikazuje, kako je relevantnost na ravni skupine prikazana v logičnem preverjanju. Tukaj so [[ExpressionScript sample surveys#Sample Census|posnetki zaslona]] primera, opisanega spodaj.


As you can see, the group-level relevance equation (cohabs > 1 && p1_rel != "") appear in the grey Person 2 row for G-2.
Kot lahko vidite, se enačba ustreznosti na ravni skupine (cohabs > 1 && p1_rel != "") pojavi v sivi vrstici Oseba 2 za 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.
Morda boste tudi opazili, da so vsa vprašanja obvezna. Če pa je skupina nepomembna, so nepomembna tudi vsa njena vprašanja. Posledično so ta vprašanja resnično obvezna le, če je skupina ustrezna.


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".  
Morda boste tudi opazili, da so določena vprašanja prikazana le, če odgovor na prejšnje vprašanje ni prazen. Spodaj lahko vidite, da če p2_sex ni izpolnjen, p2_name ne bo prikazan, čeprav je to obvezno vprašanje. Obvezno vprašanje p2_age tudi ne bo prikazano, če p2_name ni izpolnjeno. Ta vprašanja lahko štejemo za "pogojno obvezna".  


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).
Poleg tega upoštevajte, da se tudi sporočila '''nasvet''' samodejno ustvarijo za vas. Urejeni so po obsegu vrednosti (min/max), obsegu vrednosti vsote (min/max/equals), številu odgovorov (min/max) itd. (odvisno od uporabljene vrste vprašanja in aktivnih atributov). Včasih želite potrditi obseg odgovorov, vendar ne želite prikazati tega, kar bi se uporabniku morda zdelo neumni nasveti za preverjanje veljavnosti. V takih primerih lahko uporabite možnost vprašanja [[QS:Hide_tip|hide_tip]] (kot v tem primeru, da uporabniku ne poveste, da mora biti starost med 0 in 115, razen če poskuša vnesti napačno vrednost - glejte p2_age ).




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


==Comma as radix (decimal) separator==
==Vejica kot radikalno (decimalno) ločilo==




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]].
Čeprav LimeSurvey v celoti podpira uporabo vejice kot (decimalnega) ločila v času izvajanja, morate še vedno uporabiti decimalko kot ločilo v času načrtovanja (npr. pri podajanju najmanjših/največjih vrednosti v naprednih atributih vprašanj). Delujoči primer je lahko [[ExpressionScript vzorec ankete#Uporaba vejice kot ločila radiksa (decimalna vejica)|najdete tukaj]].


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.
Ne pozabite tudi, da se logika '''validacije''' samodejno ustvari za vas iz omogočenih atributov vprašanja. Enačbe so morda videti ogromne, vendar vam zaradi njih ni treba skrbeti.




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

Latest revision as of 09:21, 15 December 2023


Splošno

Pomembna možnost, ki vam pomaga ustvariti in enostavno vzdrževati kompleksne ankete, je Preveri logiko ankete.

Med razvojem in testiranjem ankete ter pred njeno aktivacijo je zelo pomembno preveriti logiko ankete. To še posebej velja, ko uporabljate zapletene enačbe ustreznosti, prilagajanja in preverjanja veljavnosti – prepričani morate biti, da se pri izvedbi ankete nič ne pokvari.

Ta funkcija vam omogoča hitro preverjanje točnosti vaše ankete, skupine in vprašanj. Do njega lahko dostopate z možnostmi menija v zgornji vrstici, ki se nahajajo pod nastavitvami, povezanimi z anketo. Dostopen je preko menija Orodja:


Datoteka:show_logic_file.jpg


Kot lahko opazite zgoraj, lahko to možnost zaženete štirikrat za vsak jezik, uporabljen v anketi.

Opis

Možnost Preveri logiko ankete prikazuje vse, kar ste določili za vsako vprašanje in skupino (npr. ime, besedilo, pomoč, pogoje/relevantnost, pravila preverjanja, privzete vrednosti, podvprašanja, odgovore) v priročni obliki tabele. Označuje napake in vam omogoča, da kliknete ID vprašanja in skupine (ali spremenljivke, uporabljene v enačbah), da odprete nove zavihke brskalnika za urejanje teh vprašanj ali skupin. To olajša hitro urejanje morebitnih napak in osvežitev strani za logično preverjanje, da potrdite točnost ankete, preden jo aktivirate.

Zaslon je zasnovan tako, da ga lahko berejo raziskovalci in sponzorji študije, tako da lahko potrdijo točnost zasnove in logike ankete. Preverjanje logike ankete posodobi predpomnilnik za vse izraze, uporabljene v aktivni anketi.

Vključuje naslednje stolpce:

  • ''# - prikazuje število zaporedij skupin in vprašanj, začenši z 0.
  • Ime [ ID]' - prikazuje kodo vprašanja za skupino/vprašanje/podvprašanje. Te kode je mogoče uporabiti kot spremenljivke znotraj izrazov. ID je ID vprašanja (QID) ali ID skupine (GID). To polje prikazuje tudi vrsto vprašanja (npr. Več možnosti [M])).


Template:Opomba


  • ''Relevantnost [ Validation] (privzeto) - prikaže naslednje:
    • Relevance - s sintakso označeno enačbo ustreznosti za vprašanje ali skupino. Če je vedno res (prikazano v katerem koli scenariju), bo vrednost 1.
    • Validation - ExpressionScript samodejno ustvari validacijo enačba na podlagi izbranih atributov vprašanja (npr. najmanjše/največje število odgovorov, najmanjše/največje/enako vrednosti vsote, najmanjše/največje posamezne vrednosti ali preverjanje regularnega izraza). Ta razdelek prikazuje ustvarjeno validacijsko enačbo, tako da lahko odkrijete morebitne napake (kot so nedefinirane spremenljivke).
      • Preverjanje na ravni vprašanja prikazuje enačbo, potrebno za preverjanje zgoraj opisanih atributov vprašanja
  • **Preverjanje na ravni podvprašanja prikazuje enačbo, potrebno za implementacijo array_filter, array_filter_exclude in exclusive_option
    • Default - če ima vprašanje privzeto vrednost, je prikazana tukaj, sintaktično označena (ker je privzeta vrednost lahko izraz).
  • Besedilo [ Pomoč] (Namig) - prikaže naslednje:
    • Besedilo - besedilo skupine, vprašanja, podvprašanja ali odgovora. Označena je s sintakso, da prikaže vse vdelane krojenje, kar vam omogoča, da preverite, ali ste prijavili vse spremenljivke, ki jih nameravate uporabiti pri krojenju.
    • Pomoč - to prikazuje besedilo pomoči za vprašanje, ki je tudi sintaksno označeno.
    • Namig - to prikazuje interno ustvarjen potrditveni namig, ki temelji na atributih vprašanja. Ta isti nasvet se uporablja v vseh slogih anket, poleg tega pa tudi v anketah za tiskanje in zaslonih za vnos podatkov.
    • Atributi vprašanja - prikazuje tabelo vseh ustreznih atributov vprašanja za to vprašanje. Atributi, ki bi lahko bili enačbe, so skladenjsko poudarjeni, tako da lahko preverite njihovo točnost.

Vrstice so barvno kodirane na naslednji način:

  • Skupine - so prikazane s svetlo sivim ozadjem
  • Vprašanja - so prikazane s svetlo zelenim ozadjem
  • ' Podvprašanja - so prikazana z bledo rumenim ozadjem
  • Odgovori - so prikazana z navadnim belim ozadjem

Odgovori imajo dodaten atribut v stolpcu Relevance:

  • Value - to je privzeta notranja vrednost, ki jo uporabljajo izračuni. Če uporabljate Ocene, bo to vrednost ocene. V nasprotnem primeru bo to enako imenu odgovora.


Template:Opomba

Uporaba

Na vrhu strani je povzetek sporočila. Če je vse v redu, bo pisalo "V tej anketi ni zaznanih sintaksnih napak" ali "Ta skupina" ali "To vprašanje", "samo po sebi ne vsebuje sintaksnih napak". Če je res nasprotno, bo pisalo "X vprašanj ima sintaktične napake, ki jih je treba popraviti".

Vsako vprašanje s sintaksnimi napakami dobi ozadje skrajno levega stolpca (tj. #') barvno kodirano rdeče. Pod stolpcem Ime [ID] bo prikazano tudi opozorilo, ki navaja najmanjše število napak pri vprašanju. Pogoste so naslednje napake:

  • Nedefinirana spremenljivka - če niste definirali vseh svojih spremenljivk ali napačno vnesli array_filter (ali različne nize možnosti odgovora za array_filter), bodo nekatera vaša preverjalna vprašanja pokazala napake . Nedefinirane spremenljivke so prikazane z rdečim besedilom, obrobljene z rdečo črto.
  • Slaba sintaksa - ko začnete uporabljati enačbe ustreznosti, lahko uporabite preveč ali premalo oklepajev. Takšne sintaksne težave so označene in obrobljene z rdečo. Če se z miško pomaknete nad tako rdeče obrobljeno besedilo, bo napaka opisana v orodnem namigu.

Barve v sintaksi ExpressScript

Pogoji in enačbe so sintakse označene, da lažje ugotovite, kaj gledate:

  1. Zelena / Svetlo modra: spremenljivka, ki se nanaša na vprašanje prej v anketi
  2. Modra : funkcija
  3. Siva: nizovni izraz
  4. Rjava: izraz TOKEN (podatki o udeležencih)
  5. Črna: Operator

Stvari za preverjanje:

  1. Vijolična: spremenljivka, ki se sklicuje na vprašanje kasneje v anketi. Običajno je to napaka in jo je treba preveriti.
  2. Rdeč ali rdeč okvir: neobstoječa spremenljivka ali sklic na prejšnje vprašanje ali sintaksna napaka - običajno je treba preveriti.


Nedefinirane spremenljivke

Če so uporabljene nedefinirane spremenljivke, bo ime zadevne spremenljivke označeno z rdečo barvo in obdano z rdečo črto. Če z miško premaknete nad ime spremenljivke, bo pisalo "nedefinirana spremenljivka":


Datoteka:undefined_varaible.jpg


  Pozor : Upoštevajte, da LimeSurvey skrbnikom anket ne dovoljuje ustvarjanja vprašanj, ki uporabljajo isto kodo vprašanja. Lahko pa se zgodi, da so podobne kode vprašanj znotraj ankete, če uvozite skupino vprašanj ali vprašanje, ki uporablja isto kodo vprašanja kot eno od vaših že definiranih vprašanj. Vprašanje je še vedno mogoče uvoziti, ker so ID-ji vprašanj različni. Če pa želite izvoziti rezultate ankete za nadaljnje raziskovanje rezultatov ankete (R ali SPSS), bodite previdni, ker se koda vprašanja obravnava kot spremenljivka!



Datoteka:same_code_name_not_recommended.png

}}

Slaba sintaksa

Večina napak, povezanih z izrazi, je povezanih s slabo sintakso. To je povezano z dejstvom, da skrbniki anket običajno ne dodajo zavitega oklepaja, pravilno uporabijo oklepaje ali napačno uporabljajo izraze:


Datoteka:Syntax_highlighting_parantheses.png
Datoteka:Syntax_highlighting_extra_comma.png


Tu je veliko dobrih primerov uporabe označevanja sintakse.


Slab JavaScript po meri

Napake JavaScript bodo poudarjene tudi pri preverjanju logike ankete:


Datoteka:javascript_error.jpg

Hitro urejanje in preverjanje

Vse besedilo, označeno s sintakso, ima vdelane opise orodij, ki jih je mogoče klikniti:

  1. Opis orodij
    • Funkcije - če lebdite nad miško, lahko vidite namen in definicijo sintakse funkcije;
    • Imena spremenljivk - Če lebdite na miški, lahko vidite položaj (skupina, zaporedje vprašanj), besedilo vprašanja in dovoljene odgovore za vprašanje.
  2. Dejanja
    • Imena spremenljivk - s klikom na ime spremenljivke se odpre novo okno, ki vam za urejanje vprašanja. To olajša krmarjenje in preverjanje logike – preprosto še naprej klikajte imena spremenljivk, ki so relevantna ali merila za preverjanje, za vprašanje, da vidite, od kod prihajajo in kako se uporabljajo.


Primeri

Naslednji primeri so vzeti iz vzorčne ankete ExpressionScript. Na tej strani lahko najdete posnetke zaslona izvajanja anket, razlage in prenose.


Indeks telesne mase

Tukaj so posnetki zaslona tega primera.

To je pogled preureditve vprašanj za izračun indeksa telesne mase. Enačbe ustreznosti za težo, višino in BMI si lahko ogledate pod stolpcem »Vprašanje«:



Za boljši pregled ankete preverite stran z logiko ankete:



Ta primer ankete je tudi dober primer ugnezdenih stavkov if() za ustvarjanje "statusa teže".


Kaskadna logika

Tukaj so posnetki zaslona tega primera.

Prikazuje logiko potrjevanja podvprašanja, ki se samodejno ustvari, ko uporabite array_filter in array_filter_exclude. Ta primer tudi prikazuje, kako lahko nadomestite prilagojeno vrednost »Drugo« (odgovor za Q02_other je Q01_other).



Q05 v tem primeru prikazuje hkratno uporabo array_filter in array_filter_exclude na Q01 oziroma Q02. Ta primer prikazuje kaskadne zmogljivosti array_filter. Upoštevajte, da je eden od glavnih razlogov za prikaz kriterijev validacije ravni vprašanja in podvprašanja pomagati zagotoviti, da niste naredili tipkarskih napak pri podajanju imen spremenljivk array_filter ali array_filter_exclude (ali v primeru, da uporabljate različna imena spremenljivk za vaš seznam filtriranih podvprašanj). Če imate takšne tipkarske napake, bodo vsa neveljavna imena spremenljivk prikazana rdeče, kar pomeni, da so nedefinirana, kar vam bo omogočilo, da hitro odpravite težavo.



Dinamična ustreznost

Ta primer prikazuje dinamično kaskadno logiko ustreznosti za nadzor prikaza vidnosti vprašanja. Ta primer lahko prenesete tukaj.

Upoštevajte tudi, da so vprašanja prikazana samo, če so izpolnjena določena merila za preverjanje veljavnosti. Na primer, če oseba izjavi, da ima 2 otroka, mora anketiranec izpolniti določena vprašanja (otrok1 in otrok2).


Datoteka:dynamic_relevance_logic1.jpg

Ustreznost na ravni skupine

Ta primer prikazuje, kako je relevantnost na ravni skupine prikazana v logičnem preverjanju. Tukaj so posnetki zaslona primera, opisanega spodaj.

Kot lahko vidite, se enačba ustreznosti na ravni skupine (cohabs > 1 && p1_rel != "") pojavi v sivi vrstici Oseba 2 za G-2.

Morda boste tudi opazili, da so vsa vprašanja obvezna. Če pa je skupina nepomembna, so nepomembna tudi vsa njena vprašanja. Posledično so ta vprašanja resnično obvezna le, če je skupina ustrezna.

Morda boste tudi opazili, da so določena vprašanja prikazana le, če odgovor na prejšnje vprašanje ni prazen. Spodaj lahko vidite, da če p2_sex ni izpolnjen, p2_name ne bo prikazan, čeprav je to obvezno vprašanje. Obvezno vprašanje p2_age tudi ne bo prikazano, če p2_name ni izpolnjeno. Ta vprašanja lahko štejemo za "pogojno obvezna".

Poleg tega upoštevajte, da se tudi sporočila nasvet samodejno ustvarijo za vas. Urejeni so po obsegu vrednosti (min/max), obsegu vrednosti vsote (min/max/equals), številu odgovorov (min/max) itd. (odvisno od uporabljene vrste vprašanja in aktivnih atributov). Včasih želite potrditi obseg odgovorov, vendar ne želite prikazati tega, kar bi se uporabniku morda zdelo neumni nasveti za preverjanje veljavnosti. V takih primerih lahko uporabite možnost vprašanja hide_tip (kot v tem primeru, da uporabniku ne poveste, da mora biti starost med 0 in 115, razen če poskuša vnesti napačno vrednost - glejte p2_age ).


Vejica kot radikalno (decimalno) ločilo

Čeprav LimeSurvey v celoti podpira uporabo vejice kot (decimalnega) ločila v času izvajanja, morate še vedno uporabiti decimalko kot ločilo v času načrtovanja (npr. pri podajanju najmanjših/največjih vrednosti v naprednih atributih vprašanj). Delujoči primer je lahko najdete tukaj.

Ne pozabite tudi, da se logika validacije samodejno ustvari za vas iz omogočenih atributov vprašanja. Enačbe so morda videti ogromne, vendar vam zaradi njih ni treba skrbeti.