So, jetzt noch etwas Erklärung.
Bis "MaxPunkte" ist alles in Ordnung.
"Markierunghp":
Aber was möchtest Du hier erreichen?
Wenn Du Dir die Antworttabelle inmal anschaust, erscheinen dort ganz einfach alle 0/1-Werte hintereinander.
Das taucht später auch nie mehr auf.
"Topfragenliste"
In der "Gleichung" fehlen die umschließenden geschweiften Klammern. Vermutlich sind dort auch Zeilenumbrüche vorhanden.
Es wird eine Verkettung der Fragencodes erzeugt, bei denen die Antwort "4" gegeben wurde, nicht die in "MaxPunkte" errechnete Zahl.
Auch hier die Frage: Was willst Du erreichen? Vermutlich wolltest Du später - in Top3 - darauf referenzieren, um nur diese anzuzeigen. Das geht aber auf einfacher durch einfachen Vergleich mit "MaxPunkte, was Du ja auch machst.
"Top3"
Hier ist die Minimale Antwortzahl auf 3 gesetzt.
Was, wenn der Teilnehmer nur zwei Fragen mit "4" beantwortet hat?
Dies muss dynamisch eingestellt werden.
Maximum berechnen, Anzahl der Antworten zum Maximum (AM) berechnen, {if(AM>3,3,AM)} als Minimale Antwortzahl.
Andererseits müsste man diese Frage gar nicht anzeigen, wenn weniger als 4 angezeigt werden würden. Das wären dann ja schon die Top3.
"Zusatzpunkte"
Hier geht es jetzt aber völlig "in die Hose"
Auch hier fehlen in der "Gleichung" die geschweiften Klammern. Immer, wenn Du in der Fragenübersicht nicht das "Syntax-Highlighting" siehst, ist irgendetwas falsch.
Mit den Klammern siehst Du dies:
"Top3" ist also irgendwie falsch.
Ist ja klar: "Top3" ist eine Mehrfachnennungsfrage.
Daher besteht der QCODE aus Fragencode und Teilfragencode, wie hier beschrieben
[url]
www.limesurvey.org/manual/ExpressionScri...e-Variablenbenennung
[/url]
Also "Top3_G01Q01".
Aber hier bin ich jetzt völlig überfordert, was diese Gleichungen sollen.
strpos(Top3.NAOK, "G01Q01")
Wie im Bild zu sehen, ist "Top3" als solches nicht definiert.
Und die Teilfrage "Top3_G01Q01" kann die Werte "Y" und "" annehmen, je nachdem, ob sie ausgewählt wurde oder nicht.
Eine Funktion könnte also sein
{if(Top3_G01Q01=="Y","wurde ausgewählt","wurde nicht ausgewählt")}
In den Endberechnungen taucht dieses Konstrukt ja auch wieder auf.
"MaxPunkteKA"
Hier haben wir eine Funktion
max(num(EndberechnungTF), num(EndberechnungGM),...
Was ist denn "
num(EndberechnungTF)"?
Woher stammt die Funktion "num"?
Wie Du hier siehst, gibt es so etwas in LimeSurvey nicht
[url]
www.limesurvey.org/manual/ExpressionScri...mentierte_Funktionen
[/url]
"KA1"
Hier ist dieses verschachtelte IF
if(EndberechnungTF == MaxPunkteKA, "TF",
if(EndberechnungGM == MaxPunkteKA, "GM",
if(EndberechnungAU == MaxPunkteKA, "AU",
if(EndberechnungSE == MaxPunkteKA, "SE",
if(EndberechnungEC == MaxPunkteKA, "EC",
if(EndberechnungSV == MaxPunkteKA, "SV",
if(EndberechnungCH == MaxPunkteKA, "CH",
if(EndberechnungLS == MaxPunkteKA, "LS","Fehler: Kein KA1 gefunden")))))))))
Theoretisch ist es in Ordnung, aber was passiert, wenn EndberechnungGM und EndberechnungSV beide die MaxPunkteKA erreichen?
Da die IF-Funktion bereits bei GM erfüllt ist, bricht sie hier ab und SV fällt unter den Tisch.
Ich habe noch nicht genau geschaut. Ist es vielleicht unmöglich, dass zwei Gruppen denselben Maxwert erreichen können?
Das sind jetzt zunächst einmal ein paar gefundene Fehler.
Wie gesagt, ich werde einmal etwas besteln.
Eine Verständnisfrage:
Nehmen wir an, die MaxPunktzahl sei 3 und es gäbe 7 Fragen mit dieser MaxPunktzahl.
Nun wählt er drei aus.
Dann gehen diese drei Fragen mit 7 in die Rechnung ein, oder?
Samsung
Joffm