Betingelser for visning/aktivering
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!
Det er mulig å sette betingelser på elementer og sider i skjema. Med betingelser kan du synliggjøre (eller aktivere) forskjellige spørsmål basert på svarene avgitt av sluttbrukeren.
Ta f.eks. et spørsmål om hvorvidt sluttbrukeren har kjæledyr. Hvis svaret er Ja, kan ytterligere spørsmål om kjæledyr vises. Hvis svaret er Nei, forblir alle ytterligere spørsmål om kjæledyr gjemt og sluttbrukeren slipper å forholde seg til en skjerm full av irrelevant innhold. I dette tilfellet ville du satt en visningsbetingelse på spørsmålene du vil vise. Disse spørsmålene vises kun hvis betingelsen er oppfylt, altså at svaret til spørsmålet om kjæledyr er Ja.
Det finnes også aktiveringsbetingelser. Før betingelsen oppfylles vil spørsmålet være skrivebeskyttet. Etter betingelsen oppfylles vil spørsmålet aktiveres så sluttbrukeren kan besvare spørsmålet.
I skjemabyggeren har alle skjemaelementer og sider en fane i panelet med egenskaper som heter Betingelser. Her kan betingelser skriptes i kodevinduene med Groovy-kode, eller så kan man trykke Åpne for å åpne betingelsesbyggeren.
I betingelsesbyggeren kan du sette betingelser helt uten koding. Kodevinduene er en lekeplass for tjeneste-byggere som vil lage hakket mer avanserte betingelser. I tillegg viser kodevinduene den ekvivalente koden for betingelsene som settes i betingelsesbyggeren.
Sett en betingelse for visning (eller aktivering)
Viktig: Samme logikk gjelder for betingelser for visning og aktivering, så kun et eksempel blir vist her.
La oss si at sluttbrukeren skal fylle ut reisedetaljer. Hvis de reiser med kjæledyr er det nødvendig at de oppgir hvor mange kjæledyr de reiser med. Vi ønsker å gjemme spørsmål relevante for kjæledyr inntil sluttbrukeren har sagt at de reiser med kjæledyr. Under er et tentativt skjema. La oss velge spørsmålet Hvor mange kjæledyr? og deretter navigere til Betingelser-fanen i panelet med egenskaper og åpne betingelsesbyggeren.
Når byggeren er åpen, trykk (+) for å legge til en betingelse.
I den første nedtrekkslisten velger vi spørsmålet vi vil basere betingelsen på.
Når du har valgt spørsmålet vises alle tilgjengelige metoder for spørsmålet i de ytterligere nedtrekkslistene. Du kan velge fra disse når du lager betingelser, og innholdet i listene vil avhenge av valideringen og spørsmålstypen til spørsmålet du har valgt i den første nedtrekkslisten. P.S: Siden betingelsesbyggeren reflekterer faktisk kode, så er metodene og operatorene på engelsk.
For dette eksempelet vil vi vise spørsmålet hvis sluttbrukeren har valgt svaret Kjæledyr til spørsmålet Reiser du med spesialbaggasje?. Velg derfor alternativet Kjæledyr i den siste nedtrekkslisten.
Betingelsen leser at spørsmålet Hvor mange kjæledyr? (som betingelsen er satt på) vises hvis svaret til spørsmålet Reiser du med spesialbaggasje? er Kjæledyr. Betingelsen er dermed fullført og vi trykker OK for å lagre betingelsen.
Når betingelsen er lagret vil du kunne se den ekvivalente koden i vinduet under Betingelse for visning.
Viktig: Ta en titt på betingelseskoden Q1?.answer?.value?.equals(“1”). Q1 er ID-en til spørsmålet Reiser du med spesialbaggasje?. I betingelsesbyggeren valgte vi alternativet Kjæledyr, men koden sier at Q1 må være lik 1. Det er fordi svarverdien (ikke alternativets tekst) tilsvarer 1.
Husk å lagre kladd og versjoner skjemaet for å gjøre visningsbetingelsen tilgjengelig i prosesser.
Å kode betingelser
Å kode betingelser fra bunnen av kan virke skummelt dersom du ikke har erfaring med Groovy-kode. Det anbefales derfor sterkt å bruke betingelsesbyggeren til å sette noen betingelser, og deretter trykke vis kode-knappen. Da konverterer du nemlig betingelsene til Groovy-kode!
På den måten kan du generere Groovy-kode lignende de betingelsene du ønsker å skripte uten å måtte begynne fra bunnen av!
En helhetlig innføring i skripting av betingelser fås i brukerveiledningen https://composetogo.atlassian.net/wiki/spaces/DNO/pages/1288372240.