x

Hovedkapitler

  1. LimeSurvey Cloud vs LimeSurvey CE
  2. Hurtigstartveiledning - LimeSurvey 3.0+
  3. Installasjon - LimeSurvey CE
  4. Hvordan lage en god undersøkelse (veiledning)
  5. Komme i gang
  6. Administrere LimeSurvey
  7. Undersøkelser - introduksjon
  8. Innstillinger for undersøkelse
  9. Meny for undersøkelse
  10. Undersøkelsesstruktur
  11. Spørsmål - introduksjon
  12. Spørsmålsgrupper - introduksjon
  13. Undersøkelser - administrasjon
  14. Verktøylinjen for undersøkelsen
  15. Flerspråklig undersøkelse
  16. ExpressionScript-motor – Hurtigstartguide
  17. Ukategoriserte og avanserte funksjoner
  18. Vanlige spørsmål (generelt)
  19. Feilsøking
  20. Løsninger og omveier
  21. Lisens
  22. Versjonsendringer
  23. Tillegg
 Actions

ExpressionScript-motor – Hurtigstartguide

From LimeSurvey Manual

Denne siden kan være maskinoversatt og kan inneholde feil. Vis den engelske originalen · Forbedre denne oversettelsen
This page is a translated version of the page ExpressionScript Engine - Quick start guide and the translation is 100% complete.


Hurtigstartguide

I LimeSurvey kan du tilpasse undersøkelsene dine ytterligere ved hjelp av ExpressionScript (kort: ES). Merk: «ExpressionScript het Expression Manager (EM) i tidligere versjoner. Hvis du ser Expression Manager et sted, er det bare det gamle navnet på ES.»

ES kan brukes til å spesifisere følgende:

  1. Navigering/forgrening – lar en respondents svar endre rekkefølgen spørsmålene vises i;
  2. Tilpasning/piping – hjelper deg med å formulere spørsmålet (for eksempel ved å vise til tidligere svar, eller bøye setninger basert på alder eller kjønn til deltakerne) eller hvordan du lager egendefinerte rapporter (som vurderingspoeng eller tilpassede råd);
  3. Validering – sikrer at svarene oppfyller bestemte kriterier, for eksempel minimums- og maksimumsverdier eller et bestemt inndatamønster.

ES gir en intuitiv måte å spesifisere logikken for hver av disse funksjonene. Nesten alt du kan skrive som en vanlig matematisk ligning, er et gyldig uttrykk.

ES gir for øyeblikket tilgang til 70 funksjoner, og den kan enkelt utvides med flere. Den lar deg også få tilgang til variablene dine ved hjelp av lesbare variabelnavn (i stedet for SGQA-navn).

De neste avsnittene viser hovedstedene der ES brukes.


Relevanse (styring av navigering/forgrening)

Noen undersøkelser bruker «Goto-logikk», slik at hvis du svarer på Question1 med alternativ C, blir du sendt videre til Question5. Denne tilnærmingen er svært begrenset, siden den er vanskelig å validere. Dessuten går den lett i stykker når du må endre rekkefølge på spørsmål. ES bruker derimot boolske relevanseligninger for å spesifisere alle betingelsene der et spørsmål kan være gyldig. Hvis spørsmålet er relevant, vises det. Ellers er det ikke aktuelt, og verdien «NULL» lagres i databasen.

Merk: Dette ligner på det du kan gjøre via betingelseseditoren, men ES lar deg enkelt spesifisere langt mer komplekse og kraftige kriterier (og lar deg bruke variabelnavnet i stedet for SGQA-identifikatorer).




For å forstå relevanse-konseptet bedre, la oss se på følgende undersøkelse, som beregner kroppsmasseindeksen (KMI/BMI) til respondentene. Du kan laste den ned ved å klikke på denne lenken: Eksempelundersøkelse om kroppsmasseindeks.

Relevanseligningen vises nedenfor i kolonnen Relevanse etter variabelnavnet. Relevansverdiene for weight, weight_units, height og height_units er alle 1 (standardverdi), noe som betyr at disse spørsmålene alltid vises. Relevansen for BMI er derimot {!is_empty(height) and !is_empty(weight)}, noe som betyr at BMI bare beregnes hvis deltakeren oppgir en verdi for både høyde og vekt (slik at du unngår risikoen for en nullfeil). Spørsmålet «Report» vises også bare hvis respondenten besvarer alle de fire hovedspørsmålene (height, heightunits, weight, weightunits).



Merk: Bildet ovenfor kommer fra undersøkelsens logikkfil, som lar deg lete etter syntaksfeil før du aktiverer undersøkelsen.


Relevanse vises og kan redigeres når:

  • du vil vise/redigere relevanse på spørsmålsnivå
  • du vil vise/redigere relevanse på gruppenivå


Vise / redigere relevanse på spørsmålsnivå

Denne ligningen beregner kroppsmasseindeksen (BMI). Det spørres bare om den hvis personen oppgir høyde og vekt.



Dette er redigeringsskjermen for spørsmålet «BMI».



Merk at du ikke bruker krøllparenteser når du skriver inn en relevanseligning.


Vise / redigere relevanse på gruppenivå

La oss nå se på et annet eksempel – en enkel folketellingsundersøkelse. Du kan laste den ned ved å klikke på denne lenken: Eksempelundersøkelse om folketelling.

Den første siden spør hvor mange personer som bor sammen med deg, og lagrer det i variabelen «cohabs». Denne siden vises bare hvis du har mer enn én samboer (den vises for den andre personen som bor sammen med deg). Dessuten vises p2name, p2age og p2sum bare hvis spørsmålet før hver av dem har en besvarelse.



Gruppen har altså også relevanskriterier på spørsmålsnivå, slik at noen spørsmål bare vises hvis du har besvart bestemte spørsmål før dem (f.eks. vises p2age hvis p2name er besvart). ES kombinerer relevans på gruppenivå og spørsmålsnivå for deg. Spørsmål i en gruppe stilles bare hvis gruppen som helhet er relevant. Deretter stilles bare den delmengden av spørsmålene i gruppen som er relevante.

Her er skjermbildet for redigering av relevansen på gruppenivå for Cohabitant 2:



Merk at du ikke bruker krøllparenteser når du skriver inn en relevanseligning.

Tilpasning/Piping

Med ES kan du enkelt utføre både enkel og avansert betinget tilpasning. Noen ganger trenger du bare en enkel erstatning, for eksempel: «Du sa at du kjøpte [Produkt]. Hva likte du best ved det?». Andre ganger trenger du betinget erstatning, som «[Hr./Fru] [Etternavn], vil du være villig til å fullføre undersøkelsen vår?». I dette tilfellet vil du bruke «Hr. eller Fru» basert på personens kjønn. Andre ganger trenger du enda mer avansert erstatning (for eksempel basert på en matematisk beregning). ES støtter alle disse typene tilpasning/piping.


Betingede ligninger

Eksempelet med kroppsmasseindeks viser hvordan man kan beregne en persons BMI, selv om personen kan oppgi høyde og vekt i to ulike enheter (cm mot tommer og kg mot lbs):



I dette tilfellet er weightkg {if(weightunits == "kg", weight, weight * 0.453592)}. Funksjonen «if()» betyr at hvis deltakeren oppgir vekten i kilogram, brukes den verdien. Ellers multipliseres den oppgitte verdien (alternativet er pund) med 0.453592 for å konvertere den til kilogram. Variabelen heightm bruker en lignende fremgangsmåte for å beregne personens høyde i meter (høyde i cm/100), selv om personen har oppgitt høyden i tommer (1 meter = 3.28084 tommer).

BMI beregnes slik: {weightkg / (heightm * heightm)}.

Til slutt tilpasser rapporten meldingen betinget for deltakeren og viser hva vedkommende har oppgitt (f.eks. «Du sa at du er 2 meter høy og veier 70 kg.»).

På bildet nedenfor bruker weightstatus nestede «if()»-setninger for å kategorisere personen fra undervektig til alvorlig overvektig. Du kan se ligningen ved å sjekke logikken:



I redigeringsvinduet for dette spørsmålet kan du se to ting:

  1. Ved tilpasning må uttrykk omgis av krøllparenteser
  2. Uttrykk kan strekke seg over flere linjer hvis du, som i dette tilfellet, vil gjøre den nestede betingede logikken lettere å lese.



Tilpassede spørsmål, svar og rapporter

Merk: Dynamisk tilpasning fungerer kanskje ikke hvis svaralternativer vises i nedtrekkslister på samme spørsmålsside. Dette skyldes at tilpasning setter inn en <span>-tag, som ikke er gyldig inne i valgalternativer.

BMI-rapporten ser slik ut:



Her er redigeringsvinduet for det samme spørsmålet.



Alt innenfor krøllparenteser behandles som et uttrykk og er syntaksutheving (fargekodet) på forrige bilde. Hvis du har skrivefeil (for eksempel feilstavede eller udefinerte variabelnavn eller funksjoner), vil ES vise en feil. I eksempelet nedenfor:

  • er heightunit.shown et udefinert variabelnavn (det riktige er heightunits.shown) og
  • er «rnd()» en udefinert funksjon (det riktige funksjonsnavnet er «round()»).

I begge tilfeller er feilene markert med en rød boks, slik at de er lettere å oppdage og rette.



Du kan også se at du raskt kan opprette avanserte rapporter, for eksempel en tabell med oppgitte verdier eller tilpassede råd.

Husk at all tilpasning må omgi uttrykk med krøllparenteser, slik at LimeSurvey vet hvilke deler av spørsmålet som er fritekst, og hvilke som skal tolkes av ExpressionScript-motoren.


Validering

ES styrer hvordan de fleste avanserte spørsmålsinnstillingene fungerer. Disse styrer ting som minimum/maksimum antall svar, minimum/maksimum enkeltverdier, minimum/maksimum sumverdier, og kontroll av at oppgitte verdier samsvarer med angitte tekstmønstre. Enhver verdi i ett av disse feltene anses som et uttrykk, slik at du kan ha minimum/maksimum-kriterier med avanserte betingede sammenhenger til andre spørsmål.

I alle disse tilfellene bruker du ikke krøllparenteser når du angir verdien, siden den avanserte spørsmålsattributten alltid anses som et uttrykk.

Siden med eksempelundersøkelser viser mange fungerende eksempler med en rekke valideringsuttrykk.

ExpressionScript - presentasjon

Hvis du vil finne ut mer om ExpressionScript og hvordan du kan bruke ulike uttrykk til å forbedre undersøkelsen din, kan du klikke på følgende lenke.