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!
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 |
---|---|
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
&& - OG operator
|| - ELLER operator
! - ULIK operator
Komparative operatorer
> - større enn
< - mindre enn
== - lik
>= - større eller lik
<= - mindre eller lik
Aritmetiske operatorer
+ (addering)
- (subtraksjon)
* (multiplikasjon)
/ (divisjon)
Eksempel-betingelser
Spørsmålssvar validert som tekst
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 … |
---|---|
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 … |
---|---|
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. |