Betingelser - Kode

Betingelser - Kode

Designet til Compose har blitt oppdatert. Siden kan inneholde skjermbilder av det gamle designet, men informasjonen er oppdatert. Vi takker for din tålmodighet mens vi oppdaterer bildene!

English

For å sette en betingelse kan du skrive korte Groovy-skript i skript-vinduene i Compose. Skript-vinduene hyppigst fylt med betingelseskode finner du i egenskaper-panelene til betingelse- og multibetingelse-aktiviteter i prosessbyggeren og i betingelsesbyggeren for skjemaelementer i skjemabyggeren. Betingelsesbyggeren lar deg skrive betingelser uten kode, men for mer komplekse betingelser vil du ikke kunne bruke det ‘kodefrie’ grensesnittet.

Betingelser må evalueres til en boolsk verdi (true/false). Hvis betingelsen er oppfylt (true), så vil handlingen eller konsekvensen assosiert til at den er oppfylt forekomme. F.eks. hvis du har en visningsbetingelse på et element, så er elementet gjemt inntil betingelsen er oppfylt (og da vises elementet). Hvis en betingelse feiler (pga. feil i koden) eller returnerer en ikke-boolsk verdi, så er betingelsen ikke oppfylt (false) som standard. Her er en oversikt over noen av operatorene og funksjonene du kan bruke når du koder betingelser i Compose.

Referanser til ulike typer spørsmålselementer

Referer til spørsmålselementer med spesialtilpasset kode avhengig av typen spørsmål:

Script

Description

Script

Description

Q1.answer

Refererer til ett svar fra et spørsmål med enkeltverdi, slik som Tekstfelt-, Tekstboks- og Dato-elementer.

Q1.answer.value

Refererer til ett svar fra et spørsmål med enkeltvalg, slik som Radioknapp- og Nedtrekksliste-elementer.

Q1.answers.value Q1.answers.value[0]

Refererer til en liste med svar fra et spørsmål med flervalg, slik som Avkrysnings-elementer. Bruk []-syntaks for å referere til en svarverdi fra listen. Q1.answers.value[0] vil f.eks. referere til den første svarverdien i listen, Q1.answers.value[1] til den andre etc.

Operatorer

Her er en oversikt over operatorer du kan bruke til betingelser.

Boolske operatorer

  1. && - OG operator

  2. || - ELLER operator

  3. ! - ULIK operator

Komparative operatorer

  1. > - større enn

  2. < - mindre enn

  3. == - lik

  4. >= - større eller lik

  5. <= - mindre eller lik

Aritmetiske operatorer

  1. + (addering)

  2. - (subtraksjon)

  3. * (multiplikasjon)

  4. / (divisjon)

Eksempel-betingelser

Spørsmålssvar validert som tekst

Kode

Betingelsen er sann (true) hvis …

Kode

Betingelsen er sann (true) hvis …

Q1.answer == "Ja"

… svaret er lik Ja.

Q1.answer != "Ja"

… svaret er ulikt Ja.

Q1.answer.startsWith("AA")

… svaret starter med bokstavene AA.

!Q1.answer.startsWith("AA")

… svaret starter ikke med bokstavene AA.

Q2.answer.value.contains("Compose")

… svaret inneholder teksten Compose.

Spørsmålssvar validert som heltall/desimal

Kode

Betingelsen er sann (true) hvis …

Kode

Betingelsen er sann (true) hvis …

Q1.answer > 100

… svaret er større enn 100.

Q1.answer < 200

… svaret er mindre enn 200.

Q1.answer > 100 && Q1.answer < 200

… svaret er større enn 100 og mindre enn 200.

Q1.answer == 100 || Q1.answer == 101

… svaret er lik 100 eller 101.

Q1.answer.value >= 201

… svaret er lik eller større enn 201.

(((Q1.answer + Q4.answer) * Q3.answer ) / Q6.answer ) < 123

… det aritmetisk kalkulerte svaret er mindre enn 123.

Spørsmålssvar validert som dato

Kode

Betingelsen er sann (true) hvis …

Kode

Betingelsen er sann (true) hvis …

Q1.answer.after("2020-01-01")

… datosvaret er etter 1. januar 2020.

Q1.answer.before("2020-01-01")

… datosvaret er før 1. januar 2020.

Q1.answer.year == 2020

… svaråret er lik 2020.

Q1.answer.month != 3

… svarmåneden er ikke mars.

Q1.answer.day == 1

… svardagen er lik 1.