Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision | ||
de:survey:quota [11.03.2021 13:08] – [Zählung der vorliegenden Fälle] sophia.schauer | de:survey:quota [09.09.2022 21:10] – [Filterung] admin | ||
---|---|---|---|
Zeile 8: | Zeile 8: | ||
- | ===== Funktionsweise===== | + | ===== Minimal-Quotierung ===== |
+ | |||
+ | Mitunter soll eine Erhebung mit dem Erreichen einer bestimmten Anzahl von Fällen beendet werden. | ||
+ | |||
+ | Legen Sie im Fragenkatalog einen Text an, welcher nach Erreichen der Fallzahl angezeigt werden soll und fügen Sie auf der ersten Seite des Fragebogens ganz oben folgenden PHP-Code ein. Der Beispiel-Code geht davon aus, dass der Text die Kennung " | ||
+ | |||
+ | <code php> | ||
+ | // Abgeschlossene Fragebögen zählen | ||
+ | $finished = statistic(' | ||
+ | // Filter zum Quotenstopp | ||
+ | if ($finished >= 250) { | ||
+ | // Text anzeigen | ||
+ | text(' | ||
+ | // Weiter-Knopf ausblenden | ||
+ | buttonHide(); | ||
+ | // Keine weiteren Inhalte dieser Seite zeigen | ||
+ | pageStop(); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | **Hinweis: | ||
+ | |||
+ | ==== Filterung ==== | ||
+ | |||
+ | Falls Sie sicherstellen möchten, dass nur Fälle mit bestimmten Eigenschaften gezählt werden, legen Sie eine [[: | ||
+ | |||
+ | <code php> | ||
+ | $time = caseTime(' | ||
+ | if ($time >= 600) { | ||
+ | put(' | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Der eigentliche Quotestopp bezieht sich dann nicht mehr auf die Variable " | ||
+ | |||
+ | <code php> | ||
+ | // Gültige Fragebögen zählen | ||
+ | $valid = statistic(' | ||
+ | // Filter wie oben | ||
+ | if ($valid >= 250) { | ||
+ | text(' | ||
+ | buttonHide(); | ||
+ | pageStop(); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Funktionsweise | ||
Die Quotierung erfolgt in folgenden Schritten: | Die Quotierung erfolgt in folgenden Schritten: | ||
Zeile 33: | Zeile 80: | ||
===== Technische Umsetzung (unverbundene Quoten) ===== | ===== Technische Umsetzung (unverbundene Quoten) ===== | ||
- | Die technische Umsetzung erfolgt mittels [[: | + | Die technische Umsetzung erfolgt mittels [[: |
Im folgenden werden exemplarisch zwei Merkmale quotiert: Alter (offen abgefragt in Variable " | Im folgenden werden exemplarisch zwei Merkmale quotiert: Alter (offen abgefragt in Variable " | ||
Zeile 240: | Zeile 287: | ||
redirect(' | redirect(' | ||
</ | </ | ||
+ | |||
+ | |||
+ | ===== Fehlersuche ===== | ||
+ | |||
+ | Die Implementierung einer Quotierung ist im Moment nicht ganz trivial (Optimierung in Arbeit) -- und es schleichen sich immer mal wieder Fehler im Code ein. Zum Beispiel werden Fälle abgewiesen, obwohl die Quoten noch nicht erfüllt sind. | ||
+ | |||
+ | Wir setzen voraus, dass Sie mir der Funktion der Debug-Information (siehe [[: | ||
+ | |||
+ | Damit alle für die Fehlersuche notwendigen Informationen angezeigt werden, sind zwei Modifikationen sehr hilfreich. | ||
+ | |||
+ | ==== (1) Redirect zweitweise deaktivieren ==== | ||
+ | |||
+ | Deaktivieren Sie die Redirects, sodass die Debug-Informationen überhaupt angezeigt werden. Sie können das '' | ||
+ | |||
+ | <code php> | ||
+ | // Quotenstopp | ||
+ | if (($casesAge >= $maxPerAge) || ($casesGender >= $maxPerGender)) { | ||
+ | redirect(' | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ... dann ändern Sie den Code zur Fehlersuche wie folgt. | ||
+ | |||
+ | <code php> | ||
+ | // Quotenstopp | ||
+ | if (($casesAge >= $maxPerAge) || ($casesGender >= $maxPerGender)) { | ||
+ | // redirect(' | ||
+ | html('< | ||
+ | pageStop(); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== (2) Quoten-Zählung anzeigen ==== | ||
+ | |||
+ | In der Debug-Information sehen Sie beriets, welche Werte '' | ||
+ | |||
+ | Ergänzen Sie einfach für alle Filter-relevanten Variablen eine Zeile '' | ||
+ | |||
+ | <code php> | ||
+ | // Zusätze Informationen anzeigen | ||
+ | debug($casesAge); | ||
+ | debug($maxPerAge); | ||
+ | debug($casesGender); | ||
+ | debug($maxPerGender); | ||
+ | |||
+ | // Quotenstopp | ||
+ | if (($casesAge >= $maxPerAge) || ($casesGender >= $maxPerGender)) { | ||
+ | // redirect(' | ||
+ | html('< | ||
+ | pageStop(); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Damit können Sie unmittelbar nachvollziehen, | ||
+ | |||
+ | <code php> | ||
+ | // Auslesen der Quoten für die angegeben Merkmale | ||
+ | $maxPerAge | ||
+ | $maxPerGender = $quotaGender[$gender]; | ||
+ | </ | ||
+ | |||
+ | Wenn z.B. unklar ist, woher der Wert für '' | ||
+ | |||
+ | <code php> | ||
+ | // Auslesen der Quoten für die angegeben Merkmale | ||
+ | $maxPerAge | ||
+ | $maxPerGender = $quotaGender[$gender]; | ||
+ | |||
+ | // Zusätzliche Informationen anzeigen | ||
+ | debug($ageGroup); | ||
+ | debug($quotaAge); | ||
+ | debug($maxPerAge); | ||
+ | </ | ||
+ | |||
+ | Diese Informationen helfen auch im [[https:// |