Jämförda versioner

Nyckel

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

...

Nedan ser du hur formeln kan se ut för att beräkna summa på de olika svarsalternativen som respondenten valt. Vi har valt att använda Javas switch-sats för de olika alternativen.

Se längre ner för en förklaring av varje steg.

Förklaring av formeln

Vi har valt att sätta "Frågans ID" till rubrik och frågenummer, 2.1, 2.2. osv. Detta är självklart valfritt hur man vill göra så länge som "Frågans ID" är unikt.

Vi har även valt att lägga till kommentarer i formeln för att tydligöra den något.

I when-blocket

  1. vi skapar en lokal variabel $q utav Questions som innehåller alla svar.

  2. vi säkerställer att inga svar är utelämnade (null)

I then-blocket

  1. Vi börjar med att skapa en variabel summa av typen double som håller vår summering

  2. Vi skapar en variabel med namnet altNo som är svarsalternativets ordningstal. Vi använder Javas primitiv int då vi senare vill använda denna variabeln i switch-satsen.

  3. För varje unika frågeid hämtar vi ut dess svar för att räkna poäng.

  4. Vi använder sedan Java switch-sats för att fånga rätt svarsalternativ. Här är det viktigt att alltid avsluta varje case med break så den inte automatiskt går vidare till nästa case.

  5. I varje case räknar vi upp summa med den önskade poängen.

  6. Vi avslutar sedan med sätta variabeln outcome med vår framräknade summa

Formel

Kodblock
languagejava
when
  $q: Questions()
  eval($q.get("2.1") != null)
  eval($q.get("2.2") != null)
  eval($q.get("2.3") != null)
  eval($q.get("2.4") != null)
  eval($q.get("2.5") != null)
  eval($q.get("2.6") != null)
  eval($q.get("2.7") != null)
  eval($q.get("2.8") != null)
  eval($q.get("2.9") != null)
  eval($q.get("2.10") != null)
then
  double summa = 0;  // variabel för att hålla summering
  int altNo = 0;     // variabel för answerAlternativeNumbersvarsalternativ

  // 1. Hur ofta dricker du alkohol?
  altNo = $q.get("2.1").intValue();
  switch (altNo)  {
    case 1: break;
    case 2: summa = summa + 1;
            break;
    case 3: summa = summa + 2;
            break;
    case 4: summa = summa + 3;
            break;
    case 5: summa = summa + 4;
            break;
  }

  // 2. Hur många ”glas” (se exempel) dricker ....
  altNo = $q.get("2.2").intValue();
  switch (altNo)  {
    case 1: break;
    case 2: summa = summa + 1;
            break;
    case 3: summa = summa + 2;
            break;
    case 4: summa = summa + 3;
            break;
    case 5: summa = summa + 4;
            break;
  }

  // 10. Har en släkting eller vän, en läkare ...
  altNo = $q.get("2.10").intValue();
  switch (altNo)  {
    case 1: break;
    case 2: summa = summa + 2;
            break;
    case 3: summa = summa + 4;
            break;
  }

    outcome.set(summa);
end

...

Vi har valt att sätta "Frågans ID" till rubrik och frågenummer, 2.1, 2.2. osv. Detta är självklart valfritt hur man vill göra så länge som "Frågans ID" är unikt.

Vi har även valt att lägga till kommentarer i formeln för att tydligöra den något.

I when-blocket

  1. vi skapar en lokal variabel {{$q}} utav {{Questions}} som innehåller alla svar.

  2. vi säkerställer att inga svar är utelämnade ({{null}})

I then-blocket

...

Vi börjar med att skapa en variabel {{summa}} av typen {{double}} som håller vår summering

...

Vi skapar en variabel med namnet {{altNo}} som är svarsalternativets ordningstal. Vi använder Javas primitiv {{int}} då vi senare vill använda denna variabeln i switch-satsen.

...

För varje unika frågeid hämtar vi ut dess svar för att räkna poäng.

...

Vi använder sedan Java switch-sats för att fånga rätt svarsalternativ. Här är det viktigt att alltid avsluta varje {{case}} med {{break}} så den inte automatiskt går vidare till nästa {{case}}.

...

I varje {{case}} räknar vi upp {{summa}} med den önskade poängen.

...