...
Info |
---|
Märk utgångarna med ett id, gärna “Utgång 0”, “Utgång 1” etc. |
Info |
---|
Märk varje fråga med ett id, t ex Q1, Q2 etc. |
Beräkningsskript
Beräkningsskriptet i formulärmallen beräknar fram ett resultat uttryckt som ett tal (0, 1, 2, 3, 4 eller 5). För respektive resultat kopplas sedan en URL, en beskrivande text samt en knapptext för knapp som leder invånaren vidare.
Formulärtjänsten kopplar svarsalternativen med en indexsiffra, med början på “1”. Första svaret motsvarar “1”, andra svaret motsvarar “2” o s v.
Exempel bild 1 ovan: För att i skriptkod läsa ut vilket svar som invånaren valt kan följande kodrad användas:
Kodblock |
---|
int svarsQ1 = $q.get("Q1").intValue(); |
Om invånaren väljer alternativet “Övrigt” så kommer svarsQ1
att få värdet 3
Skriptet ska till slut resultera i ett värde (0, 1, 2, 3, 4 eller 5) som motsvarar utgången. Värdet sätts med följande kodrad (där variabeln i tidigare skede tilldelats resultatet):
Kodblock |
---|
outcome.set( result ); |
Här följer ett skript som motsvarar flödesschemat i bild 1
Kodblock |
---|
when
$q: Questions()
then
double result = 0;
// hämta invånares svar på fråga Q1
int svarsQ1 = $q.get("Q1").intValue();
if ( svarsQ1 == 1 )
{
// invånare svarade med första svarsalternativet på fråga Q1
// hämta invånares svar på fråga Q3
int svarsQ3 = $q.get("Q3").intValue();
if( svarsQ3 == 1 )
{
// invånare svarade med första svarsalternativet på fråga Q1
// invånare ska ledas till utgång 0
result = 0;
}
else
{
result = 1;
}
}
else if ( svarsQ1 == 2 )
{
int svarsQ2 = $q.get("Q2").intValue();
int svarsQ4 = $q.get("Q4").intValue();
int svarsQ7 = $q.get("Q7").intValue();
if ( svarsQ2 == 1 || svarsQ2 == 2 )
{
if ( svarsQ7 == 2 )
{
result = 1;
}
else if( svarsQ4 == 2 )
{
result = 3;
}
else
{
result = 2;
}
}
else if ( svarsQ2 == 3 || svarsQ2 == 4 )
{
if ( svarsQ7 == 2 )
{
result = 1;
}
else if( svarsQ4 == 2 )
{
result = 0;
}
else
{
result = 4;
}
}
}
else if ( svarsQ1 == 3 )
{
int svarsQ6 = $q.get("Q6").intValue();
if( svarsQ6 == 1 )
{
result = 2;
}
else if( svarsQ6 == 2 )
{
result = 1;
}
else
{
result = 2;
}
}
else if ( svarsQ1 == 4 )
{
int svarsQ5 = $q.get("Q5").intValue();
int svarsQ9 = $q.get("Q9").intValue();
if( svarsQ9 == 2 )
{
result = 1;
}
else if( svarsQ5 == 2)
{
result = 3;
}
else
{
result = 4;
}
}
outcome.set( result );
end |
T
Exempel på beslutsträd ritat på whiteboard
...