Oft ist es notwendig, dass der Text von Fragen oder Labels die
Antworten von vorhergehenden Fragen enthält, bzw. in irgendeiner
Weise von diesen abhängt. Dafür gibt es die Möglichkeit, Labels
anderer Fragen in beliebige Textbereiche einer Umfrage
einzubinden. Sehr nützlich ist hierbei auch die Funktion der
Group
(„Group“).
Um Textersatz überhaupt nutzen zu können, muss der Skriptparameter
enableTextReplace
auf yes
gesetzt werden, siehe hierzu auch „Skriptparameter“.
Der eigentliche Textersatz findet mit dem Befehl @insert
statt.
-
@insert
Wenn Textersatz mit
enableTextReplace=yes
eingeschaltet ist, kann der Inhalt einer VariablenVAR
mit@insert
an beliebigen Stellen in Textbereichen eingefügt werden.@insert(VAR) // auch @insert[VAR] oder @insert{VAR} SingleQ geschlecht; text="Sind Sie... ?"; labels= 1 "männlich" 2 "weiblich" ; TextQ text_test; text="Sie sind @insert(geschlecht).";
Alle Variablen in Q. werden beim Textersatz in einer bestimmten Art und Weise repräsentiert.
Während 1-aus-N Variablen, sofern möglich, den zu ihrem Wert gehörigen Labeltext einblenden,
listen N-aus-M Variablen ihre enthaltenen Werte auf. Um auch Mehrfachnennungen ansprechend
und nach Wunsch einzublenden, gibt es MultiQTextInsert
.
-
MultiQTextInsert
bildet eine neue Textvariable
NAME
. Greift die Werte einer N-aus-M VariablenVAR
auf und ersetzt diese durch ihre zugehörigen Labeltexte. Dafür muss definiert werden, durch welches Zeichen der Labeltext eingeleitet (BEF
= before) sowie durch welches Zeichen der Labeltext abgeschlossen (AFT
= after) wird. Als letztes wird angegeben, durch welches Zeichen die Labeltexte voneinander getrennt werden sollen (DEL
= delimiter).MultiQTextInsert NAME = (VAR, BEF, AFT, DEL);
MultiQTextInsert ti_q9=(q9, "[", "]", ", "); multiq q9; text = "Fragetext..."; labels= 1 "A" 2 "B" 3 "C" 4 "D" ; // Anzeige bei @insert(ti_q9) z.B.: // [A], [B], [D] // Sollen die Labeltexte nicht von Zeichen umschlossen werden, // können die ersten zwei Anführungszeichen leer gelassen werden: // MultiQTextInsert ti_q9=(q9, " ", " ", ", ");
Der Textersatz mit @insert
kann auch
für dynamische Inhalte und Darstellungen eingesetzt
werden. In Kombination mit group
lässt sich, abhängig von vorherigen Informationen,
unterschiedlicher Content darstellen. Das folgende
Beispiel verdeutlicht, wie ein Bild abhängig von einer
vorherigen Auswahl eingebunden werden könnte.
singleq auswahl; text="Bitte wählen Sie aus:"; labels= 1 "Auswahl A" 2 "Auswahl B" ; group img_auswahl; labels= 1 "bild_A.jpg" (auswahl eq 1) 2 "bild_B.jpg" (auswahl eq 2) ; textq image; text="Bitte betrachten Sie das Bild: title="<img src=./media/@insert(_surveyname)/@insert(img_auswahl)>";
-
DecimalFormat
Alle Zahlenwerte sind in Q. Fließkommazahlen mit Nachkommastelle. Um Zahlen formatiert anzuzeigen, gibt es
DecimalFormat
, das eine neue VariableNAME
anlegt und die VariableVAR
im alternativen FormatFORMAT
[1] speichert.DecimalFormat NAME = (VAR, FORMAT); // min. 1 Vorkommastelle und fix 2 Nachkommastellen DecimalFormat meinDF = (euro, "0.00");