Sehr geehrtes SoSci-Survey-Team,
ich habe mehrere Punkte, bei denen ich Ihre Hilfe benötigen würde. Ich hoffe, dass meine Ausführungen verständlich sind.
Erster Punkt:
Ich habe einen Fragetyp „Mehrfache Dropdowns“ mit den Variablen A202_01 bis A202_08, bei der jeweils zwei Antwortoptionen „Ja“ mit dem Wert A202_0X = 1 und „Nein“ mit A202_0X = 2 festgelegt werden.
Die Antworten jedes einzelnen Punktes wollte ich im Ergebnisbericht anzeigen lassen:
Wert1 = %Wert1%
…
Wert8 = %Wert8%
Hierbei sollten jedoch nicht die Zahlenwerte, sondern die Antwortoptionen angezeigt werden.
Ich wollte zunächst die Funktion replace() nutzen, um nicht die Zahlenwerte als Ausgabe zu erhalten. Um eine Lösung zu finden, bin ich bisher auf diesen Beitrag gestoßen, der die aktuell verfügbaren Funktionen auflistet: https://support.soscisurvey.de/?qa=61026/erstellung-automatischer-ergebnisbericht. Jedoch habe ich es nicht geschafft, die Zahlenwerte durch den Text zu ersetzen.
Gäbe es eine Möglichkeit dies zu realisieren?
Zweiter Punkt:
Ich habe bei Frage C103 eine Skalierung mit 6 Werten, wobei einer der Werte eine Ausweichoption darstellt, welche ich aufgrund von weiteren Datenauswertungen in der internen Variable C102 auf 0 setze.
Den dazugehörigen PHP-Code habe ich hier aufgelistet:
$items = getItems('C103');
foreach ($items as $item) {
$original = value(id('C103', $item));
if ($original < 0) {
put(id('C102', $item), (int)$original + 1);
}
else if ($original > 0) {
put(id('C102', $item), (int)$original);
}
}
Die Funktionalität ist bisher auch gewährleistet:
Hier die Debug-Informationen:
[Information] value("C103_01") = -1
[Information] Die interne Variable C102_01 wird mit dem Wert 0 belegt.
[Warnung] Der Wert von Variable C102_01 wurde geändert
[Information] value("C103_02") = 5
[Information] Die interne Variable C102_02 wird mit dem Wert 5 belegt.
Bisher hat alles wie intendiert funktioniert. In der Datenauswertung wurde auch alles korrekt berechnet.
Nun soll am Ende des Fragebogens ein Ergebnisbericht abgeschickt werden, bei dem diverse Werte berechnet werden und angezeigt werden sollen. Hierbei kam es zu folgender Fehlermeldung:
The function value() is available only if there's a single interview to be used as record.
The function valueSum() is available only if there's a single interview to be used as record.
Diese Fehlermeldung tritt bei allen Werten auf. Ich habe Ihnen hier noch den Code für den Textbaustein A01 bereitgestellt:
add(
content('A01', [
'%U%' => value('A201_01'),
'%K%' => value('A201_02'),
'%B%' => value('A201_04'),
'%Wert1_B102%' => valueSum(['B102_01', 'B102_02', 'B102_03', 'B102_04', 'B102_05', 'B102_06', 'B102_07', 'B102_08', 'B102_09', 'B102_10']) / 50*100,
'%Wert2_B102%' => valueSum(['B102_11', 'B102_12', 'B102_13', 'B102_14', 'B102_15', 'B102_16', 'B102_17', 'B102_18', 'B102_19', 'B102_20', 'B102_21', 'B102_22']) / 60*100,
'%Wert3_B102%' => valueSum(['B102_23', 'B102_24', 'B102_25', 'B102_26', 'B102_27', 'B102_28']) / 30*100,
'%Wert4_B102%' => valueSum(['B102_29', 'B102_30', 'B102_31', 'B102_32', 'B102_33', 'B102_34', 'B102_35']) / 35*100,
'%Wert5_B102%' => valueSum(['B102_36', 'B102_37', 'B102_38', 'B102_39', 'B102_40', 'B102_41', 'B102_42', 'B102_43', 'B102_44']) / 45*100,
'%Wert1_C102%' => valueSum(['C102_01', 'C102_02', 'C102_03', 'C102_04', 'C102_05', 'C102_06', 'C102_07', 'C102_08', 'C102_09', 'C102_10', 'C102_11']) / 55*100,
'%Wert2_C102%' => valueSum(['C102_12', 'C102_13', 'C102_14', 'C102_15', 'C102_16', 'C102_17']) / 30*100,
'%Wert3_C102%' => valueSum(['C102_18', 'C102_19', 'C102_20', 'C102_21']) /20*100,
'%Wert4_C102%' => valueSum(['C102_22', 'C102_23', 'C102_24', 'C102_25', 'C102_26']) / 25*100,
'%DB%' => value('A203_01'),
'%KH%' => value('C104_01'),
'%D%' => value('C107_01'),
'%Wert1%' => value('A202_01'),
'%Wert2%' => value('A202_02'),
'%Wert3%' => value('A202_03'),
'%Wert4%' => value('A202_04'),
'%Wert5%' => value('A202_05'),
'%Wert6%' => value('A202_06'),
'%Wert7%' => value('A202_07'),
'%Wert8%' => value('A202_08'),
'%DL%' => value('A204'),
'%Date%' => value('A201_03'),
]),
[
'top' => 40,
'left' => 10,
'right' => 50,
]
);
Ich bin davon ausgegangen, dass die Fehlermeldung etwas mit der Nutzung der internen Variable zu tun hat.
Zu guter Letzt wollte ich die Chance nutzen, um Sie zu fragen, ob es zufälligerweise eine gute Möglichkeit gibt eine Kopf- und Fußzeile im Ergebnisbericht zu erstellen.
Vielen Dank im Voraus!
Viele Grüße