Jämförda versioner

Nyckel

  • Dessa rader lades till.
  • Denna rad togs bort.
  • Formateringen ändrades.

...

Problem / behov

Lösning

En följdfråga kan inte komma från två olika frågor.

Om det finns samma följdfråga från två olika frågor behöver följdfrågan dupliceras. Varje kopia av frågan ges ett unikt id

Dvs inte:

Utan:

Ankare
beräkning
beräkning
Beräkning Exempel på beräkning i 1177 formulärhantering

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