0 votes
in SoSci Survey (dt.) by s263017 (110 points)

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

1 Answer

0 votes
by SoSci Survey (339k points)
edited by SoSci Survey

Die Antworten jedes einzelnen Punktes wollte ich im Ergebnisbericht anzeigen lassen:

Bitte ersetzen Sie
value('A202_01')
durch
value('A202_01', 'label')

The function value() is available only if there's a single interview to be used as record

Diese Meldung dürften Sie nur sehen, wenn Sie den Ergebnisbericht aus der Verwaltungsoberfläche heraus starten (mit dem Abspielen-Pfeil) und in den Einstellungen (Zahnrad-Symbol) keine gültige Fallnummer eingetragen haben.

In dem Fall weiß SoSci Survey nicht, aus welchem Fall es sich die Werte holen soll.

ob es zufälligerweise eine gute Möglichkeit gibt eine Kopf- und Fußzeile im Ergebnisbericht zu erstellen

Ja. Verwenden Sie das Template (die Seite vor der ersten Seite) und binden Sie dort ein PDF quasi als Briefpapier ein oder binden sie Texte ein - ein paar Platzhalter sind auch möglich. Dieses wird dann für alle Seiten in den Hintergrund gelegt.

Der PHP-Code im Template könnte z.B. wie folgt aussehen.

set("family", "Jura");
set("title.family", "Jura");
set('size', 10);

add(image("logo.jpg"), ["right" => 10, "top" => 10, "width" => 45]);
add(separator(), ["left" => 10, "top" => 27, "right" => 10, "height" => 10]);
add(separator(), ["left" => 10, "bottom" => 10, "right" => 10, "height" => 2]);
add(
	["left" => 10, "top" => pageheight() - 9, "right" => 10, "size" => 8, "color" => "#707070"],
	text("%page.month.full% %page.year%"),
	text("© Whatever", ["top" => 0,"left" => 115]),
	text("%page.num%", ["top" => 0, "right" => pageWidth(), 'text-align' => 'right', "width" => 10])
);

Danke für den Hinweis, dass das in der Anleitung fehlte - hiermit ergänzt (https://www.soscisurvey.de/help/doku.php/de:results:report#kopf-_und_fusszeile).

Wenn es spezieller werden soll (z.B. wechselnde Überschrift), können Sie in der Seitenvorlage auch eine Funktion definieren, welche z.B. Text an eine bestimmte Stelle schreibt, und diese Funktion dann auf den einzelnen Seiten nur noch mit dem richtigen Text aufrufen.

by s263017 (110 points)
Vielen Dank für die schnelle Beantwortung der Fragen!

Ich habe das 'label' als entsprechenden Parameter hinzugefügt und habe Folgendes festgestellt:
Beim Abändern von value('A204') zu value('A204', 'label') wurde das Label entsprechend angepasst. Jedoch war das nicht der Fall bei value('A202_01') - der entsprechende Zahlenwert wird weiterhin angezeigt.

"Diese Meldung dürften Sie nur sehen, wenn Sie den Ergebnisbericht aus der Verwaltungsoberfläche heraus starten (mit dem Abspielen-Pfeil) und in den Einstellungen (Zahnrad-Symbol) keine gültige Fallnummer eingetragen haben."
 
Das hat funktioniert.
Jedoch erscheint mir die Fehlermeldung weiterhin. Ich verwende hierbei nicht die Verwaltungsoberfläche, sondern erstelle nach jedem ausgefüllten Fragebogen einen Bericht, der dann per Mail weitergeleitet wird.
Ich habe auch schon verschiedene Einstellungen ausprobiert, erhalte aber weiterhin die Fehlermeldung.  So habe ich für den Interview-Kontext "Fragebogen-Entwicklung" ausgewählt und dann entsprechend "Ergebnisberichte (zum Bearbeiten)" "Ergebnisberichte und erhobene Daten" und "Erhobene Daten" ausprobiert.

Vielen Dank für den zusätzlichen Code! Das hat mir sehr weitergeholfen.
by SoSci Survey (339k points)
> Jedoch war das nicht der Fall bei value('A202_01') - der entsprechende Zahlenwert wird weiterhin angezeigt.

Was ist A202 denn für ein Fragetyp und was zeigt die "Variablen-Übersicht" für A202_01 an?

> sondern erstelle nach jedem ausgefüllten Fragebogen einen Bericht, der dann per Mail weitergeleitet wird.

Und in dem PDF, welches der E-Mail angehängt wird, wird diese Meldung anezeigt? Wie wird der Versand der E-Mail denn ausgelöst? Verwenden Sie ein mailSchedule() im Fragebogen?
by s263017 (110 points)
Beim Fragentyp handelt es sich um "Mehrfache Dropdowns". In der Variablen-Übersicht wird mir nur A202_01 "Auftrag" angezeigt.
Unter dem Punkt "Beschriftung einzeln eintragen" habe ich bei 1 = Ja und bei 2 = Nein eingetragen.

Genau, in der PDF wird die Meldung angezeigt. Jedoch wird die Auswertung nicht als Anhang versendet, sondern wird mit einem Link zur Verfügung gestellt. mailSchedule() wird nicht verwendet.

Auf der letzten Seite der Befragung habe ich folgenden Code beigefügt:

$reportURL = reportURL('Bericht');
$emailBody = "bitte klicken Sie auf den folgenden Link, um den Bericht herunterzuladen: <a href='"  . $reportURL . "'>Bericht herunterladen </a>";
mailSend('nutzer@mail.de', 2, NULL, NULL, $emailBody);
by SoSci Survey (339k points)
Die mehrfachen Dropdowns sind ein relativ neuer Fragetyp, ich vermute, dass da noch ein Anzeigefehler vorliegt. Wir werden uns das ansehen - das wird urlaubsbedingt aber erst bis Anfang kommende Woche passieren.

Was die fehlermeldung zum Report angeht: Wird diese auch ausgegeben, wenn Sie den Link direkt im Fragebogen anzeigen und anklicken?

Es gibt noch eine nette Funktion, die Sie in diesem Kontext vielleicht interessieren könnte: Und zwar können Sie bei der Serienmail unter "Anhänge" den Report auswählen, sodass dieser direkt mit der E-Mail verschickt wird.
by SoSci Survey (339k points)
Wir haben dem Fragetyp "Mehrfache Dropdowns" nun beigebracht, wie er mit den Wertelabels korrekt umgeht. Bitte testen Sie, ob value(..., 'label')  nun das erwartete Ergebnis liefert.
by s263017 (110 points)
Vielen Dank für die schnelle Bearbeitung dieses Punktes!
Die Wertelabels werden nun korrekt ausgegeben.

Um nochmal auf den obigen Punkt zurückzukommen:
Wenn ich den Bericht als Link hinzufüge, scheint es bisher zu klappen.
Bei den anderen Fällen jedoch nicht.

Danke auch für den Hinweis! Ich hatte das vorher auch schon ausprobiert und versucht den Ergebnisbericht direkt als Anhang hinzuzufügen. Jedoch kam es in diesem Fall dann dazu, dass die komplette Seite gar nicht mehr angezeigt wurde und auch keine Mail verschickt wurde. Also die letzte Seite des Fragebogens wurden dann nicht mehr angezeigt.
by SoSci Survey (339k points)
edited by SoSci Survey
> Wenn ich den Bericht als Link hinzufüge, scheint es bisher zu klappen.
> Bei den anderen Fällen jedoch nicht.

Könnten Sie mir wohl bitte mal eine solche E-Mail an info@soscisurvey.de senden. Ich würde gerne schrittweise verfolgen, an welcher Stelle es nicht funktioniert.

> Also die letzte Seite des Fragebogens wurden dann nicht mehr angezeigt.

Nur zur Sicherheit ein paar Punkte:

* Sie haben mit mailSchedule() gearbeitet, und
* das Interview war zuvor bereits durch einen personalisierten Link gestartet worden?
* Außerdem haben Sie in der Serienmail bei den Reports in der dritte Spalte ausgewählt, dass der neueste verfügbare Fall verwendet werden soll?

>  die letzte Seite des Fragebogens wurden dann nicht mehr angezeigt.

Ich habe es auf s2survey.net gerade getestet und bekam einige Fehlermeldungen angezeigt, die da natürlich nicht sein sollten. Der Report wurde aber korrekt verschickt. Die Fehlermeldungen tauchen jetzt auch nicht mehr auf.

Wenn Sie wieder das Phänomen haben, dass die Seite gar nicht dergestellt wird, und wenn Sie auf s2survey.net arbeiten, dann teilen Sie mir bitte den genauen Zeitpunkt mit, wann das passiert ist. Danke!
by s263017 (110 points)
Danke nochmal für die Klarstellung der Punkte!

Ich muss für die Beantwortung der Frage wohl etwas genauer auf meinen Use-Case eingehen:
Ich möchte den Fragebogen in eine andere Webseite als IFrame einbauen und die jeweiligen Ergebnisse des Fragebogens sollen nur an eine einzige Mailadresse als Ergebnisbericht weitergeleitet werden.

Folglich arbeite ich nicht mit mailSchedule, sondern nur mit mailSend. Beim Testen von mailSchedule erhalte ich die folgende Nachricht: "Dieses Interview wurde nicht in Verbindung mit einer Serienmail begonnen, daher kann mailSchedule() den passenden Adressaten nicht ermitteln."
Ein personalisierter Link ist dementsprechend auch nicht verfügbar.

Kann ein Ergebnisbericht nur mit mailSchedule als Anhang versendet werden?
Der Fall, dass weder Mail noch Ergebnisbericht versendet wurden, trat in Kombination mit mailSend() auf. Als ich sowohl mailSend, als auch den Ergebnisbericht als Anhang beifügen wollte.
by SoSci Survey (339k points)
> Beim Testen von mailSchedule erhalte ich die folgende Nachricht: "Dieses Interview wurde nicht in Verbindung mit einer Serienmail begonnen, daher kann mailSchedule() den passenden Adressaten nicht ermitteln."

mailSchedule() versendet jede Serienmail ohnehin nur einmal pro Adresseintrag - das hilft Ihnen also wahrscheinlich nicht weiter.

Diese Meldung liegt aber vermutlich daran, dass bei den Report-Attachments in der dritten Spalte nichts ausgewählt war oder (!) dass es zu der Personenkennung des Adresseintrags eben keinen Datensatz gibt.

> Kann ein Ergebnisbericht nur mit mailSchedule als Anhang versendet werden?

Bei mailSend() hat die Serienmail keine Personenkennung (SERIAL) anhand derer sie den passenden Datensatz zum Erstellen des Ergebnisberichts heraussuchen könnte. Aber das ließe sich ergänzen, wenn es für Ihren Anwendungsfall sinnvoll wäre?

Ansonsten sehen wir uns gerne noch den Link an, den Sie mittels reportURL() erstellen und dann per Platzhalter in der Serienmail verschicken. Könnten Sie mir so einen Link wohl bitte an info@soscisurvey.de weiterleiten? Ich habe nochmal überprüft, dass dieser kein Ablaufdatum hat und dieses Vorgehen eigentlich funktionieren müsste.

Ein personalisierter Link ist dementsprechend auch nicht verfügbar.

Kann ein Ergebnisbericht nur mit mailSchedule als Anhang versendet werden?
Der Fall, dass weder Mail noch Ergebnisbericht versendet wurden, trat in Kombination mit mailSend() auf. Als ich sowohl mailSend, als auch den Ergebnisbericht als Anhang beifügen wollte.

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...