274

GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8
Page 2: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

GESS Q.

Anwenderhandbuch

Manuel Trittel, Patrick Goltzsch, Seline Günther

Stand: März 2018

GESS Gesellschaft für Software in der Sozialforschung mbH

Waterloohain 6-8

22769 Hamburg

Tel. 040 - 853 753 0

Fax 040 - 853 753 433

[email protected]

www.gessgroup.de

Page 3: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Inhaltsverzeichnis

1 Grundlagen 11.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Programmversionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2.1 GESS Q. Desktop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2.2 GESS Q. Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2.3 GESS Q. Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2.4 GESS Q. CAPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2.5 Demo-, Vollversionen und Updates . . . . . . . . . . . . . . . . . . . . . 31.2.6 Einrichtungsbeispiele und Projektverwaltung mit GESS Q. Desktop . . 3

1.3 Einführung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.4 Voraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Präprozessordirektiven 72.1 Kommentare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2 Include . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3 Define . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.4 Makro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3 Fragedefinitionen 113.1 Fragetypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2 Allgemeine Eigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.3 SingleQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.4 SingleQ - Alternative Auswahlmöglichkeiten . . . . . . . . . . . . . . . . . . . . 173.5 MultiQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.6 OpenQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.7 PasswdQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.8 TextQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.9 NumQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.10 GNumQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.11 SingleGridQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.11.1 Standard-Grid-Frage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.11.2 Transponierte Grid-Frage . . . . . . . . . . . . . . . . . . . . . . . . . 223.11.3 Grid-Frage mit mehreren Frageblöcken (LabelGroups) . . . . . . . . . 233.11.4 Datenablage und -zugriff . . . . . . . . . . . . . . . . . . . . . . . . . . 243.11.5 Directionals / bipolare Skalen . . . . . . . . . . . . . . . . . . . . . . . 243.11.6 Weitere GridQ-Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.12 MultiGridQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.13 UploadQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273.14 Antwortlabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4 Definition des Interviewablaufs 374.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.2 Blöcke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.3 Screens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.4 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.5 Whitelist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Page 4: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

5 Intervieweinstellungen 405.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405.2 Skriptparameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405.3 HTML-Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

6 Textersatz mit @insert 57

7 Screens 597.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597.2 HTML-spezifische Screen-Funktionen . . . . . . . . . . . . . . . . . . . . . . . . 61

7.2.1 HTML-Code einbinden . . . . . . . . . . . . . . . . . . . . . . . . . . . 617.2.2 HTML-Label . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

7.3 Dynamische Screen-Inhalte / Javascript . . . . . . . . . . . . . . . . . . . . . . 64

8 Besondere Variablentypen 658.1 Compute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658.2 Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658.3 DictFileVar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688.4 DecisionVar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688.5 IntRandom (Zufallszahlen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698.6 Blockzähler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698.7 TextElement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708.8 Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 708.9 TextArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718.10 VarArray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718.11 RestrictVar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718.12 Mailbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

9 Interne Variablen 739.1 Datum und Uhrzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739.2 Weitere Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739.3 Laufzeitumgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749.4 Externe URL-Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749.5 Exit-Code (_finished) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759.6 Zugangscode und Fallnummer (_respid und _caseid) . . . . . . . . . . . . . . . 759.7 Abbruchcode (_cancel) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 759.8 Wiederaufnahme nach Abbruch (_resume) . . . . . . . . . . . . . . . . . . . . . 769.9 Export interner Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

10 Filter- und Plausibilitätsbedingungen 7810.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7810.2 Bedingungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

10.2.1 Prüfung bei Arrays und Multivariablen . . . . . . . . . . . . . . . . . . 7910.2.2 Funktionen in Bedingungen . . . . . . . . . . . . . . . . . . . . . . . . . 79

10.3 Filterbedingungen (flt) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8210.3.1 Filter allgemein . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8210.3.2 Filter an Fragen, Blöcken, Screens . . . . . . . . . . . . . . . . . . . . . 8310.3.3 Filter in Labellisten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8410.3.4 Filter in Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8410.3.5 Spezialitäten: Filtertexte, noexport und setfilter . . . . . . . . . . . . . 85

10.4 Plausibilitätsbedingungen (assert) . . . . . . . . . . . . . . . . . . . . . . . . . . 86

Page 5: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

11 Sortieren 8811.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8811.2 Array-Inhalte als Sortier-Reihenfolge . . . . . . . . . . . . . . . . . . . . . . . . 9111.3 Automatisches Erzeugen der Sortier-ID . . . . . . . . . . . . . . . . . . . . . . . 93

12 Quoten 9412.1 Quotenvariablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9412.2 Quotengruppen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9512.3 Quoten und Zugriffsrechte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

13 Action-Befehle und -Blöcke 9813.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9813.2 Actionbefehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10013.3 Kontrollstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

14 Template, Layout, grafische Elemente 11314.1 Rahmenlayout - Das Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

14.1.1 Struktur des Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . 11314.1.2 template_error.html . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11414.1.3 Platzhalter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11414.1.4 Liste der Platzhalter im template . . . . . . . . . . . . . . . . . . . . . 11514.1.5 Fortschrittsbalken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11614.1.6 Die GESS Javascript Bibliothek gesstmpl.js . . . . . . . . . . . . . . . . 119

14.2 Grafische Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11914.2.1 Voraussetzungen für die Verwendung . . . . . . . . . . . . . . . . . . . 12014.2.2 GESS Q. Skript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12014.2.3 Einstellbare Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . 12114.2.4 Beispielcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

14.3 Grafische Formatierung und Layout . . . . . . . . . . . . . . . . . . . . . . . . . 12414.3.1 CSS Classnames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12514.3.2 Formatierung von einzelnen Fragen, Bereichen und Fragetypen . . . . . 12714.3.3 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12714.3.4 CSS der Frage mitgeben . . . . . . . . . . . . . . . . . . . . . . . . . . . 12814.3.5 CSS, die nicht empfohlene Variante . . . . . . . . . . . . . . . . . . . . 12914.3.6 Responsive Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

14.4 Selbstgebaute Screens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13114.5 Grafische Navigationsbuttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13214.6 Eigene Templates bereitstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

15 SliderQ: Schieberegler 13615.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13615.2 Voraussetzungen für die Verwendung . . . . . . . . . . . . . . . . . . . . . . . . 13615.3 GESS Q. Skript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13615.4 Einstellbare Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

15.4.1 Grafische Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13715.4.2 Funktionale Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

15.5 Beispielcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14015.6 Grafische Formatierung und Layout . . . . . . . . . . . . . . . . . . . . . . . . . 140

16 QSortable: Die NumQ als Drag & Drop Liste 14216.1 Skriptsyntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

Page 6: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

16.2 Einstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

17 Datalist-Tool: Performance bei langen Listen 14617.1 Skript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14617.2 Die JSON-Datei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14717.3 Einstellbare Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

18 PackagingQ: Verpackungskonfigurator 15018.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15018.2 Voraussetzungen für die Verwendung . . . . . . . . . . . . . . . . . . . . . . . . 15018.3 PackagingQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15018.4 Einstellbare Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

18.4.1 Bildfläche / Korpus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15118.4.2 Gruppierungsoptionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15118.4.3 Einstellungen des Sichtbarkeitsmenüs . . . . . . . . . . . . . . . . . . . 15218.4.4 Korrespondenz Label - Grafik . . . . . . . . . . . . . . . . . . . . . . . 15218.4.5 Randomisierung und Filter . . . . . . . . . . . . . . . . . . . . . . . . . 15318.4.6 Optische Gestaltung mit CSS . . . . . . . . . . . . . . . . . . . . . . . . 153

18.5 Beispielcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

19 Tastatureingabe 155

20 Weitere grafische Komponenten 15720.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15720.2 Bildvorschau mit Thumbnails . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

20.2.1 Voraussetzungen für die Verwendung . . . . . . . . . . . . . . . . . . . 15720.2.2 Beispiel-Code: Thumbnail . . . . . . . . . . . . . . . . . . . . . . . . . . 158

20.3 Integration von Videos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15820.3.1 Formate und Skriptsyntax . . . . . . . . . . . . . . . . . . . . . . . . . 15820.3.2 Konfiguration des Players . . . . . . . . . . . . . . . . . . . . . . . . . . 159

20.4 Integration von Audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16020.4.1 Formate und Skriptsyntax . . . . . . . . . . . . . . . . . . . . . . . . . 16020.4.2 Konfiguration des Players . . . . . . . . . . . . . . . . . . . . . . . . . . 161

20.5 Dynamischen Ein/Ausblenden von Fragen in Screens . . . . . . . . . . . . . . . 16120.5.1 Voraussetzungen für die Verwendung . . . . . . . . . . . . . . . . . . . 16220.5.2 Beispiel-Code: Ein-/Ausblenden . . . . . . . . . . . . . . . . . . . . . . 162

20.6 Tachistoskopische Fragevarianten . . . . . . . . . . . . . . . . . . . . . . . . . . 16320.6.1 Voraussetzungen für die Verwendung . . . . . . . . . . . . . . . . . . . 16320.6.2 Tachistoskop Variante 1 (Timer) . . . . . . . . . . . . . . . . . . . . . . 16420.6.3 Tachistoskop Variante 2 (klassisch) . . . . . . . . . . . . . . . . . . . . . 165

20.7 HeatPlotter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16620.8 ImageMaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17020.9 3D Rotation Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

21 HTML, JS, HTTP Besonderheiten 17521.1 HTTP Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17521.2 Javascript Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

22 IDs, Preloads und Einladungslinks 17722.1 Teilnehmer-IDs und Preloads . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17722.2 Befragungsmodi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

Page 7: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

22.3 Einladungslinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

23 Panelanbindung 18023.1 Vom Panel zur Befragung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18023.2 Redirect zum Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

24 Die lokale Installation - GESS Q. Desktop 18324.1 Installation und Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

24.1.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18324.1.2 Verzeichnisstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

24.2 Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18524.2.1 Konfigurationsdatei qonline.cfg . . . . . . . . . . . . . . . . . . . . . . . 18524.2.2 Nutzerkonten und Zugriffsrechte: users.lst . . . . . . . . . . . . . . . . . 18824.2.3 Nutzerrollen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18824.2.4 access.lst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18924.2.5 Blacklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18924.2.6 server.lst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

24.3 Starten und Beenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19024.4 Lizenzierung und Update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

24.4.1 Lizenzierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19024.4.2 Update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

24.5 Anforderungen für GESS Q. Desktop . . . . . . . . . . . . . . . . . . . . . . . . 191

25 Der Produktivbetrieb - GESS Q. Server 19325.1 Empfehlung für GESS Q. Webserver . . . . . . . . . . . . . . . . . . . . . . . . 193

26 Die Benutzeroberfläche 19426.1 Starten von Interviews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19426.2 Robot: Screenshots erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19526.3 Studienkonfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

26.3.1 General settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19626.3.2 Survey access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19726.3.3 Backups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19826.3.4 Studien exportieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19826.3.5 Studien archivieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19826.3.6 Studien resetten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19926.3.7 Studien löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19926.3.8 Überprüfung der Skriptsyntax (Scriptcheck) . . . . . . . . . . . . . . . 19926.3.9 IDs konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20026.3.10 Reporting konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . 20226.3.11 Quota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20426.3.12 Filesystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20526.3.13 User assignment - Nutzerkonten . . . . . . . . . . . . . . . . . . . . . . 20626.3.14 Sprachmanagement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20626.3.15 Feedback Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20926.3.16 Print - Fragebogen drucken . . . . . . . . . . . . . . . . . . . . . . . . . 21226.3.17 Language Ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21326.3.18 Expanded Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21326.3.19 Logfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

26.4 Upload von Studien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21426.4.1 Server upload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214

Page 8: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

26.4.2 Android upload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21526.5 Daten und Export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

26.5.1 Native Data - Rohdaten verwalten . . . . . . . . . . . . . . . . . . . . . 21626.5.2 Exportvorgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21726.5.3 GESStabs var.inc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21926.5.4 Exportformate: ASCII, OPN, CSV, SPSS . . . . . . . . . . . . . . . . . 221

26.6 Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22226.6.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22326.6.2 Quota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22326.6.3 Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22326.6.4 GESStabs Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

26.7 Main - Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22626.8 Android Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22626.9 Survey Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

26.9.1 Anlegen neuer Studien . . . . . . . . . . . . . . . . . . . . . . . . . . . 22726.9.2 Import bestehender Studien . . . . . . . . . . . . . . . . . . . . . . . . 22826.9.3 Archiv-Übersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22826.9.4 Backup-Übersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22826.9.5 Konfigurationsdateien im Fragebogenverzeichnis . . . . . . . . . . . . . 22826.9.6 Dateivorlagen im Fragebogenverzeichnis unter text . . . . . . . . . . . . 229

26.10 Users - Benutzerverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23126.11 Help - Hinweise auf weitere Informationsquellen . . . . . . . . . . . . . . . . . . 23226.12 Server Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232

27 Fehlersuche 23327.1 Skriptcheck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23327.2 Variablenwerte überprüfen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23327.3 HTML-Ausgabe prüfen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234

28 Häufig gestellte Fragen 23528.1 Informationen aus dem Startlink lesen . . . . . . . . . . . . . . . . . . . . . . . 23528.2 Externe Befragungsteile: Hin und Zurück . . . . . . . . . . . . . . . . . . . . . . 235

29 Die Android App - GESS Q. Android 23729.1 Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23729.2 Menüführung und Sprache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23729.3 Installation und Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23929.4 Lizenzierung und Fallnummern . . . . . . . . . . . . . . . . . . . . . . . . . . . 23929.5 Datenaustausch über USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24029.6 Dienste App-Block und Net-Block . . . . . . . . . . . . . . . . . . . . . . . . . . 24229.7 Besonderheiten und Javascript Funktionen . . . . . . . . . . . . . . . . . . . . . 243

29.7.1 Startdefines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24329.7.2 Abbruch-/Wiederaufnahme von Interviews . . . . . . . . . . . . . . . . 24329.7.3 writerescuedata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24329.7.4 QR-Code Scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24329.7.5 Audio (MP3) im Hintergrund aufnehmen . . . . . . . . . . . . . . . . . 24429.7.6 Audio (MP3) punktuell via Recorder aufnehmen . . . . . . . . . . . . . 24429.7.7 Fotos aufnehmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24529.7.8 Net-Block starten/stoppen . . . . . . . . . . . . . . . . . . . . . . . . . 24629.7.9 Systemstart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24629.7.10 Videos abspielen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246

Page 9: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

29.7.11 Webbrowsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24629.7.12 Zahlentastatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

29.8 Kurzer Durchgang: GESS Q. Android auf dem Tablet . . . . . . . . . . . . . . 24829.9 Fehlersuche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252

30 GESS Q. im GESS Cati 25330.1 Interview Stammdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25330.2 PreQuoten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25430.3 Besondere Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254

Stichwortverzeichnis 256

Page 10: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Abbildungsverzeichnis

1.1 GESS Q. Software-Suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 GESS Q. Einrichtungsbeispiele im Arbeitsumfeld . . . . . . . . . . . . . . . . . 41.3 Vor- und Nachteile der Einrichtungsvarianten . . . . . . . . . . . . . . . . . . . 4

3.1 SingleQ-Alternativen: Liste, Liste mit Suche, scrollbare Liste . . . . . . . . . . . 183.2 Datenablage einer MultiGridQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

7.1 Ein Screen aus vier Fragen in zwei Spalten und zwei Zeilen . . . . . . . . . . . . 607.2 Ein Screen aus elf verschachtelten Bestandteilen . . . . . . . . . . . . . . . . . . 617.3 Ein unspektakuläres Beispiel für htmllabels . . . . . . . . . . . . . . . . . . . . 63

14.1 Fragebogen-Layout für ein GESS-Projekt . . . . . . . . . . . . . . . . . . . . . . 11314.2 Derselbe Fragebogen im Standardgewand für Android-Geräte . . . . . . . . . . 11314.3 Der Fortschrittsbalken überspringt einen Screen: changepbar(1) . . . . . . . . . 11714.4 Verschiedene Pfade mit gleicher Fragenanzahl . . . . . . . . . . . . . . . . . . . 11814.5 Grafische Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11914.6 Bildvorschau bei grafischen Buttons . . . . . . . . . . . . . . . . . . . . . . . . . 12214.7 CSS Classes für SingleQ und MultiQ . . . . . . . . . . . . . . . . . . . . . . . . 12514.8 CSS Classes für GNumQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12514.9 CSS Classes für SingleGridQ und MultiGridQ . . . . . . . . . . . . . . . . . . . 12614.10 Grafische Navigationsbuttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

15.1 Schieberegler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13615.2 CSS-Klassen SliderQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

16.1 Beispiel: NumQs als QSortable . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14216.2 QSortable Minimalbeispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14416.3 QSortable CSS Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

17.1 Beispiel: Datalist-Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

18.1 Verpackungskonfigurator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

20.1 Bildvorschau mit Thumbnails . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15720.2 Dynamisches Ein-/Ausblenden von Fragen . . . . . . . . . . . . . . . . . . . . . 16220.3 Tachistoskop Variante 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16420.4 Tachistoskop Variante 2 (klassisch) . . . . . . . . . . . . . . . . . . . . . . . . . 16520.5 HeatPlotter: Bildpunkte markieren . . . . . . . . . . . . . . . . . . . . . . . . . 16720.6 ImageMap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17020.7 3D Rotation Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

23.1 Schema Panelanbindung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

24.1 Oberfläche - Öffnen und Einbinden des Lizenzschlüssels . . . . . . . . . . . . . . 191

26.1 GESS Q. Menü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19426.2 Start interview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19526.3 Starten des Robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19526.4 Studie konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19626.5 General settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

Page 11: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

26.6 Survey access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19826.7 IDs managen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20026.8 Adding IDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20126.9 CSV-Upload von IDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20126.10 Studie konfigurieren: Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . 20226.11 Studie konfigurieren: Visibilities bearbeiten . . . . . . . . . . . . . . . . . . . . . 20326.12 Studie konfigurieren: Quotenprüfung . . . . . . . . . . . . . . . . . . . . . . . . 20426.13 Studie konfigurieren: Quoten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20426.14 Studie konfigurieren: Zeichencodierung . . . . . . . . . . . . . . . . . . . . . . . 20526.15 Sprachmanagement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20626.16 HTML-Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20826.17 Die Übersetzungstabelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20826.18 Nachfrage: Alle Vorkommnisse übersetzen? . . . . . . . . . . . . . . . . . . . . . 20926.19 Feedback-PopUp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21026.20 Feedback-Übersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21126.21 Feedback editieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21126.22 Print: Voreinstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21226.23 Print: Inhalte wählen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21226.24 Print: Ergebnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21326.25 Print: Inhalte wählen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21426.26 Daten und Exportoptionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21526.27 Oberfläche für den Datenexport . . . . . . . . . . . . . . . . . . . . . . . . . . . 21626.28 Daten editieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21626.29 Rohdaten ansehen und editieren . . . . . . . . . . . . . . . . . . . . . . . . . . . 21726.30 Erster Schritt zum Datenexport . . . . . . . . . . . . . . . . . . . . . . . . . . . 21726.31 Datenexport: Colmap erzeugen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21826.32 Inhalt der Colmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21826.33 Übersicht des Datenexports mit Colmap . . . . . . . . . . . . . . . . . . . . . . 21926.34 Die GESStabs var.inc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22026.35 Optionen beim Speichern der GESStabs var.inc . . . . . . . . . . . . . . . . . . 22026.36 Exportformate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22126.37 Offene Nennungen speichern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22226.38 Quotenüberblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22326.39 Beispiel Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22426.40 Android Manager: angeschlossenes Gerät . . . . . . . . . . . . . . . . . . . . . . 22626.41 Android Manager: Blocker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22626.42 Android Manager: Surveys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22726.43 Beispiel skript.q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22926.44 Beispiel settings.q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23026.45 Server status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232

29.1 GESS Q. Android Übersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23729.2 Die Benutzeroberflächen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23829.3 Der Android USB Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24129.4 GESS Q. Android: Audio aufnehmen . . . . . . . . . . . . . . . . . . . . . . . . 24529.5 GESS Q. Android: Startbildschirm . . . . . . . . . . . . . . . . . . . . . . . . . 24829.6 GESS Q. Android: Anmeldung als Interviewer . . . . . . . . . . . . . . . . . . . 24829.7 GESS Q. Android: Hauptmenü . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24929.8 GESS Q. Android: Fragebogen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24929.9 GESS Q. Android: Anmeldung am Server . . . . . . . . . . . . . . . . . . . . . . 25029.10 GESS Q. Android: Reporting als Übersicht . . . . . . . . . . . . . . . . . . . . . 250

Page 12: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

29.11 GESS Q. Android: Reporting tabellarisch . . . . . . . . . . . . . . . . . . . . . . 25029.12 GESS Q. Android: Einstellungen . . . . . . . . . . . . . . . . . . . . . . . . . . 25129.13 GESS Q. Android: zusätzliche Funktionen . . . . . . . . . . . . . . . . . . . . . 251

Page 13: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 1. Grundlagen

1 Grundlagen

1.1 Einleitung

Bei GESS Q. handelt es sich um eine Software-Suite zum Programmieren von Fragebögen,Durchführen der Umfragen und Aufbereiten der Daten. Der in der Sprache GESS Q. Skriptgeschriebene Fragebogen kann Browser-basiert bei einer Online-Umfrage oder im Telefonstudiozum Einsatz kommen, aber auch analog zur klassischen Erhebung in einer App auf einem Tabletoder einem Lesegerät laufen. Je nach Bedarf können die Ergebnisse übers Netz auf einem Serverzentral gesammelt oder offline lokal auf einem Rechner zusammen geführt werden. Über offene,dokumentierte Schnittstellen stehen die Daten zur weiteren Verarbeitung und Präsentationbereit. Mit GESStabs steht dabei auch eine hausinterne Lösung zur Tabellierung zur Verfügung,die Daten selbst grafisch aufbereiten kann, und die Ausgabe in verschiedenen Formaten (PDF,HTML, Excel, Powerpoint) ermöglicht.

Abb. 1.1: GESS Q. Software-Suite

Der erste Teil des Handbuchs befasst sich mit der Programmierung von Fragebögen und stellt diespeziell dafür entwickelte Sprache GESS Q. Skript vor. Der zweite Teil erläutert die Handhabungder Software, geht auf Anpassungen auf der Basis von HTML und CSS ein und erklärt verschiedeneErweiterungen durch Javascript.

Bevor wir einen kurzen Eindruck der GESS Q. Skriptsprache vermitteln, soll dieses Kapitel vorabdarstellen, welche Varianten der Software zur Verfügung stehen, welche technischen Rahmenbe-dingungen und Voraussetzungen existieren und wie typische Anwendungsfelder aussehen.

1.2 Programmversionen

Die vier Hauptausprägungen von GESS Q. sind ausgerichtet für den Betrieb auf

GESS Q. (Stand: März 2018) 1

Page 14: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 1. Grundlagen

• Desktop-PCs oder Laptops (GESS Q. Desktop, GESS Q. CAPI),

• Webservern (GESS Q. Server),

• Android Telefonen oder Tablets (GESS Q. Android),

Die verschiedenen Anwendungsfälle können auch harmonisch miteinander in Einklang gebrachtund gleichzeitig genutzt werden. So sind verschiedene Szenarien für die Feldarbeit möglich:

• GESS Q. Server wird eingesetzt, um Studien zu administrieren und Befragungen online imBrowser durchzuführen. Parallel sind sowohl Interviewer mit GESS Q. Android Tablets alsauch Interviewer mit GESS Q. Desktop (offline) unterwegs, die ihre gesammelten Datenbeliebig bei vorhandener Internetverbindung per Knopfdruck zu GESS Q. Server uploaden.GESS Q. Server dient also als Sammelstelle der Daten, die von jedem Ort aus logingeschütztper Browser mit flexiblen Reporting live und allgemein oder auch loginspezifisch verfolgtwerden können.

• Komplett offline, z. B. in CarClinics, können Interviewer oder Teilnehmer mit GESS Q. An-droid Fragebögen selbst ausfüllen und die Daten per USB Anschluss (oder lokalem WLAN)zu GESS Q. Desktop übertragen. GESS Q. Desktop fungiert in diesem Szenario wie derzuvor beschriebene Server mit sämtlichen Administrations- und Reportingfunktionalitäten.

• Ebenfalls komplett offline und analog zur Android App, allerdings ohne sicherheitsrelevanteFeatures, die für den Einsatz in CarClinics nötig wären, können Interviewer GESS Q. CAPIauf Notebooks oder andere Mobilgeräte mit vollwertigen Betriebssystemen einsetzen, umFragebögen auszufüllen und die Daten über eine Internetverbindung zu GESS Q. Servernschicken.

Im Folgenden soll kurz auf die logistischen Merkmale eingegangen werden. Alle vier Variantenfinden Sie auch am Ende des Handbuchs genauer beschrieben.

1.2.1 GESS Q. Desktop

GESS Q. lässt sich auf beliebigen Desktop Computern oder Laptops installieren. Währendalle Programmdaten und Studien auf Dateiebene greifbar sind, lässt sich über den Browserauch eine Benutzeroberfläche starten, um wesentliche Funktionen des Programm zu verwenden.Studien können damit neu angelegt, kopiert und verwaltet werden, wobei das Skripting aufDateiebene stattfindet. Weiterhin lassen sich Studien und Datensätze auch mit anderen GESSQ. Installationen per Knopfdruck austauschen. Desktop- und Server Installationen werden miteiner URL referenziert, während Android Geräte Studien downloaden oder per USB bedientwerden können. Letztlich lassen sich die erhobenen Daten in Form eines flexibel definierbarenASCII- oder SPSS-Files exportieren. Kapitel 24 widmet sich speziell GESS Q. Desktop, dessenInstallation, dem Setup und weiteren Einrichtungsmöglichkeiten.

1.2.2 GESS Q. Server

Die Webserver Installation bietet grundsätzlich die gleichen Funktionen wie die Desktop In-stallation. Über die Serveradresse ist die Benutzeroberfläche von jedem PC mit Internetzugangerreichbar. Über bestimmte Links können potentielle Teilnehmer zu Interviews eingeladen werden.

GESS Q. (Stand: März 2018) 2

Page 15: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 1. Grundlagen

Der Betrieb ist theoretisch auf beliebigen Server-Betriebssystemen möglich, praktisch dürfte dieInstallation unter Linux am einfachsten sein. Kapitel 25 widmet sich speziell den Besonderheitenund Voraussetzungen von GESS Q. Webservern im Produktivbetrieb.

1.2.3 GESS Q. Android

Die Android App als spezielles Derivat für mobile Befragungen verfügt über einen gezieltzusammengestellten Funktionsumfang. Die App kann Studien von Servern (sowohl Desktop alsauch Web) anfordern, Datensätze dorthin zurück übertragen oder auch via USB von DesktopInstallationen aus angesteuert werden. Kapitel 29 widmet sich speziell der App mit systemeigenenFunktionen und ihren Besonderheiten.

1.2.4 GESS Q. CAPI

Analog zur GESS Q. App bieten wir eine Lösung für CAPI-Befragungen auch auf PCs undNotebooks mit interviewergerechten Oberflächen an. Die Steuerung und Menüführung sind hierbeiidentisch mit der Android App. GESS Q. CAPI kann mit allen Betriebssystemen verwendetwerden, die eine Java Installation ermöglichen.

1.2.5 Demo-, Vollversionen und Updates

Alle Varianten von GESS Q. sind als Demoversion verfügbar, die den vollen Funktionsumfangbieten aber keine Datensätze produzieren. Ist eine GESS Q. Version nicht lizenziert, werdenInterviews automatisch mit #define demoversion gestartet. Upgradebare Demoversionen vonGESS Q. Desktop und GESS Q. Android können kostenlos auf http://www.gessgroup.de her-untergeladen werden. Eine Online-Freischaltung auf die entsprechenden Vollversionen ist durchEingabe eines zeitlimitierten Lizenzcodes jederzeit möglich. Zu beachten ist hierbei, dass aneinem Arbeitsplatz immer nur eine Installation von GESS Q. Desktop freigeschaltet sein kann.GESS Q. Desktop und GESS Q. Android verfügen ebenfalls über integrierte Updatemechanismen,die ein komfortables Updaten auf die jeweils aktuellste Version ermöglichen.

1.2.6 Einrichtungsbeispiele und Projektverwaltung mit GESS Q. Desktop

GESS Q. lässt sich durch die weitreichende Konfiguration flexibel an individuelle Arbeitsumfelderanpassen. Abbildung 1.2 zeigt drei mögliche Varianten der lokalen Projektverwaltung, wobei inallen Fällen jeder Arbeitsplatz über eine eigene Installation von GESS Q. Desktop verfügt. Wirempfehlen, Fragebögen vollständig offline innerhalb von GESS Q. Desktop zu skripten und inerster Instanz zu testen. GESS Q. Server kann dann zu beliebigen Zeitpunkten per einfachemUpload des Projekts versorgt werden, damit der Kunde testen oder die Umfrage letztlich startenkann.

GESS Q. (Stand: März 2018) 3

Page 16: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 1. Grundlagen

Abb. 1.2: GESS Q. Einrichtungsbeispiele im Arbeitsumfeld

Die erste und einfachste Variante lässt sich am ehesten als reine Einzelplatzlösung verstehen.Alle Arbeitsplätze sind völlig unabhängig voneinander und verfügen nur über ihre eigenenStudien. Im Unterschied dazu gibt es bei der zweiten Variante eine zentrale Projektablageauf z. B. einem firmeninternen Netzlaufwerk, auf das alle Arbeitsplätze zugreifen können. Alsdritte denkbare Möglichkeit lässt sich auch ein Versionskontrollsystem wie SVN, CVS oderGit einsetzen. Hierbei ist die gesamte Installation von GESS Q. Desktop inkl. Projekten teileiner zentralen, versionierten Ablage und jeder Arbeitsplatz kann sich stets mit dem aktuellenStand synchronisieren und anschließend mit einer vollständigen Kopie unabhängig arbeiten. Dasfolgende Listing fasst die Vor- und Nachteile der unterschiedlichen Lösungen zusammen.

Abb. 1.3: Vor- und Nachteile der Einrichtungsvarianten

GESS Q. (Stand: März 2018) 4

Page 17: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 1. Grundlagen

1.3 Einführung

Ein Fragebogen in GESS Q.-Skript besteht aus Fragen, die zu Blöcken zusammengefasst werden.Dabei muss jedes Skript zwingend den Block main enthalten. Den Ablauf des Interviews bestimmtnicht die Reihenfolge der Fragen im Skript sondern die Festlegung im Block (hier also 1 3 2).Frage1;Frage2;Frage3;

block main = (Frage1 Frage3 Frage2);

Blöcke können wir ineinander verschachteln:Frage1;Frage2;Frage3;Frage4;

block b1 = (Frage2 Frage3);flt = (Frage1 eq 1);

block main = (Frage1 b1 Frage4);

Da wir Blöcke, wie Fragen auch, mit Filtern und Bedingungen verknüpfen können, erhalten wirdie Möglichkeit, den Ablauf des Interviews zu steuern. In dem Beispiel hier könnten die Fragen 2und 3 etwa nur dann gestellt werden, wenn auf Frage 1 mit Antwortcode 1 geantwortet wurde.

Fragen bestehen in GESS Q. Skript mindestens aus der Festlegung des Fragetyps, der ID derFrage und dem dazu gehörigen Text:TextQ Frage1;text="Wie lautet die Frage?";

Der Fragetyp (hier TextQ) legt bereits die Antwortmöglichkeiten fest. So sieht eine TextQ keineAntwortmöglichkeiten vor, weil sie nur dazu dient, einen Text auf dem Bildschirm auszugeben.Eine NumQ erwartet dagegen eine nummerische Eingabe, eine SingleQ einen Haken an einerAntwortmöglichkeit usw.

In der ID der Frage (hier Frage1) steckt mehr als nur die Möglichkeit, sie über die ID in einemBlock zu positionieren. Das Programm behandelt die ID gleichzeitig als eine Variable, in der dieAntwort auf die Frage gespeichert ist.SingleQ Frage1;text="Wie lautet die Frage aller Fragen?";labels=1 "How many roads must a man walk down?"2 "Wieviel ist 6*7?";

Frage1 kann hier nur den Wert 1 oder 2 annehmen, abhängig von der Auswahl der Befragten.Wie GESS Q.-Skript die Werte in der Variablen speichert, ob als einzelnen Wert oder in einemArray, hängt vom Fragetyp ab.

GESS Q. (Stand: März 2018) 5

Page 18: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 1. Grundlagen

Die IDs der Fragen betrachtet GESS Q., wie gesagt, als Variablen. Weitere Variablen könnenetwa über compute (s. Abschnitt 8.1) oder TextElement (s. Abschnitt 8.7) angelegt werden. Fürdie Variablennamen gilt dabei in jedem Fall, dass sie mit einem Buchstaben beginnen müssen(a-z A-Z).

Bei den Schlüsselwörtern kommt es im Gegensatz zu den Frage- und Variablennamen nicht aufGroß- und Kleinschreibung an.SINGLEQ geschlecht; ist gleichbedeutend zu singleq geschlecht;

SingleQ geschlecht; ist nicht gleichbedeutend zu SingleQ GESCHLECHT;

1.4 Voraussetzungen

Für die Programmierung benötigen Sie einen Editor. Für Notepad++ und Emacs finden Sie aufden Web-Seiten zu GESS Q. Anpassungen, die für Hervorhebungen der Syntax sorgen und aufKnopfdruck Code-Schnipsel einfügen.

Für Anpassungen von HTML und CSS empfiehlt sich ein Browser, der es erlaubt, einzelneElemente in einer HTML-Seite zu untersuchen (z. B. Firefox mit der Erweiterung Firebug).

Auf der Ebene des Dateisystems erwartet GESS Q.-Skript mindestens ein Projektverzeichnis,weil das Programm dort im Ordner text nach dem Fragebogen sucht.

Zwei Empfehlungen:

• Ein Fragebogen kann vollständig in einer einzigen Datei enthalten sein. In der Praxisist das, besonders bei umfangreichen Fragebögen nicht zu empfehlen. Es ist besser, deninclude-Mechanismus zu verwenden, um verschiedene Dateien zusammen zu führen und sodie Übersicht zu wahren.

• Alle Anweisungen in GESS Q.-Skript werden immer mit einem Semikolon abgeschlossen.

GESS Q. (Stand: März 2018) 6

Page 19: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 2. Präprozessordirektiven

2 Präprozessordirektiven

Die Verarbeitung eines GESS Q. Skripts zum Interview läuft in zwei Schritten ab. Ehe dasSkript im zweiten Durchlauf inhaltlich ausgewertet wird, erfolgt zuerst eine reine Auflösungsogenannter Präprozessordirektiven. Mit ihnen ist es möglich Skriptbestandteile aus externenDateien einzubinden, Schablonen anzulegen, um ähnliche Skriptabschnitte zu komprimieren oderTeile des Skripts grundsätzlich nur bedingt zu berücksichtigen.

Dafür stehen die funktionell benannten Befehle #Include, #Macro und #Define zur Verfügung.Sie alle haben gemeinsam, dass sie mit dem Rautenzeichen beginnen. Außerdem besteht dieMöglichkeit, Bereiche im GESS Q. Skript als Kommentar zu markieren.

2.1 Kommentare

Kommentare in GESS Q. geben Skriptverfassern die Möglichkeit Notizen oder Hinweise zuvermerken, die bei der Verarbeitung des Skripts unberücksichtigt bleiben. Sie lassen sich aberauch nutzen, um ganze Bereiche des Skripts beim Entwickeln oder zum Testen außer Funktionzu setzen.

• Ein doppelter Schrägstricht, //, kommentiert den Rest der Zeile aus.

• Block-Kommentare über mehrere Zeilen beginnen mit /* und schließen mit */

// diese Zeile ist eine Kommentarzeile

SingleQ dummy; // und auch innerhalb von Zeilen geht das

/*und dies ist ein auskommentierter Bereich mit mehreren Zeilen,wobei auch die folgende SingleQ dummy2 nicht mehr eingelesen wird

SingleQ dummy2;*/

2.2 Include

#include "demografie.q"

Mit der Include-Direktive lassen sich Inhalte einer ebenfalls im text-Verzeichnis liegenden Dateieinbinden. Die Include-Zeile wird durch den Inhalt der referenzierten Datei ersetzt. Auf diese Artlassen sich lange Fragebögen strukturieren und auf mehrere Dateien verteilen. Zudem könnenso mehrere Personen gleichzeitig an einem Fragebogen arbeiten. Außerdem lassen sich auf dieseWeise auch projektübergreifende, wiederkehrende Skriptteile kapseln und bei Bedarf einbinden.Wie im Beispiel könnte es einen standardisierten Demografieteil geben, der einmal geskriptet

GESS Q. (Stand: März 2018) 7

Page 20: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 2. Präprozessordirektiven

und mehrfach benutzt wird.

2.3 Define

#define testmode

// ...

#ifdef testmodeHTML{ backbutton = yes; };

#endif

Mit den Define-Direktiven können Skriptzeilen bei der Skriptverarbeitung bedingt berücksichtigtwerden. #define X aktiviert einen Parameter X, der später als Bedingung dient. Das Aktiviereneines Parameters lässt sich ebenfalls über die Start-URL des Interviews steuern. Statt X kön-nen beliebige alphanumerische Zeichen verwendet werden, wobei Groß- und Kleinschreibungberücksichtigt wird.https://...&define=testmode&define=NOCHEINPARAMETER

Mit #ifdef X ("wenn aktiviert") und #endif bzw. #ifndef X ("wenn nicht aktiviert") und #endifkann anschließend ein Bereich im Skript eingeschlossen werden, der bei der Skriptverarbeitungnur dann berücksichtigt wird, wenn Parameter X aktiviert bzw. nicht aktiviert ist.

Mit diesem Mittel lässt sich ein Skript schreiben, das unterschiedliche Varianten eines Fragebogensvorsieht, die über die URL Parameter im Startlink steuerbar sind. Über diesen Mechanismus ließesich der Fragebogen optional mit bestimmten Einstellungen (Zurückbutton, Tastatureingabe, ...),mit bestimmten Fragenteilen oder im Testmodus (ohne Datenablage, Quotenzählung) starten.

GESS Q. startet Interviews teilweise automatisch mit bestimmten Defines, auf die man im Skriptdirekt zurückgreifen kann:testmode Bei allen Interviews im Testmodusdemoversion Bei allen Interviews in nicht lizenzierten Versionenandroid Bei allen Interviews in GESS Q. Android

Bei der Verwendung von Defines sollte grundsätzlich beachtet werden, dass viele auf dem Skriptbasierenden Funktionen von GESS Q. intern mit einer Fragebogenversion ohne Defines arbeiten.Dies betrifft zum Beispiel den Skriptcheck, Übersetzungsquellen oder den gesamten Datenexport.

2.4 Makro

Mit #macro X und #endmacro lässt sich ein Skriptbereich eingrenzen, der für sich allein funktionslosbleibt. Es handelt sich um eine Vorlage, die mit &X; beliebig oft verwendet (instanziiert) werdenkann. Ein solches Makro lässt sich auch als einfacher Textersatz verstehen.// BEISPIEL 1#macro labellistlabels=1 "sehr gut"2 "gut"3 "mittel"4 "schlecht"

GESS Q. (Stand: März 2018) 8

Page 21: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 2. Präprozessordirektiven

5 "sehr schlecht";#endmacro

SingleQ spot1;text="Wie gefiel Ihnen der erste Werbespot?";&labellist;

Beispiel 1 enthält ein #macro labellist mit einer Labelliste, die im Fragebogenverlauf mögli-cherweise oft wiederkehrt. Hier ein Makro zu formulieren, spart viel Schreibarbeit, und bietetauch die Möglichkeit, den Inhalt an einer Stelle zentral zu pflegen. Wenn die Skala geändertwerden soll, muss sie nur an dieser einen Stelle umgeschrieben werden.// BEISPIEL 2#macro auto_schabloneSingleQ auto$Nummer;text="Gefällt Ihnen der $Modell besser als Ihr jetziges Auto?";labels=1 "Ja"2 "Nein";flt=($Nummer in modellauswahl);#endmacro

&auto_schablone;$Nummer="1";$Modell="VW Passat";&auto_schablone;$Nummer="2";$Modell="Skoda Oktavia";&auto_schablone;$Nummer="3";$Modell="Audi A4";&auto_schablone;$Nummer="4";$Modell="Ford Mondeo";

Wir können ein Makro mit Platzhaltern formulieren, die beim Aufruf durch die eigentlichenWerten ersetzt werden:

&X;ERSATZ1="NEUERTEXT1";ERSATZ2="NEUERTEXT2";...;

GESS Q. ersetzt beim Expandieren des Makros die Platzhalter durch die Werte.

In Beispiel 2 wird das Makro auto_schablone verwendet um mehrere ähnliche Fragen anzulegen.Der Platzhalter $Modell sorgt dafür, dass ein bestimmtes Fahrzeug im Fragetext eingefügtwird, während der Platzhalter $Nummer einerseits dafür sorgt, dass die Fragen eindeutige Namenbekommen und andererseits gefiltert abgefragt werden. Der benutzte Filter setzt voraus, dass eseine Frage modellauswahl gibt, die eine Fahrzeugvorselektion mit entsprechend nummeriertenLabels gibt.

Als Platzhalter kann streng genommen jeder beliebige Text verwendet werden. Der im Beispielverwendete Platzhalter »$Modell« würde im Text der Frage »auto1« durch »VW Passat« ersetzt.Es ist unbedingt empfehlenswert Platzhalter in einer beliebigen, genormten Form kenntlich zumachen. Man könnte, wie hier, die Platzhalter z. B. immer mit dem Dollarzeichen beginnenlassen, also »$ERSATZ1« statt »ERSATZ1« schreiben.

Durch Makros lassen sich Skripte oft übersichtlicher, einfacher und schneller erstellen. Makroskönnen allerdings auch schnell kryptisch und unübersichtlich wirken, wenn es zu Verschachtelungen

GESS Q. (Stand: März 2018) 9

Page 22: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 2. Präprozessordirektiven

von Makros in Makros mit ähnlichen oder weitergereichten Platzhaltern kommt. Wir ratendaher, Makros mit aussagekräftigen Namen zu versehen und sie ausreichend zukommentieren.

Bitte beachten: Beim Auflösen eines Makros liest GESS Q. Platzhalter Zeichen für Zeichen ein.Das kann bei nummerierten Platzhaltern (z. B. $1) zu Fehlern führen, wenn nicht berücksichtigtwird, dass beim Platzhalter $10 GESS Q. nicht die Zahl 10 berücksichtigt, sondern erneut p1erkennt und daran eine 0 anhängt.

Zudem sollten Unix-gewohnte Anwender im Kopf behalten, dass das »$«-Zeichen für GESS Q.nur ein Zeichen ist und nicht wie in der Shell eine gesonderte Bedeutung hat.

GESS Q. (Stand: März 2018) 10

Page 23: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

3 Fragedefinitionen

3.1 Fragetypen

Fragen im GESS Q. Skript werden einfach aneinandergereiht. Die Reihenfolge der Fragen isthierbei nebensächlich, da die Abfolge im Fragebogen durch Screens und Blöcke festgelegt wird.Folgende Standardfragetypen sind in GESS Q. verfügbar:

TextQ Anzeige eines Textes

SingleQ Geschlossene Frage mit einer Antwortmöglichkeit

MultiQ Geschlossene Frage mit mehreren Antwortmöglichkeiten

OpenQ Offene Frage mit Eingabe für Freitext

PasswdQ Offene Frage mit Eingabe für Freitext (verdeckt durch Punkte)

NumQ Nummerische Eingabe mit einer oder mehr Eingabemöglichkeiten

SingleGridQ Mehrere SingleQs in Tabellendarstellung kombiniert

MultiGridQ Mehrere MultiQs in Tabellendarstellung kombiniert

3.2 Allgemeine Eigenschaften

Die Eigenschaften oder Attribute einer Frage unterscheiden sich von Fragetyp zu Fragetyp.Allerdings gibt es einige, die allen Fragen gemein sind. Das folgende Listing greift inhaltlich etwasvoraus, fasst aber kurz zusammen, welche Attribute sich grundsätzlich für jede Fragedefinitionanwenden lassen.Fragetyp NAME;Text = "TEXT";Title = "TITLE";LABELLISTJavascript = "JAVASCRIPT";Css = "CSS";SortId = "SORTID";ExportText = "EXPORTTEXT";ExportTitle = "EXPORTTITLE";HtmlPreText = "HTMLPRETEXT";HtmlPostText = "HTMLPOSTTEXT";PreHelptext = "PREHELPTEXT";PostHelptext = "POSTHELPTEXT";PreInterviewerHelptext = "PREINTERVIEWERHELPTEXT";PostInterviewerHelptext = "POSTINTERVIEWERHELPTEXT";InitActionBlock = { ... };ContinueActionBlock = { ... };ShowMaxLabels = NUMBER;

GESS Q. (Stand: März 2018) 11

Page 24: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

Nomissing = YES/NO;Flt = BEDINGUNG;Assert BEDINGUNG "Fehlertext bei Verstoß";

NAME Der Name einer Frage muss mit einem Buchstaben (a-z oder A-Z) beginnen. Außerdemdarf der Name der Frage, des Blocks (Abschnitt 4.2) oder des Screens (Kapitel 7) in einerUmfrage nur einmal vergeben werden. Doppelte Namensgebung führt zu Fehlermeldungen in derSyntaxüberprüfung. Punkte in Namen sind grundsätzlich nicht erlaubt. Zusätzlich gibt es eineBlacklist mit reservierten Namen, die nicht verwendet werden sollten. Die Syntaxüberprüfungmeldet einen Fehler, falls ein Name der Blacklist verwendet wurde.

SingleQ f1;

Text wird üblicherweise für den Fragetext verwendet. Jede Frage kann mit einem Text versehenwerden, wobei auf einem Screen (zusammengesetzt aus mehreren Fragen) immer nur ein Textsichtbar ist. Screen verfügt selbst über das Text-Attribut, wenn es aber nicht verwendet wird,nutzt der Screen den Text seiner ersten enthaltenen Frage. An welcher Stelle der Fragetexterscheint, hängt von der Positionierung von @qtext im Template der Umfrage (Abschnitt 14.1.3)ab.

text = "Wie alt sind Sie?";

Title wird üblicherweise für ergänzende Hinweise verwendet und erscheint immer direkt überden Antwortmöglichkeiten.

title = "Mehrfachauswahl";

Labellist Siehe Abschnitt 3.14.

Javascript platziert direkt hinter den Antwortmöglichkeiten der Fragen Javascript Code, derbeim Generieren einer Sprachquelle nicht berücksichtigt wird.

javascript = "alert('Ich lebe!');";

Css platziert direkt hinter den Antwortmöglichkeiten der Fragen CSS Angaben, die beim Gene-rieren einer Sprachquelle nicht berücksichtigt werden (s. a. Abschnitt 14.3.4).

css = ".qtable{ border: 2px solid red; }";

SortId fügt der Frage eine Sort-Id hinzu, über die sie innerhalb eines Blocks sortiert werdenkann.

GESS Q. (Stand: März 2018) 12

Page 25: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

SortId = "F1";

ExportText wird im Datenexport zur Beschriftung der Variablen verwendet. Per Default wird fürSingleQs, MultiQs und OpenQs Text verwendet und für Items aus NumQs und Gridfragen eineKonkatenation aus Text und Title. Groups, Computes und Arrays haben standardmäßig keineBeschriftung. Es kann sowohl ein völlig neuer Freitext angegeben werden als auch ein Verweisauf ein anderes Textfeld der Variable. Antwortkategorien können mittels ExportLabel innerhalbder Labelgruppe angepasst werden, siehe 3.14.ExportText = "Neuer Freitext für den Export";// ExportText = text;// ... [title|htmlpretext|htmlposttext|posthelptext|postinterviewerhelptext|prehelptext|preinterviewerhelptext];

ExportTitle wird im Datenexport zur Beschriftung der Variablen verwendet. Per Default wird fürSingleQs, MultiQs und OpenQs Title verwendet und für Items aus NumQs und Gridfragen derjeweilige Text des Items. Groups, Computes und Arrays haben standardmäßig keine Beschriftung.Es kann sowohl ein völlig neuer Freitext angegeben werden als auch ein Verweis auf ein anderesTextfeld der Variable. Antwortkategorien können mittels ExportLabel innerhalb der Labelgruppeangepasst werden, siehe 3.14.ExportTitle = "Neuer Titel für den Export";// ExportTitle = title;// ... [text|htmlpretext|htmlposttext|posthelptext|postinterviewerhelptext|prehelptext|preinterviewerhelptext];

HtmlPreText fügt noch vor title einen zusätzlichen Text ein. Voraussetzung hierfür ist, dass derHTML Parameter writePreText gesetzt ist, siehe Abschnitt 5.3.

HtmlPreText = "Ein Text vor dem Frage-Content.";

HtmlPostText fügt hinter den Antwortmöglichkeiten der Frage einen zusätzlichen Text ein. Vor-aussetzung hierfür ist, dass der HTML Parameter writePostText gesetzt ist, siehe Abschnitt 5.3.

HtmlPostText = "Ein Text hinter dem Frage-Content.";

PreHelptext fügt vor text einen Hilfetext ein. Voraussetzung hierfür ist, dass der Skript ParametershowHelptext gesetzt ist, siehe Abschnitt 5.2.

PreHelptext = "Hilfestellung zum Ausfüllen der Frage.";

PostHelpText fügt hinter text einen Hilfetext ein. Voraussetzung hierfür ist, dass der SkriptParameter showHelptext gesetzt ist, siehe Abschnitt 5.2.

GESS Q. (Stand: März 2018) 13

Page 26: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

PostHelptext = "Mehr Hilfestellung zum Ausfüllen der Frage.";

PreInterviewerHelptext fügt vor text einen Text ein, der für Intervieweranweisungen vorgesehenist ein. Voraussetzung hierfür ist, dass der Skript Parameter showInterviewerHelptext gesetztist, siehe Abschnitt 5.2.

PreInterviewerHelptext = "Anweisungen zum Vorlesen der Frage.";

PostInterviewerHelptext fügt hinter text einen Text ein, der für Intervieweranweisungen vor-gesehen ist ein. Voraussetzung hierfür ist, dass der Skript Parameter showInterviewerHelptextgesetzt ist, siehe Abschnitt 5.2.

PostInterviewerHelptext = "Mehr Anweisungen zum Vorlesen der Frage.";

InitActionBlock Zum Ausführen von Anwendungslogik vor Darstellung der Frage. Siehe Kapi-tel 13.

ContinueActionBlock Zum Ausführen von Anwendungslogik nach Beantwortung der Frage. SieheKapitel 13.

Flt Filterbedingung, die besagt, ob die Frage dargestellt oder übersprungen werden soll, wennder Teilnehmer bei ihr angekommen ist. Ausführliche Beschreibungen von Filtern gibt es inKapitel 10.

flt = (f1 eq 1); // darstellen, wenn Frage f1 Antwort 1 enthält

ShowMaxLabels Eine Möglichkeit, die maximale Anzahl der angezeigten Labels einer Frage einzu-schränken. Dies kann z. B. sinnvoll sein, wenn eine Liste von N Labels randomisiert angezeigtwerden soll, aber davon jeweils immer nur zufällig ausgewählt die ersten K Stück. ShowMaxLabelsfunktioniert bei Single(Grid)Qs, Multi(Grid)Qs sowie NumQs.

ShowMaxLabels = K;

SingleQ f1;Text="TEXT";labels=1 "Label 1" random2 "Label 2" random3 "Label 3" random4 "Label 4" random5 "Label 5" random6 "Label 6" random;ShowMaxLabels = 3;

GESS Q. (Stand: März 2018) 14

Page 27: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

Durch die Rotation verknüpft mit dem ShowMaxLabels-Befehl werden drei zufälligen Labelsabgebildet.

NoMissing Der Eingabezwang für eine einzelne Frage kann mit diesem Befehl an- oder ausgestelltwerden und ist höher priorisiert als DefaultNoMissing (siehe Abschnitt 5.1).

NoMissing = Yes/No;

Assert Die Überprüfung einer (Plausibilitäts-) Bedingung nach Beantwortung der Frage, diedazu führen kann, dass entweder die Frage unter Angabe einer Fehlermeldung erneut vorgelegtwird oder das gesamte Interview abgebrochen wird (ScreenOut). Ausführliche Beschreibungen zuPlausibilitätsbedingungen gibt es in Kapitel 10.

assert (f1 eq 1) "Frage f1 wurde nicht mit 1 beantwortet" exit 2;

3.3 SingleQ

Eine SingleQ ermöglicht eine 1-aus-N Auswahl. Wie bei allen anderen Fragen auch, sind Fragetextund -titel optional. Antwortlabels sind hingegen zwingend erforderlich. Die Labeldefinition kannsehr komplex werden. Vollständige Ausführungen zu den Labels gibt es in Abschnitt 3.14.Die SingleQ (und auch die MultiQ) gibt es mit unterschiedlichen Anordnungen, die mit demHTML-Skript-Parameter singleQFormat umgeschaltet werden können:

• standard - Labels untereinander, Buttons links

• table - Labels nebeneinander, Buttons unten

• select - Labels als aufklappbare Auswahlliste (nur SingleQ)// HTML{ singleQFormat = standard; };// HTML{ singleQFormat = table; };HTML{ singleQFormat = select; };

SingleQ lieblingsmarke;Text = "Welche dieser Marken ist Ihre Lieblingsmarke?";labels=1 "Marke A"2 "Marke B"3 "Marke C"4 "Keine davon";

Um den Antwort-Code zu speichern, verwendet GESS Q. den Namen der Frage als Variablennamen.In diesem Beispiel wäre bei der Auswahl »Marke C« der Wert 3 in der Variablen lieblingsmarkegespeichert."lieblingsmarke" "3"

GESS Q. (Stand: März 2018) 15

Page 28: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

Weiterhin lassen sich SingleQs mit @insert(select FRAGENAME) auch als Auswahlliste an belie-bigen Stellen in Textbereichen einbetten. Sie müssen hierzu, ohne selbst als Frage dargestellt zuwerden, mit im jeweiligen Screen positioniert sein. Beispiel für Hauptfrage MultiQ:HTML { input=no; };HTML{ singleQFormat = select; };SingleQ sonstige;labels=0 "-- Bitte auswählen --"1 "Sonstige Variante A"2 "Sonstige Variante B";HTML { input=yes; };

MultiQ hauptfrage;text="Welche Variante bevorzugen Sie?";labels=1 "Variante a"2 "Variante b"3 "Variante c"9 "sonstige, bitte auswählen: @insert(select sonstige)";jshandler = "if(label == 9 && $('#hl_id_hauptfrage_bi9').val().length == 0){ $('select[name=sonstiges]').val(0); }";javascript = "

$('select[name=sonstiges]').mousedown(function(e){e.stopPropagation();

}).change(function(e){if(!($(this).val() == 0 ^ $('#hl_id_hauptfrage_bi9').val().length > 0)){

$(this).parent().trigger('mousedown');};

});";Screen scr = column(hauptfrage sonstige);

Beispiel für Hauptfrage SingleQ:HTML { input=no; };HTML{ singleQFormat = select; };SingleQ sonstige;labels=9999 "-- Bitte auswählen --"1 "Sonstige Variante A"2 "Sonstige Variante B";HTML { input=yes; };

HTML{ singleQFormat = standard; };SingleQ hauptfrage;text="Welche Variante bevorzugen Sie?";labels=1 "Variante a"2 "Variante b"3 "Variante c"901 "sonstige, bitte auswählen: @insert(select sonstige)";jshandler = "if(label != 901){ $('select[name=sonstiges]').val(9999); }";javascript = "

GESS Q. (Stand: März 2018) 16

Page 29: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

$('select[name=sonstiges]').mousedown(function(e){e.stopPropagation();

}).change(function(e){if($(this).val() != 9999 && $('#hauptfrages').val() != 901){

$(this).parent().trigger('mousedown');};

});";

Screen scr = column(hauptfrage sonstige);

Details zum HTML Parameter input finden sich in Abschnitt 5.3.

3.4 SingleQ - Alternative Auswahlmöglichkeiten

Die SingleQ kann auch eine Kombination aus Eingabefeld und Liste bieten und verkürzt dieListe durch eine inkrementelle Suche nach den bereits eingegebenen Zeichen.HTML{ singleQFormat = select; };SingleQ strassen;text="Bitte wählen Sie eine Straße...";labels=9999 ""1 "Amselweg"2 "Drosselgasse"3 "Finkensteg"4 "Meisenstraße"5 "Fasanenweg";assert (strassen ne 9999) "Bitte wählen Sie aus.";javascript="$('.strassen .qselect').combobox();";

Zusätzlich muss singleQClass="GSingleQ"; im HTML-Tag gesetzt sein, was normalerweise inder Datei gbuttons.q im text-Verzeichnis erfolgt. Eine weitere Möglichkeit besteht darin, durchdie möglichen Werte zu scrollen. Der Name der Javascript-Funktion, die diesen Mechanismusbereit stellt, bezieht sich zwar auf das Mausrad, aber es funktioniert genauso gut mit dem Fingerauf dem Tablet.HTML{ singleQFormat = select; };SingleQ stunde;labels =99 "Std"1 "1"// ...23 "23"24 "24";javascript="

createWheelSelector($('.stunde .qselect'), 60, './media/@insert(_surveyname)/scrollerimages/');";assert (stunde ne 99) "Bitte die Stunde wählen.";

// createWheelSelector(SELECTBOX, WIDTH-IN-PX, PATH-TO-LAYOUT-IMAGES);

GESS Q. (Stand: März 2018) 17

Page 30: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

Der Funktionsaufruf createWheelSelector bekommt mehrere Parameter mitgeliefert. Zum einenmuss der Fragen- bzw. Variablenname als CSS-Klassenname mitgegeben werden (hier: ».stunde«).An zweiter Stelle steht im Funktionsaufruf die Breite in Pixeln (hier: 60) und zuletzt erhält dieFunktion den Pfad zu den grafischen Elementen. Die Vorlagen für die grafischen Elemente findensich im Verzeichnis root/media/demo_singleq_select/scrollerimages. Die grafischen Elementesind notwendig, weil sie hervorheben, welcher Wert gewählt wurde.

Abb. 3.1: SingleQ-Alternativen: Liste, Liste mit Suche, scrollbare Liste

3.5 MultiQ

Neben der SingleQ stellt die MultiQ ein syntaktisch identisches Gegenstück dar, welches eineN-aus-M Auswahl ermöglicht. Der HTML-Skript-Parameter singleQFormat schaltet, abgesehenvon der Option select auch die Anordnung einer MultiQ um, siehe auch Abschnitt 3.3.MultiQ lieblingsmarken;Text = "Welche dieser Marken kennen Sie?"labels=1 "Marke A"2 "Marke B"3 "Marke C"4 "Keine davon" single;

GESS Q. speichert die Eingabe in einem Array mit den Codes der Auswahl (in der Reihenfolge,in der die Auswahl getroffen wurde) und setzt die nicht ausgewählten Labels auf _missing. Wennder Klick auf »Marke C« vor dem Klick auf »Marke B« erfolgte, speichert GESS Q.:"lieblingsmarken" "3 2 m m"

Dabei spielt es keine Rolle wie häufig die Auswahl getroffen und zurück genommen wurde, GESS Q.speichert die zuletzt getroffene Auswahl. Bei der Abfrage der Variablen ergibt sich ein wesentlicherUnterschied zur SingleQ. Da die Variable einer SingleQ nur einen Wert speichert, könnenBedingungen für Filter oder Plausibilitätsprüfungen mit Vergleichsoperatoren arbeiten. MultiQ-Fragen speichern dagegen mehrere Werte, und so sind mit Vergleichen formulierte Prüfungen nurbedingt sinnvoll. Mit dem obigen Beispiel der Werte »3 2 m m« für die Variable »lieblingsmarke«,liefeflt=( lieblingsmarke eq 2 );

ins Leere, auch wenn »2« zur Ergebnismenge gehört. GESS Q. bildet in diesem Fall jedoch dieSumme der numerischen Werte. Daher sollte bei einer MultiQ zur Prüfung der Operator inverwendet werden:flt=( 2 in lieblingsmarke );

GESS Q. (Stand: März 2018) 18

Page 31: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

3.6 OpenQ

Bei einer offenen Frage erscheint an Stelle von Antwortlabels ein Eingabebereich für Freitext.Breite und Höhe des Bereichs werden durch die HTML-Skript-Parameter textAreaRows (Anzahlder Zeilen) und textAreaCols (Spalten) festgelegt. Wünscht man nur eine Zeile, wird technischaus der Fläche automatisch eine Zeile. Zusätzlich und vorrangig lässt sich der Eingabebereichauch über CSS formatieren. Mehr dazu in Abschnitt 14.3.HTML{ textAreaRows = 4; };HTML{ textAreaCols = 80; };OpenQ likes;text = "Was gefällt Ihnen an dieser Marke besonders gut?";

Den eingegebenen Text der OpenQ speichert GESS Q. in einer Zeichenkette:"likes" "Design Verarbeitung"

3.7 PasswdQ

Die Syntax entspricht der einer OpenQ, allerdings wird zur Darstellung ein Passwort-Feld (mitPunkten als Platzhalter für die Buchstaben) benutzt.

3.8 TextQ

Eine TextQ ist genau genommen keine Frage, sondern nur ein Textbildschirm. Die Syntax entsprichtder OpenQ, aber es wird kein Texteingabefeld angezeigt. Eine TextQ kann einen Fragetext haben,einen Titel, und den eigentlichen Text (dieser wird also nicht zwingend im Fragetext angegeben),das Schlüsselwort hierzu lautet screentext. Beispiel:TextQ intervieweranweisung;Text = "Intervieweranweisung";screenText="Lieber Interviewer, bitte tun Sie nun dieses und jenes!";

3.9 NumQ

Eine NumQ bietet die Möglichkeit, einen oder mehrere numerische Werte offen abzufragen (z.B. Alter, Postleitzahl usw.). Jedes Label korrespondiert mit einem Eingabefeld. Die erwarteteEingabe des Befragten kann exakt gesteuert werden. Die Definition erfolgt über das OpenNumFormat.Zulässig sind hier maximal 15-stellige Zahlen, wobei es keinen Unterschied zwischen Vor- undNachkommastellen gibt (100000000000000 und 100000,002805409 sind beide 15-stellig). AlleZahlen im OpenNumFormat mit mehr Stellen führen zu einer SkriptCheck-Fehlermeldung. DasFormat schränkt die Eingabemöglichkeiten der Befragten bei einer NumQ ein.

OpenNumFormat NAME = VMIN VMAX NMIN NMAX WMIN WMAX [EXCL] "ERR";

GESS Q. (Stand: März 2018) 19

Page 32: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

Über NAME wird das OpenNumformat mit format an einzelne Labels gebunden. Es legt die Anzahlder Vorkommastellen VMIN bis VMAX, die Anzahl der Nachkommastellen NMIN bis NMAX und denWertebereich insgesamt WMIN bis WMAX fest. Optional kann ein Wert für eine EnthaltungsoptionEXCL außerhalb des eigentlichen Wertebereichs bestimmt werden (s.u.). Verstößt die Eingabeeines Befragten gegen diese Vorgaben, wird die Fehlermeldung ERR ausgegeben. Es können auchnegative Werte verwendet werden. Vorzeichen (-/+) werden für die *MIN/*MAX-Werte nichtmitgezählt. Gleiches gilt für Dezimaltrennzeichen. Hier sind sowohl der Punkt als auch dasKomma gültig und gleichwertig. 1000er Trennzeichen werden nicht unterstützt.OpenNumFormat rating = 1 2 0 0 -10 10 "Bitte nur ganze Zahlen zwischen -10 und 10.";NumQ nq;Text="Bitte bewerten Sie alle Marken zwischen -10 und 10.";labels=1 "Marke A" format rating2 "Marke B" format rating3 "Marke C" format rating;

Das eigentliche Eingabefeld der NumQ kann innerhalb des Labeltextes mit @input beliebig platziertwerden, etwa mitten im Textfluss. Im weiteren Skriptverlauf lässt sich ein eingegebener Wertmit FRAGENAME.LABELCODE verwenden. Die direkte Referenz auf FRAGENAME liefert die Summe allerEingaben zurück.NumQ nq;Text="Bitte bewerten Sie alle Marken zwischen -10 und 10.";labels=1 "Für Marke A vergebe ich @input Punkte" format rating2 "Für Marke B vergebe ich @input Punkte" format rating3 "Für Marke C vergebe ich @input Punkte" format rating;assert(nq gt 0) "Bitte mehr Plus- als Minuspunkte vergeben";assert(nq.1 lt 0 or nq.2 lt 0 or nq.3 lt 0) "Mindestens einmal negativen Wert vergeben.";

Wie bei anderen Fragen auch, kann mit dem Schlüsselwort open in einer NumQ auch ein offenesEingabefeld als Label angeboten werden. Mit @open lässt sich auch festlegen wo das Eingabefelderscheinen soll.NumQ nq;Text="Bitte bewerten Sie alle Marken zwischen -10 und 10.";labels=1 "Für Marke A vergebe ich @input Punkte" format rating2 "Für Marke B vergebe ich @input Punkte" format rating3 "Für @open vergebe ich @input Punkte" open format rating;

Die Eingabe einer NumQ speichert GESS Q. immer in einem Array. Auch wenn mit einer NumQnur ein Wert abgefragt wird, erscheint daher im Skriptcheck eine Mahnung, wenn die Variablenur summarisch über den Namen der Frage in einer Prüfung oder Bedingung verwendet wird,anstelle des genauen Variablennamens.Opennumformat onf_sterne = 1 6 0 0 0 999999 "Verzählt!";NumQ sterne;Text="Weißt du wieviel Sternlein stehen?";labels=

GESS Q. (Stand: März 2018) 20

Page 33: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

1 "@input Sterne" format onf_sterne;

Die Eingabe »367485« speichert GESS Q. als"sterne.1" "367485"

Ein Vergleich wie sterne gt 1000 funktioniert zwar, veranlasst aber die angesprochene Mahnungim Skriptcheck. Besser wäre die Prüfung mit sterne.1 gt 1000. Bei den Eingaben »3, -4, 7« imvorangegangenen Beispiel "Bitte bewerten sie alle Marken" legte GESS Q. die Werte in dieserForm ab:"nq.1" "3""nq.2" "-4""nq.3" "7"

3.10 GNumQ

Mit der GNumQ existiert eine Variante der NumQ, welche die oben angesprochene Option zurEnthaltung ermöglicht. Dafür wird allerdings ein grafisches Element benötigt, das sich nureinsetzen lässt, wenn die Javascript-Bibliothek gesstmpl.js eingebunden ist.

Eine GNumQ bietet alle Eigenschaften der NumQ und erweitert diese um eine zusätzliche Funktion.Wird die GNumQ Klasse genutzt, kann durch die Verwendung eines OpenNumFormat mit definiertenEXCL Feld, eine Enthaltungs-Eingabe zur GNumQ hinzugefügt werden. Die Enthaltungs-Eingabewird durch einen grafischen Button hinter den Labels angezeigt die mit dem entsprechendenOpenNumFormat deklariert wurden.

Zum Erstellen einer GNumQ wird über den HTML-Script-Parameter numQClass die Klasse der NumQauf GNumQ gesetzt. Das OpenNumFormat rating_EXCL enthält einen Wert für das optionaleEXCL Feld. Wird nun das rating_EXCL Format für ein Label verwendet enthält die grafischeRepräsentation der Frage einen Enthaltungs-Button für das Label. Der Enthaltungstext wirdüber den Script-Parameter noAnswerLabel gesetzt. So kann mit verschiedenen OpenNumFormatsgezielt für einzelne Labels eine Enthaltungsoption hinzugefügt werden.HTML{ numQClass = "GNumQ"; };noAnswerLabel= "Keine Angabe";OpenNumFormat rating_EXCL = 1 2 0 0 -10 10 99 "Bitte nur ganze Zahlen zwischen -10 und10.";

OpenNumFormat rating = 1 2 0 0 -10 10 "Bitte nur ganze Zahlen zwischen -10 und 10.";NumQ nq;Text="Bitte bewerten Sie alle Marken zwischen -10 und 10.";labels=1 "Marke A" format rating_EXCL2 "Marke B" format rating_EXCL3 "Marke C" format rating;

Das grafische Element für die Enthaltung wird mittels setProperty wie folgt festgelegt:HTML{ setProperty( "unspecified_button_checked" "round_cl.png" ); };HTML{ setProperty( "unspecified_button_unchecked" "round_ac.png" ); };

GESS Q. (Stand: März 2018) 21

Page 34: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

3.11 SingleGridQ

Mit einer SingleGridQ kann ein Gitter aus Skalen dargestellt werden, beispielsweise eine Liste vonItems untereinander. Sowohl die gridItems als auch die Antwortkategorien gridLabels werden inForm von Label-Listen angegeben. Für jedes Item kann nur eine Antwortmöglichkeit ausgewähltwerden. Es können auch mehrere Gruppen von Antwortlabels nebeneinander stehen. Die Zeilemit den Antwortlabels kann alle n Items wiederholt werden (sinnvoll bei langen Itemlisten). Dieallgemeine Syntax ist:SingleGridQ name;Text="Fragetext";gridItems=Wert Text...;gridLabels=Wert Text...;

Es gibt verschiedene Varianten der SingleGridQ.

3.11.1 Standard-Grid-Frage

Es werden mehrere Items untereinander an der Seite des Grids angezeigt. Rechts neben den Itemserscheinen die Antwortmöglichkeiten, die Antwortlabels im Kopf des Grids. Im Normalfall meldetGESS Q. bei einer unvollständig ausgefüllten Gridfrage nur einen Fehler. Mit showAllErros;lässt sich jedoch auch einstellen, dass für jede fehlerhafte Zeile im Grid ein Hinweis ausgegebenwird. Beispiel:SingleGridQ standardgrid;text="Wie sehr stimmen Sie den folgenden Aussagen zu?";gridItems=1 "item 1"2 "item 2"3 "item 3"4 "item 4"5 "item 5";gridLabels=1 "stimme voll und ganz zu"2 "stimme eher zu"3 "teils/teils"4 "stimme eher nicht zu"5 "stimme überhaupt nicht zu";showAllErrors;

3.11.2 Transponierte Grid-Frage

Bei der transponierten Grid-Frage befinden sich die Items im Kopf und die Labels an der Seitedes Grids. Für jedes Item ist weiterhin nur eine Antwort möglich. Sie unterscheidet sich von

GESS Q. (Stand: März 2018) 22

Page 35: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

einem bloßen Vertauschen von Item- und Kopf-Labels dadurch, dass die Fragen/Skalen sich nichthorizontal nebeneinander, sondern vertikal untereinander befinden.

Der einzige Unterschied zur normalen Gridfrage besteht im Abschluss der tranponierten Versionmit dem Schlüsselwort transpose.

Beispiel:SingleGridQ transponiert;text="Wie wahrscheinlich werden Sie diese Städte besuchen?";gridItems=1 "Rom"2 "Berlin"3 "London";gridLabels=1 "bestimmt nicht besuchen"2 "wahrscheinlich nicht besuchen"3 "weiß nicht"4 "wahrscheinlich besuchen"5 "ganz sicher besuchen";transpose;

3.11.3 Grid-Frage mit mehreren Frageblöcken (LabelGroups)

Wenn mehrere Fragen, die sich auf die gleichen Items beziehen, nebeneinander dargestelltwerden sollen, wird eine zweite gridLabels-Definition eingefügt. In GESS Q. sprechen wir voneiner weiteren Labelgruppe. Die Items (also die Zeilen) werden mit dem Statement gridItemsdefiniert, die Labels für die erste Frage mit dem Label-Statement gridLabels, die Labels für diezweite Frage (rechts neben der ersten) ebenfalls mit gridLabels usw.

Getrennte Überschriften zu den beiden Frageblöcken werden mit dem Befehl gridLabelHeadererstellt. Sie erscheinen in der obersten Zeile des Grids und erstrecken sich über die Breite derAntwortmöglichkeiten der Frage. Desweiteren kann in der oberen linken Ecke des Grids durchden Befehl anchorText ein weiterer Text eingefügt werden. Beispiel:SingleGridQ zweifragen;text="Bitte beurteilen Sie die genannten Städte.";gridItems=1 "Rom"2 "Berlin"3 "London";gridLabels=1 "gut"2 "mittel"3 "schlecht";gridLabels=1 "ja"2 "nein";gridLabelHeader=("Wie gefällt Ihnen die Stadt insgesamt?"

GESS Q. (Stand: März 2018) 23

Page 36: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

"Haben Sie die Stadt schon einmal besucht?");anchorText="Bitte beurteilen!";

3.11.4 Datenablage und -zugriff

Sowohl die SingleGridQ als auch die MultiGridQ setzen sich aus mehreren einzelnen SingleQsbzw. MultiQs zusammen, die separat mit systematisch generierten Namen in den Datensätzenabgelegt werden. Über diese Namen lassen sich die Werte der Variablen im Skript abfragen. DieNamen der Variablen setzen sich dabei wie folgt zusammen:

GRIDNAME.ITEMCODE.LABELGRUPPE

LABELGRUPPE wird hierbei beginnend mit 1 mit jeder zusätzlich definierten Labelgruppe erhöht.Im letzten Beispiel, SingleGridQ zweifragen , entspricht die Labelgruppe mit den Antwortmög-lichkeiten gut, mittel und schlecht der 1 und die Gruppe mit ja und nein der 2. Gibt es beider Fragedefinition nur eine Labelgruppe erhält diese automatisch die 1.Beispiele:Hat der Befragte bereits London besucht? (zweifragen.3.2 eq 1)Hat der Befragte London nicht besucht? (zweifragen.3.2 eq 2)Fand der Befragte Rom schlecht? (zweifragen.1.1 eq 3)Fand der Befragte Rom gut oder mittel? ([1 2] in zweifragen.1.1)

Ein etwas ausführlicheres Beispiel folgt im Abschnitt zur MultiGridQ (s. Abschnitt 3.12).

3.11.5 Directionals / bipolare Skalen

Eine SingleGridQ kann auch so dargestellt werden, dass die gridItems auf beiden Seiten der Labelerscheinen. Die Texte in den gridItems werden dazu durch ein | getrennt. und die Fragedefinitionmit bipolar abgeschlossen.

Beispiel:SingleGridQ bipolar;text="Directionals";gridItems=1 "zu süss|zu sauer"2 "zu weich|zu hart"3 "zu billig|zu teuer"4 "zu gross|zu klein";gridLabels=1 "(1)"2 "(2)"3 "(3)"4 "(4)"5 "(5)";bipolar;

GESS Q. (Stand: März 2018) 24

Page 37: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

3.11.6 Weitere GridQ-Parameter

Speziell für Gridfragen gibt es noch weitere spezielle oder abgewandelte Parameter.

labelRepeat Bei längeren Itemlisten kann die Zeile mit den Antwortmöglichkeiten beim Scrollenaus dem sichtbaren Bildschirmbereich rutschen. Mit dem Frageattribut labelRepeat=K; ist esmöglich, sie alle K Zeilen in der Matrix zu wiederholen.

labelRepeat = NUMBER;

repeatGridAnchor zusätzlich zum Frageattribut labelRepeat ist es mit diesem Parameter möglich,auch den AnchorText zu wiederholen.

repeatGridAnchor;

gridLabelFooter Beschriftungen analog zu GridLabelHeader, die unterhalb der Labelliste erscheint.Da Grids auch mehrere Labellisten haben können, kann ein Footer pro Labelliste vergeben werden.

gridLabelFooter = ("FOOTER1" "FOOTER2" "...");

gridLabelRestrict filtert eine Labelliste, sodass nur noch die Labels (mit den Codes) dargestelltwerden, die in der Wertemenge einer vorgegebenen Variablen (z. B. einer zuvor beantwortetenFrage) enthalten sind. Dabei sind die Klammern zwingend notwendig. Bei mehreren Labelgruppenkönnen mehrere, durch Leerzeichen getrennte Variablen angegeben werden.

gridLabelRestrict = (VAR1 VAR2 ...);

MultiQ m1;Text="TEXT";Labels=1 "Label 1"2 "Label 2"3 "Label 3"4 "Label 4";

SingleGridQ sq1;Text="TEXT";gridlabels=1 "Label 1"2 "Label 2"3 "Label 3"4 "Label 4";griditems=1 "Item 1"2 "Item 2"3 "Item 3"

GESS Q. (Stand: März 2018) 25

Page 38: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

4 "Item 4"5 "Item 5";gridLabelRestrict = (m1);

gridItemRestrict funktioniert analog zum einfachen Restrict (siehe Abschnitt 3.14.)

gridItemRestrict = (VARIABLE);

3.12 MultiGridQ

Die MultiGridQ funktioniert entsprechend der SingleGridQ, nur dass es hier möglich ist, für jedesItem mehrere Antwortmöglichkeiten zu geben.

Alle zuvor erläuterten Funktionalitäten und Frageattribute der SingleGridQ lassen sich analogauch auf die MultiGridQ anwenden.

Die bei der MultiQ möglichen Eigenschaften der Antwortlabels, single und always, greifen auchbei der MultiGridQ. Da die Datenablage parallel zur SingleGridQ etwas komplizierter wird, folgthier ein etwas ausführlicheres Beispiel. Eine MultiGrid-Frage mit folgendem Codemultigridq s1;text="Gadgets";gridlabels=2 "Fernsehen"4 "Zeitung"6 "Kino"8 "weiß nicht" single;griditems=1 "Telefon"2 "Kamera"3 "Tablet"4 "Phablet"95 "Anderes" open;

stellt GESS Q. wie folgt dar und verwendet, wie oben angesprochen, systematische Variablennamenfür die Griditems und ordnet ihnen die durch die Labels vorgegebenen Werte zu.

Abb. 3.2: Datenablage einer MultiGridQ

GESS Q. (Stand: März 2018) 26

Page 39: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

Und wie es die Grafik schon andeutet, speichert die MutliGrid-Frage die Eingabe in dieser Form,wobei das m für eine Leerstelle bzw. den Missingwert steht:"s1.1.1" "2 4 6 m""s1.2.1" "4 6 m m""s1.3.1" "8 m m m""s1.4.1" "6 m m m""s1.95.1" "4 m m m""s1.95.open" "Brille"

Um sicher zu stellen, dass nur Leute interviewt werden, die nicht »weiß nicht« zu Phablets sagen,sähe die assert-Formulierung so aus:assert( not( 8 in s1.4.1 )) "Sorry" exit 2;

Außerdem soll, solange nicht »weiß nicht« zur offenen Nennung angekreuzt wird, sicher gestelltwerden, dass das Eingabefeld auch ausgefüllt ist:if( [2 4 6] in s1.95.1 ) assert( num(s1.95.open) gt 0 ) "Bitte Gadget eintragen";

Wie zuvor (siehe Abschnitt 3.5) bereits erläutert, sind Prüfungen von Multi-Variablen mit demGleichheitsoperator eq nur bedingt sinnvoll, weil Ergebnismengen gespeichert werden. Da eineMultiGridQ technisch aus mehreren MultiQ-Fragen zusammen gesetzt sind, gilt hier das Gleiche.

3.13 UploadQ

Die UploadQ ermöglicht Befragten das Hochladen von Dateien mit Typ- und Größenbeschränkun-gen, die später als MISC im Rahmen der offenen Antwortkategorien exportiert werden können. Jenach Aktualität des Browsers wird automatisch eine Darstellung mit oder ohne Fortschrittsanzei-ge während des Uploads vorgelegt. Ebenfalls von den Fähigkeiten des Browsers abhängig ist, obbereits vor dem Uploadvorgang eine eventuelle Fehlermeldung (Datei zu groß bzw. vom falschenTyp) ausgegeben werden kann oder erst im Nachhinein. Basierend auf dem Prinzip der OpenQwird parallel eine gleichnamige Textvariable angelegt, die den Namen der hochgeladenen Dateienthält. Hier greift auch der Eingabezwang.UploadQ welcome2;title = "Bitte wählen Sie eine Bilddatei mit maximal 2MB.";maxfilesize = 2048; // in KBextensions = "png jpg gif bmp jpeg tif psp xcf";fileviolation = "Datei zu groß oder falsches Format.";assert (hasMediaUpload(welcome2) eq 1) "Dateiupload fehlgeschlagen." attempts 3;

Speziell für die UploadQ gibt es drei Frageattribute, die bei allen anderen Fragen keinen Effektzeigen:

maxfilesize Maximal erlaubte Dateigröße in Kilobyte (Default: 256).

extensions Durch Leerzeichen getrennte Liste der erlaubten Dateinamenserweiterungen. Ohnedie explizite Angabe einer Liste werden alle Erweiterungen akzeptiert. Da Dateinamenvon Anwendern nach Belieben manipulierbar sind, ist nicht sicherzustellen, dass der Inhaltauch tatsächlich der Erweiterung entspricht. Wir empfehlen daher dringend die Uploadsvor deren Verwendung zur Weiterverarbeitung auf Viren oder andere Malware zu prüfen.

GESS Q. (Stand: März 2018) 27

Page 40: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

fileviolation Auszugebende Fehlermeldung, wenn die hochgeladene Datei nicht den Vorgaben bzg.maximaler Größe und Dateiendung entspricht. Default: Forbidden file type or maximumfile size exceeded.

Außerdem bezieht sich folgender Prüfbefehl für Bedingungen speziell auf UploadQs:

hasMediaUpload(UPLOADQ)

Der Befehl hasMediaUpload dient der Überprüfung, ob eine Datei zur UploadQ vorliegt. Ist diesder Fall wird als Ergebnis eine 1 geliefert (sonst eine 0). UPLOADQ muss den Namen der Frageenthalten.

3.14 Antwortlabel

Viele Fragen bieten eine Liste von vorgegebenen Antwortmöglichkeiten (Label), aus denen derBefragte eine oder mehrere auswählt. GESS Q. eröffnet verschiedene Möglichkeiten, diese Listezu gestalten. In diesem Kapitel sollen zunächst die Optionen von Labellisten beschrieben undanschließend an konkreten Beispielen verdeutlicht werden.

Eine Labelliste wird im Rahmen der Fragedefinition innerhalb des Statements labels=...;definiert. Hiermit lässt sich eine beliebige Abfolge von einzelnen Labels oder Labelgruppendefinieren. Allgemein ausgedrückt:

labels=[LABEL | LABELGROUP | splitcolumn]+;

LABELGROUP ist ein strukturierendes Element. Die LABELGROUP kann selbst wieder LABEL und weitereLABELGROUPS enthalten. Technisch gesehen ist die Labelliste an sich ebenfalls eine Labelgroup.

group([LABEL | LABELGROUP | splitcolumn]+

)

splitcolumn Bei der grafischen Darstellung beginnt mit diesem Schlüsselwort eine neue Spalte.Lange Labellisten können so auf mehrere Spalten verteilt werden.

LABEL kann entweder ein reines TEXTLABEL oder ein ANTWORTLABEL sein. Label können mit Parame-tern versehen werden (s.u.).

LABEL = [ TEXTLABEL | ANTWORTLABEL ]

GESS Q. (Stand: März 2018) 28

Page 41: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

TEXTLABEL dienen der Strukturierung der Antwortmöglichkeiten. Textlabel können als Überschrif-ten für Labelgruppen dienen oder fügen (ohne Inhalt) ggf. einfach Leerzeilen ein. Sie könnenoptional mit einem restrict Attribut versehen werden, dessen CODES wie ein Filter wirken. DasTextlabel wird nur dargestellt, wenn einer der genannten Codes nach Ausführung aller Labelfilternoch in der letztlich dargestellten Labelliste existiert. Diese Art der Filterung für Textlabel wirdauch von den allgemeinen Restricts übernommen.

text "LABELTEXT" [restrict(CODES)]

MultiQ bekannt;text="Welche Marken kennen Sie?";labels=text "Audi" restrict([1:3])1 "A3"2 "A6"3 "A8"text "BMW" restrict([4:6])4 "3er"5 "5er"6 "7er";

MultiQ gekauft;text="Welche haben Sie schon gekauft?";labels copy bekannt;restrict=bekannt;

ANTWORTLABEL sind auswählbare Antwortmöglichkeiten, die der jeweiligen Nennung gleichzeitigeinen Code (zwischen 0 und 2147483647) zuordnen, der in den Daten gespeichert wird und jeFragevariable nicht mehrfach vergeben sein darf.

LABELCODE "LABELTEXT"

LABELCODE Natürliche Zahl, mit der diese Antwortkategorie im Datensatz gespeichert wird.

LABELTEXT Beschriftung dieser Antwortkategorie im Fragebogen.

Das folgende Beispiel zeigt, wie die bis hierhin vorgestellten Möglichkeiten eingesetzt werdenkönnen:MultiQ gerichte;text="Bitte wählen Sie alle Gerichte aus, die Sie gerne essen.";labels=text "Fleischgerichte"11 "Rumpsteak"12 "Schweineschnitzel"13 "Gulasch"14 "Gyros"splitcolumntext "Fischgerichte"

GESS Q. (Stand: März 2018) 29

Page 42: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

21 "Fischstäbchen"22 "Fischsuppe"23 "Pannfisch"splitcolumntext "Vegetarische Gerichte"31 "Gemüserisotto"32 "Bruschetta"33 "Griech. Bauernsalat";

// Grafisches Ausgabeschema://// Fleischgerichte Fischgerichte Vegetarische Gerichte// -----------------------------------------------------------------------// [] Rumpsteak [] Fischstäbchen [] Gemüserisotto// [] Schweineschnitzel [] Fischsuppe [] Bruschetta// [] Gulasch [] Pannfisch [] Griech. Bauernsalat// [] Gyros

LABEL und splitcolumn können optional mit einem oder mehreren Parametern versehen werden:

1 "Antwort 1" [always] [ExportLabel] [flt] [open] [random] [single]

always Ein Label mit diesem Attribut wird immer angezeigt, selbst wenn die restriction-Bedingungnicht erfüllt ist.

ExportLabel definiert als Freitext, welche Beschriftung für diese Antwortkategorie im Exportverwendet werden soll. Per Default wird LABELTEXT verwendet.

1 "Label 1" exportlabel = "Labeltext für den Export"

flt versieht ein Label oder eine gesamte Labelgruppe mit einer Bedingung. Das Label bzw. dieGruppe wird nur dann dargestellt, wenn die Bedingung erfüllt ist.

open kombiniert das Label mit einem einzeiligen Feld für freie Texteingabe, das z. B. für "SonstigeAngaben" verwendet werden kann. Das Eingabefeld lässt sich im Skript referenzieren und in denDaten mit dem Variablennamen FRAGENAME.LABELCODE.open wiederfinden.

random Alle Labels und Labelgruppen, die innerhalb einer Gruppe dieses Attribut haben, werdenin zufälliger Reihenfolge dargestellt. Die Reihenfolge wird einmalig beim Interviewstart festgelegt.

single Das Schlüsselwort ist relevant, wenn mehrere Antworten gegeben werden können. Labelsmit dem Attribut single sind ausschließliche Antworten, wie etwa "Keine davon" oder "Kei-ne Angabe". Mittels des javascriptSingleMode (s. Abschnitt 5.3) können zwei Möglichkeitenfestgelegt werden, wie die Frage auf eine Single-Auswahl reagiert: Entweder ein Klick auf einesingle-Antwort deaktiviert alle anderen, so dass sie nicht mehr wählbar sind oder er deselektiertautomatisch alle Antworten, die zuvor markiert waren.

GESS Q. (Stand: März 2018) 30

Page 43: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

Um all das konkret darzustellen, ein paar Beispiele: Angenommen, es soll eine Liste von Auto-marken abgefragt werden. Die Defintion der Frage wäre:MultiQ marken;labels=1 "Audi"2 "BMW"3 "Mercedes-Benz";

Diese sollen nun in zufälliger Reihenfolge erscheinen (d.h., von Interview zu Interview verschieden).Daher setzen wir ein random hinter jedes Label:

MultiQ marken;labels=1 "Audi" random2 "BMW" random3 "Mercedes-Benz" random;

In einer weiteren Frage sollen nun zu jeder Marke je drei Modelle auf Bekanntheit abgefragtwerden. Hier die simple Version der Labeldefinition:

MultiQ modelle;labels=1 "Audi A4"2 "Audi A6"3 "Audi A8"4 "BMW 3er"5 "BMW 5er"6 "BMW 7er"7 "Mercedes-Benz C-Klasse"8 "Mercedes-Benz E-Klasse"9 "Mercedes-Benz S-Klasse";

Um das etwas schöner aussehen zu lassen, sollen die Marken als reine Textzeile über den Labelsstehen:MultiQ modelle;labels=text " "text "Audi"1 "A4"2 "A6"3 "A8"text ""text "BMW"4 "3er"5 "5er"6 "7er"text ""text "Mercedes-Benz"7 "C-Klasse"8 "E-Klasse"9 "S-Klasse";

GESS Q. (Stand: März 2018) 31

Page 44: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

Die einzelnen Marken sollen nun, wie bei der Markenbekanntheitsfrage, in zufälliger Reihenfolgeerscheinen, inklusiv ihrer mittels text eingefügten Überschriften. Dazu fassen wir sie zu Gruppenzusammen, und geben den Gruppen das random-Attribut:MultiQ modelle;labels=group (text ""text "Audi"1 "A4"2 "A6"3 "A8") randomgroup (text ""text "BMW"4 "3er"5 "5er"6 "7er") randomgroup (text ""text "Mercedes-Benz"7 "C-Klasse"8 "E-Klasse"9 "S-Klasse") random;

Die einzelnen Modelle sollen nun innerhalb der Marken ebenfalls zufällig verteilt werden:MultiQ modelle;labels=group (text " "text "Audi"1 "A4" random2 "A6" random3 "A8" random) randomgroup (text " "text "BMW"4 "3er" random5 "5er" random6 "7er" random) randomgroup (text " "text "Mercedes-Benz"7 "C-Klasse" random8 "E-Klasse" random9 "S-Klasse" random) random;

Außerdem sollen die Modelle einer Marke nur dann abgefragt werden, wenn die Marke insgesamt

GESS Q. (Stand: März 2018) 32

Page 45: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

vorher als bekannt angegeben wurde. Hierzu wird jede Labelgruppe mit einem Filter versehen.Dazu soll noch eine exklusive Antwortmöglichkeit "keine davon" erscheinen, wofür das Attributsingle genutzt wird. Das sieht dann so aus:MultiQ modelle;labels=group (text " "text "Audi"1 "A4" random2 "A6" random3 "A8" random ) random flt (marken eq 1)group (text " "text "BMW"4 "3er" random5 "5er" random6 "7er" random ) random flt (marken eq 2)group (text " "text "Mercedes-Benz"7 "C-Klasse" random8 "E-Klasse" random9 "S-Klasse" random ) random flt (marken eq 3)text " "10 "keine davon" single;

Die mögliche Komplexität der Labeldefinitionen wird hier erkennbar. Wie genau man die Zeile-numbrüche setzt ist egal, theroetisch könnte man auch alles in eine Zeile hintereinander schreiben.

Bei der NumQ kann außerdem noch der Platzhalter @input an die Stelle des Labeltextes eingefügtwerden, an der das Eingabefeld erscheinen soll. Siehe Abschnitt 3.9.NumQ punkte;Text="Bitte verteilen Sie 10 Punkte auf diese Marken";labels=1 "Marke A: @input Punkte" format f12 "Marke B: @input Punkte" format f13 "Marke C: @input Punkte" format f14 "Marke D: @input Punkte" format f15 "sonstige Marke (bitte angeben) @open : @input Punkte" format f1;

labels copy, griditems copy, gridlabels copy Mit den jeweiligen Anweisungen lassen sichLabels bzw. Griditems einer vorangegangenen Frage wieder verwenden. Die Anweisung labelscopy gehört zu den nicht-Gridfragen. Für Gridfragen stehen griditems/gridlabels copy zur

Verfügung, wobei hierbei immer nur von GridItems oder normalen Labels kopiert werden kann.

SingleQ s1;text="Text Text";labels=1 "1"3 "3";

MultiQ s2;text="Text Text";

GESS Q. (Stand: März 2018) 33

Page 46: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

labels copy s1;

Von Gridfrage zu Gridfrage:SingleQ s0;text="Text";labels=1 "1 sehr gut"2 "2"3 "3"4 "4 sehr schlecht"99 "weiß nicht"

SingleGridQ s1;text="Text Text";gridlabels copy s0;griditems=1 "Item 1"2 "Item 2"3 "Item 3"4 "Item 4";

MultiGridQ s2;text="Text Text";gridlabels copy s0;griditems copy s1;

Und von nicht-Gridfrage zu Gridfrage bzw. anders herum:// nicht-Grid zu GridSingleQ s1;text="Text Text";labels=1 "1"2 "2";

MultiGridQ s2;text="Text Text";gridlabels1 "gl 1"2 "gl 2";griditems copy s1;;

// Grid zu nicht-GridSingleGridQ s1;text="Text Text";gridlabels=1 "gl 1"2 "gl 2";griditems=3 "3"

GESS Q. (Stand: März 2018) 34

Page 47: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

4 "4";

SingleQ s2;text="Text Text";labels copy s1;

insertLabels fügt der aktuellen Labelliste nachträglich weitere Labels APPENDLABELS zu. Dieneuen Labels werden hinter dem Label mit Labelcode LCODE einsortiert.

insertLabels = LCODE( APPENDLABELS );

SingleQ s1;labels=1 "1"3 "3";

SingleQ s2; // s2 erhält somit folgende Labellistelabels copy s1; // labels=insertLabels= // 1 "1"1( // 2 "neu eingefügt"

2 "neu eingefügt" // 3 "3"); // ;

shareLabels Im Gegensatz zu labels copy arbeitet shareLabels nicht mit einer Kopie der Liste.Änderungen an der Labelliste, etwa mit insertLabels wirken sich auf beide Fragen aus.

SingleQ s1;labels=1 "1"3 "3";

SingleQ s2;shareLabels = s1;

restrict filtert eine Labelliste, sodass nur noch die Labels (mit den Codes) dargestellt werden, diein der Wertemenge einer zuvor beantworteten Frage enthalten sind. So lässt sich sehr einfach mitzuvor gegebenen Antworten weiter arbeiten. Anstelle der Wertemenge kann auch eine RestrictVarangegeben werden. Mehr hierzu siehe Abschnitt 8.11.

MultiQ bekannt;text="Welche dieser Produkte kennen Sie?";labels=1 "Produkt 1"2 "Produkt 2"3 "Produkt 3"4 "Produkt 4"5 "Produkt 5"

GESS Q. (Stand: März 2018) 35

Page 48: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 3. Fragedefinitionen

6 "Produkt 6";

MultiQ gekauft;text="Welche der Produkte haben Sie schon gekauft?";labels copy bekannt;restrict=bekannt;flt=(num(bekannt) gt 0);

Soll mit einer negativ-Liste gearbeitet werden, muss das resrict mit einer not-Verbindung inKlammern gesetzt werden:restrict=(not(bekannt));

GESS Q. (Stand: März 2018) 36

Page 49: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 4. Definition des Interviewablaufs

4 Definition des Interviewablaufs

4.1 Allgemeines

Das Interview besteht aus einer Baumstruktur. Die kleinste Einheit ist die Frage. Fragen können zueiner Bildschirmseite (genauer wäre eigentlich: Web-Seite; wir nennen es Screen) zusammengefasstwerden, und Screens wiederum zu Blöcken, die ineinander geschachtelt werden können.

4.2 Blöcke

Jeder Block hat einen Namen. Mit main gibt es einen Block, der immer vorhanden sein muss undder auch den Einstiegspunkt in das Interview darstellt. Beim Ablauf eines Interviews wird derInhalt des Blocks main nacheinander ausgeführt. Der Ablauf kann aus einer simplen, linearenReihenfolge von Fragen bestehen, er kann aber auch beliebig komplex werden durch mehrfacheVerschachtelungen, Filterführungen oder zufällige Anordnungen (Randomisierungen).

Jeder Block kann sowohl weitere Blöcke enthalten als auch Screens. Die Screens wiederumenthalten die Fragen. Sofern ein Screen nur eine Frage enthält, ist es nicht notwendig, expliziteinen Screen für diese Frage zu definieren, sondern es wird ein Standard-Screen erzeugt, der dengleichen Namen wie die Frage hat. Auf der Nutzerseite sieht es zwar so aus, als fügte man eineFrage direkt einem Block hinzu, tatsächlich wird jedoch automatisch ein Screen erzeugt.

Die Einteilung der Fragen/Screens in Blöcke erlaubt es, Teile des Interviews zu kapseln. Auf dieseWeise ist es möglich, einen Block von Fragen nur dann zu stellen, wenn bestimmte Bedingungenerfüllt sind. Oder die Fragen innerhalb eines Blocks können pro Interview oder pro interviewterGruppe in eine zufällige Reihenfolge gebracht werden.

4.3 Screens

Screens enthalten die eigentlichen Fragen, die in einer rekursiven Struktur aus Spalten und Zeilenangeordnet werden können. Als Schlüsselwörter für die Anordnung der Fragen in Spalten undZeilen dienen column und row. Ein Screen hat dabei genau einen Fragetext, aber jede Frageinnerhalb des Screens kann eine eigene (direkt über der Frage angezeigte) Überschrift haben, dentitle der Frage. Man kann für einen Screen einen eigenen Fragetext definieren; sofern dies nichtgeschieht, wird automatisch der Fragetext der ersten Frage des Screens verwendet. (AusführlicheErläuterungen zu Screens bietet Kapitel 7.)

Es ist auch möglich, Screens völlig unabhängig von den Fragen mit HTML zu gestalten, dazuaber später mehr (s. Abschnitt 14.4).

GESS Q. (Stand: März 2018) 37

Page 50: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 4. Definition des Interviewablaufs

4.4 Beispiele

Angenommen, das gesamte Interview bestünde nur aus den Fragen a, b und c, die in linearerReihenfolge hintereinander angezeigt werden sollen. Der main-Block sähe dann so aus:block main=(a b c);

Wenn jedoch alle drei Fragen in einem Screen untereinander angezeigt werden sollen, und dasInterview nur aus diesem einen Screen bestehen soll, lautet die Syntax:Screen screen1=column(a b c);

block main=(screen1);

Um die gewünschte Abfolge zu erreichen, müssen also erst die Fragen dem Screen hinzugefügtwerden, und dann der Screen dem main-Block.

Angenommen, es gibt zwei TextQs (text1 und text2), und jeder TextQ ist eine SingleQ mit einerSkala zugeordnet, um das, was im Text beschrieben wird, zu beurteilen (skala1 und skala2). DieTexte sollen nebeneinander, und die Skala jeweils unter dem Text, zu dem sie gehört, angezeigtwerden, und der Screen soll einen eigenen Fragetext erhalten:Screen bilder=row(column(text1 skala1)column(text2 skala2));text="Bitte beurteilen Sie die beiden Bilder!";

Die geschachtelte Struktur von Spalten und Zeilen wird durch die Anweisungen column und rowerreicht. Die Struktur kann durch column und row auch beliebig komplex gestaltet werden.

Nochmal angenommen, es gäbe eine SingleQ geschlecht , die das Geschlecht der Interviewtenabfragt. Wenn in der Folge die Fragen a, b, c und d, nur an Männer gerichtet werden sollen,und die Fragen e, f, g und h, nur an Frauen, kann das mit zwei Blöcken erreicht werden, beidenen die Antwort auf die Frage nach dem Geschlecht als Filter dient (zur Syntax von Filternund Bedingungen siehe Kapitel 10):block block_m = (a b c d); flt=geschlecht eq 1;block block_w = (e f g h); flt=geschlecht eq 2;

block irgendeinblock = (block_m block_w);

block main = (geschlecht ... irgendeinblock ...);

Filter werden mit dem Schlüsselwort flt einem Block hinzugefügt.

Eine zufällige Reihenfolge von fünf Fragen (q1, q2, q3, q4 und q5) kann einfach realisiert werden:block zufall = (q1 q2 q3 q4 q5); random;

block main = (zufall);

Eine Randomisierung wird durch das Schlüsselwort random erreicht.

GESS Q. (Stand: März 2018) 38

Page 51: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 4. Definition des Interviewablaufs

Durch die hierarchische Schachtelung von Fragen zu Screens und Screens zu Blöcken ist eineflexible Steuerung des Interviewablaufs möglich. Es existieren noch andere Möglichkeiten zurAblaufsteuerung als die hier erwähnten, wie z. B. Plausibilitätsbedingungen oder das Sortieren vonElementen nach aus dem bisherigen Interview-Verlauf gewonnenen Reihenfolge (siehe Kapitel 10).

4.5 Whitelist

Daneben kennt GESS Q. den Mechanismus einer Whitelist um den Ablauf eines Interviewszu steuern. Bei der Whitelist handelt es sich um eine JSON-Datei mit Listings von Fragen,Screens und Blöcken (inklusive der Labels und Items). Im Skript enthaltene aber in der Whitelistausgesparte Elemente werden im Interview ausgelassen. Um die Whitelist einzusetzen, muss sieim text-Verzeichnis der Studie liegen und über einen URL-Parameter eingebunden werden (zuURL-Parametern s. auch Abschnitt 22.3):

&whitelist=DATEINAME

Vom Prinzip her würde es der Whitelist-Mechanismus auch ermöglichen, unterschiedliche Abläufean verschiedene IDs zu binden.

GESS Q. (Stand: März 2018) 39

Page 52: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 5. Intervieweinstellungen

5 Intervieweinstellungen

5.1 Allgemeines

In diesem Kapitel werden alle verfügbaren Skriptparameter nach Kategorien aufgelistet, alphabe-tisch sortiert und erklärt. Neben Skriptparametern gibt es HTML-Parameter. Die Unterscheidungexistiert nur noch aus historischen Gründen. In den frühen Entwicklungsphasen gab es sehrunterschiedliche Grafikausgaben bei möglichen GESS Q. Endgeräten, die alle ihre Eigenheitenmit sich brachten. HTML war dabei das Grafiksystem für Onlineumfragen in Internetbrowsern.Inzwischen ist die Technik so weit voran geschritten, dass Endgeräte zunehmend auf das WorldWide Web ausgerichtet sind und auch HTML-Ausgaben unterstützen, indem sie vollwertigeBrowser mitliefern. Die aktuellen Versionen von GESS Q. basieren alle auf HTML, was dazu führt,dass es nun einerseits Skriptparameter gibt, die ursprünglich unabhängig für alle Ausgabemediengalten und »nur noch« HTML-Parameter, die speziell mit dem HTML-Layout zu tun haben.

Ein Beispiel zur Verdeutlichung: Der Skriptparameter defaultnomissing legt fest, ob ein Ein-gabezwang für die folgenden Fragen vorgesehen werden soll oder nicht. Es handelt sich hierbeium einen Skriptparameter, weil diese Einstellung unabhängig vom produzierten Fragescreen ist.Die BrowserNavigationMessage hingegen ist ein Fehlertext, der nur im Zusammenhang mit derBedienung im Browser auftreten kann und damit ein HTML-Parameter ist.

Eine Zusammenführung der beiden Sorten Parameter unterblieb bisher nur aus Kompatibilitäts-gründen, ist aber auf lange Sicht geplant. Wichtig ist zu diesem Punkt aber das Bewusstsein,dass es hier Unterscheidungen gibt, die sich auf die Schreibweise im Skript auswirken:// Skriptparameterdefaultnomissing = yes;

// HTML-ParameterHTML{

BrowserNavigationMessage = "Bitte nicht den Zurückbutton des Browsers benutzen.";};

5.2 Skriptparameter

Es gibt zwei unterschiedliche Verhaltensweisen von Skriptparametern. Die einen gelten für dengesamten Fragebogen und sind [global], wobei die letzte Definition im Skript gewinnt. Dieanderen Parameter können von Frage zu Frage verändert werden und so das Verhalten jederFrage unterschiedlich beeinflussen [lokal]. Das folgende Beispielskript verdeutlicht das Verhaltenam globalen DataWriteCondition und dem lokalen DefaultNoMissing:DataWriteCondition = true; // (1) immer Datensätze schreibenDefaultNoMissing = yes; // (2) Eingabezwang an

SingleQ S1;// ...

DataWriteCondition = false; // (3) nie Datensätze schreibenDefaultNoMissing = no; // (4) Eingabezwang aus - überschreibt (2)

GESS Q. (Stand: März 2018) 40

Page 53: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 5. Intervieweinstellungen

SingleQ S2;// ...

Im o.a. Beispiel erhält SingleQ S1 einen Eingabezwang (2), der nach der Fragedefinition wiederabgestellt wird (4). Die danach definierte Frage SingleQ S2 hat somit keinen Eingabezwangmehr. Anders hingegen verhält sich der globale Parameter DataWriteCondition. Die dargestellteVerwendung ist so nicht vorgesehen. Die Einstellung gilt nur einmal für den gesamten Fragebogen,unabhängig davon an welcher Stelle im Skript die Definition vorgenommen wurde. Angabe (4)überschreibt Angabe (2) und macht sie damit wirkungslos. Für das Interview insgesamt giltdaher, dass nie Datensätze geschrieben werden. Mehrere Definitionen globaler Parameter sindalso nicht sinnvoll. Im Folgenden bezeichnet [G] einen globalen Parameter und [L] einen lokalen.

ArrayInitMode [G] definiert, ob die Felder angelegter Arrays in aufsteigender Reihenfolge odermit Missings initialisiert werden sollen.

Optionen: missing|positionDefault: missing

ArrayInitMode = position;Array arr[5]; // {1, 2, 3, 4, 5}

autoChangePBar [G] setzt den Fortschrittsbalken bei ausgefilterten Fragen/Screens/Blöcken au-tomatisch um die jeweilige Anzahl ausgelassener Screens voran. ChangepBar, dieser kann additivgenutzt werden (Abschnitt 10.3.2), um in den Automatismus einzugreifen.

Optionen: yes|noDefault: no

autoChangePBar = yes;

CaseInUseMsg [G] Legt die Fehlermeldung fest, wenn bei aktiviertem Cookie-Handling ein Par-allelzugriff auf ein bereits geöffnetes Interview von einem zweiten Endgerät (genauer: Browserohne Cookie) erfolgt.

Optionen: TEXTDefault: The requested case is currently in use. Please try again later.

CaseInUseMsg = "Ihr Interview kann im Moment nicht betreten werden.<br>Bitte versuchen Sie es später noch einmal.

";

ClearScreenOnBack [L] steuert, ob der Zurückbutton dazu führt, dass die Antworten des aktuelldargestellten Screens gelöscht werden sollen.

GESS Q. (Stand: März 2018) 41

Page 54: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 5. Intervieweinstellungen

Optionen: yes|noDefault: no

ClearScreenOnBack = yes;

Bitte beachten: Diese Einstellung ist Screenabhängig. Fragen, die für sich allein einen Screendarstellen (sprich ohne explizites screen NAME = (); ), werden von der Software erst als Screeninterpretiert, wenn sie in einem Block auftauchen.

CompletedExitCode [G] legt den Finish-Code fest, den regulär abgeschlossene Umfragen zuge-wiesen bekommen. Regulär heißt, dass das Interview vollständig durchlaufen, kein vorzeitigesBefragungsende mittels assert erzwungen und keine manuelle Modifikation des Finish-Codes imSkript vorgenommen wurde.

Optionen: NUMBERDefault: 1

CompletedExitCode = 100;

CreateDefaultSortId [L] Bei Aktivierung sorgt diese Einstellung dafür, dass alle Antwortmög-lichkeiten mit Labelcodes automatisch mit ihrem Code als sortID versehen werden. AusführlicheBeschreibungen der Sortiermechanismen von GESS Q. gibt es in Kapitel 11.

Optionen: yes|noDefault: no

CreateDefaultSortId = yes;

CreateLabelOpenValidation [L] Ist diese Einstellung aktiviert, wird automatisch eine Validierungfür offene Textfelder in Labellisten erzeugt. Ist das Häkchen an einem entsprechenden Labelmarkiert, muss das zugehörige Textfeld ebenfalls ausgefüllt werden. Ist das Textfeld ausgefüllt,muss auch ein Häkchen gesetzt sein. Wird gegen diese automatische Validierung verstoßen, wirddie Fehlermeldung LabelOpenErrorMessage ausgegeben.

Optionen: yes|noDefault: no

CreateLabelOpenValidation = yes;

DataWriteCondition [G] definiert unter welcher Bedingung am Ende eines Interviews Datengeschrieben werden sollen. Trifft die Bedingung nicht zu, erzeugt GESS Q. aus Sicherheitsgründenvor ungewolltem Datenverlust trotzdem Datensätze. Diese werden in den Ordner nodata verscho-ben und sind in der Benutzeroberfläche auf der Seite des Datenexports separat als ignored dataaufgeführt.

GESS Q. (Stand: März 2018) 42

Page 55: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 5. Intervieweinstellungen

Optionen: BEDINGUNGDefault: false

DataWriteCondition = _finished eq 1;#ifdef testmode

DataWriteCondition = false;#endif

DefaultNoMissing [L] aktiviert und deaktiviert den Eingabezwang für die folgenden im Skriptdefinierten Fragen.

Optionen: yes|noDefault: yes (Eingabezwang aktiviert)

DefaultNoMissing = no;

DisableExitOnAssert [G] Wenn aktiviert, werden durch Plausibilitätsbedingungen (oder genauer:assert’s mit exit) herbeigeführte Interviewabbrüche unterdrückt. Ein solches assert verhältsich dann so, als hätte es kein exit, wobei in der ausgegebenen Fehlermeldung ein zusätzlicherHinweis inkl. Abbruch-Code erscheint, dass es an dieser Stelle eigentlich einen Interviewabbruchgäbe. Mit einem #ifdef testmode verknüpft, erleichtert dieser Parameter das Testen einer Studie(siehe Abschnitt 2.3).

Optionen: yes|noDefault: no

DisableExitOnAssert = yes;

EnableKeyboard [G] Wenn aktiviert, wird ein Tastatureingabemodus aktiviert. Siehe auch Ab-schnitt 19.

Optionen: yes|noDefault: no

enableKeyboard = yes;

EnableTextReplace [G] aktiviert und deaktiviert den Textersatz, siehe Kapitel 6.

Optionen: yes|noDefault: yes

EnableTextReplace = no;

GESS Q. (Stand: März 2018) 43

Page 56: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 5. Intervieweinstellungen

ExportMapping stellt eine Übersetzung für Variablennamen im Export bereit. Die dort verwendetenNamen werden aus den Benennungen im Skript abgeleitet, wobei es teilweise auch automatischgenerierte Präfixe gibt. Ein von GESS Q. automatisch generierter Variablenname FROM kannmittels ExportMapping exlusiv für den Export zu TO geändert. ExportMapping muss direktan der Variable stehen und kann beliebig oft verwendet werden. Die folgenden Variablentypenuntersützen ExportMapping:

• SingleQs

• NumQs

• SingleGridQs

• MultiGridQs

• Array

• Group

exportMapping "FROM" "TO";

exportMapping "grid.1.1" "gridA";exportMapping "grid.2.1" "gridB";

GridErrorType [L] wählt, ob das Errorhighlighting bei Gridfragen nur bei Eingabezwängen(Default) oder bei sämtlichen assert-Anweisungen greift.

Optionen: all|nomissingDefault: nomissing

GridErrorType = all;

GridOpenNoMissing [L] Für offene Items in Grid-Fragen lässt sich damit für die folgenden Fragenein Eingabezwang einschalten (das offene Feld muss dann ausgefüllt werden).

Optionen: yes|noDefault: no

GridOpenNoMissing = yes;

IdClosedMsg [G] legt den Text der Meldung fest, die Teilnehmer vorgelegt bekommen, dieversuchen mit einem individuellen Einladungslink ein zweites Interview durchzuführen.

Optionen: TEXTDefault: Invalid respondent ID.

This ID has an invalid syntax (only A-Z, a-z and 0-9 are allowed),is not registered to participate or has already been used.

GESS Q. (Stand: März 2018) 44

Page 57: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 5. Intervieweinstellungen

IdClosedMsg = "Dieser Zugang wurde bereits verwendet.";

ignoreFilter Wird die Variable auf yes gesetzt, kann man das Interview durchgehen als gäbe eskeine Filter, s. Thema Robot in Abschnitt 26.2.

Optionen: yes|noDefault: no

ignoreFilter = yes;

ignoreAssert Wird die Variable auf yes gesetzt, kann man das Interview durchgehen als gäbe eskeine Plausibilitätsbedingungen, s. Thema Robot in Abschnitt 26.2.

Optionen: yes|noDefault: no

ignoreAssert = yes;

ignoreNoMissing Wird die Variable auf yes gesetzt, kann man das Interview durchgehen als gäbees keinen Eingabezwang, s. Thema Robot in Abschnitt 26.2.

Optionen: yes|noDefault: no

ignoreNoMissing = yes;

InvalidIdMsg [G] legt den Text der Meldung fest, die Teilnehmer vorgelegt bekommen, dieversuchen ein Interview mit ungültigen oder unbekannten Zugangscodes zu starten.

Optionen: TEXTDefault: Invalid respondent ID.

This ID has an invalid syntax (only A-Z, a-z and 0-9 are allowed),is not registered to participate or has already been used.

InvalidIdMsg = "Mit Ihrem Link ist leider kein Interview möglich.";

InvalidSingleMsg [G] Bei Mehrfachnennungen mit exklusiven Antworten (single) erfolgt eineÜberprüfung, ob nur eine exklusive Antwort oder ausschließlich nicht-exklusive Antwortengegeben wurden. Ist dies nicht der Fall, wird diese Fehlermeldung ausgegeben. Die aktuellenDarstellungen von Multi(Grid)Qs stellen bereits während des Ausfüllens sicher, dass nur korrektgeantwortet werden kann. Es kann somit nur noch zu dieser Fehlermeldung kommen, wennBefragte die HTML-Quellen des Fragebogens in Ihrem Browser manuell verfälschen. (Erscheintin der Übersetzungstabelle als _singlemsg.)

GESS Q. (Stand: März 2018) 45

Page 58: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 5. Intervieweinstellungen

Optionen: TEXTDefault: "Labels unstimmig."

InvalidSingleMsg = "Die Angaben sind widersprüchlich. Bitte korrigieren.";

ItemMissingText [L] Diese Fehlermeldung erscheint, wenn bei eingeschaltetem Eingabezwangin Gridfragen Items (also meist Zeilen) nicht beantwortet wurden. Per Default wird auch beimehreren fehlenden Antworten nur eine Fehlermeldung ausgegeben. Dieses Verhalten lässt sichbei Gridfragen mit dem optionalen Zusatzattribut showMultipleErrors beeinflussen.

Optionen: TEXTDefault: "Bitte Antworten Sie auf alle Kategorien."

ItemMissingText = "Bitte füllen Sie alle Zeilen aus.";

LabelOpenErrorMessage [G] definiert eine Fehlermeldung, wenn gegen die automatische Validie-rung von offenen Eingabefeldern in Label-Listen verstoßen wurde, sieheCreateLabelOpenValidation. In der Fehlermeldung kann mit @label auf die unvollständig ausge-füllte Antwortmöglichkeit konkret Bezug genommen werden.

Optionen: TEXTDefault: "Bitte antworten Sie vollständig samt Texteingaben."

LabelOpenErrorMessage = "Fehlende Antwort für: @label.";

MissingText [L] Diese Fehlermeldung erscheint, wenn bei aktiviertem Eingabezwang eine Frageauf dem aktuellen Screen nicht beantwortet wurde.

Optionen: TEXTDefault: "Bitte beantworten Sie die Frage."

MissingText = "Bitte antworten Sie.";

MultiExportLimit [L] begrenzt die maximale Nennungsanzahl für Multifragen beim Export.Gibt es z. B. Labellisten mit 500 Produkten, von denen der Befragte über Filterung jeweilsnur 10 wählen kann, lässt sich so steuern, dass GESS Q. im ASCII Datensatz nur Platz für 10statt 500 Nennungen reserviert. In den Rohdaten werden aber stets alle Nennungen gespeichert.Gibt es im Verhältnis zum MultiExportLimit überschüssige Nennungen, werden diese im Exportausgelassen.

Optionen: NUMBERDefault: UNENDLICH

MultiExportLimit = 10;

GESS Q. (Stand: März 2018) 46

Page 59: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 5. Intervieweinstellungen

NoAnswerLabel [L] gibt den Text für Enthaltungen vor. Dies betrifft konkret Schieberegler undgrafische NumQs, die optional Enthaltungsoptionen anbieten.

Optionen: TEXTDefault: "Keine Angabe"

NoAnswerLabel = "Enthaltung";

QuotaWriteCondition [G] Bei dieser Einstellung wird am Ende des Interviews ausgewertet unddefiniert, ob der jeweilige Fall überhaupt in die Quotenzählung einfließen soll. Anzumerken ist,dass eine QuotaVar selbst ebenfalls definiert, wann sie zu zählen ist, siehe Kapitel 12.

Optionen: BEDINGUNGDefault: false

QuotaWriteCondition = _finished eq 1;#ifdef testmode

QuotaWriteCondition = false;#endif

PBarMax [G] gibt die für den Fortschrittsbalken zu berücksichtigende Anzahl von Screens imFragebogen vor und verwendet ihn an Stelle des von GESS Q. selbst ausgerechneten Werts. Mehrzum Thema Fortschrittsbalken findet sich in Abschnitt 14.1.5.

Optionen: NUMBERDefault: ANZAHL SCREENS

PBarMax = 42;

saveIP [G] Wenn aktiviert speichert GESS Q. die IP Adressen der Interviewteilnehmer.

Optionen: yes|noDefault: no

saveIP = yes;

SaveOnBack [L] speichert Antworten in Screens bei Zurück-Navigation.

Optionen: yes|noDefault: no

SaveOnBack = yes;

GESS Q. (Stand: März 2018) 47

Page 60: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 5. Intervieweinstellungen

Bitte beachten: Fragen, die für sich allein einen Screen darstellen (sprich ohne explizitesscreen NAME = (); ), werden von der Software erst als Screen interpretiert, wenn sie in einemBlock auftauchen:SaveOnBack = yes;SingleQ s1;SaveOnBack = no;block main = (s1); //<-- Erst hier ist klar, dass s1 seinen Screen selbst erstellt (mit SaveOnBack = no)

showHelptext [G] definiert, ob die zusätzlichen Intervieweranweisungen preHelptext undpostHelptext der Fragedefinitionen ausgegeben werden sollen oder nicht.

Optionen: yes|noDefault: yes

showHelptext = no;

showInterviewerHelptext [G] definiert, ob die zusätzlichen Texte preInterviewerHelptext undpostInterviewerHelptext der Fragedefinitionen ausgegeben werden sollen oder nicht.

Optionen: yes|noDefault: yes

showInterviewerHelptext = no;

SurveyClosedMsg [G] legt den Text der Meldung fest, die Teilnehmer vorgelegt bekommen, wennsie versuchen ein Interview zu starten, während die Studie auf »inaktiv« gesetzt ist.

Optionen: TEXTDefault:The survey is currently inactive. Please try again in a few minutes.If this message still appears, the survey might already have been closed.

SurveyClosedMsg = "Tut uns leid, die Umfrage ist abgeschlossen.";

WriteRescueData [G] legt fest, ob nach jedem ausgefüllten Screen eine Sicherung des Datensatzeserfolgen soll. Im Normalfall befindet sich ein aktives Interview im Arbeitsspeicher des Rechners,der GESS Q. ausführt. Eine physikalische Datenablage erfolgt erst nach Abschluss, explizitemAbbruch oder im Falle eines Webservers aufgrund eines Timeouts wegen Untätigkeit des Befragten.Ein unerwarteter Ausfall des Rechners würde zum Verlust aller aktiven Interviews bis zu ihrerletzten Ablage führen.

Die kontinuierliche Datensicherung ist sehr rechenintensiv und empfiehlt sich daher nur aufgeringfügig ausgelasteten Webservern. Völlig unbedenklich und dringend empfehlenswert istdieses Feature hingegen im Rahmen der GESS Q. Android App, da pro Gerät nur ein Interviewzur Zeit stattfindet.

GESS Q. (Stand: März 2018) 48

Page 61: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 5. Intervieweinstellungen

Optionen: yes|noDefault: no

#ifdef androidWriteRescueData = yes;

#endif

WriteViewingTime [G] stellt ein, ob Betrachtungszeiten der einzelnen Screens aufgezeichnetwerden sollen. Da es in Befragungen sein kann, dass der Teilnehmer durch Verwendung desZurückbuttons oder bei Sprüngen einen Screen mehrfach vorgelegt bekommt, gibt es unterschied-liche Modi. Die Option first speichert die Dauer, die der Teilnehmer beim ersten Mal auf demScreen verweilt hat, last die der letzten Ansicht und all die Summe aller Betrachtungszeiten.none stellt die Funktion aus. Optional kann hinter jede dieser Angaben auch gezielt eine Liste mitNamen von Screens angegeben werden, für die dann exklusiv eine Messung vorgenommen wird.

Die jeweils in Millisekunden gemessene Zeitspanne wird in numerischen Variablen namensSCREENNAME.duration gespeichert und entspricht der Zeit von dem Moment an, an dem der Serverden Screen jüngst ausgeliefert hat bis zu dem Zeitpunkt, an dem der Befragte seine Antwort anden Server zurückschickt. Eventuelle Timeout-Zeiten werden so nicht berücksichtigt.

Optionen: none|first|last|all [(SCREENLIST)]Default: none

WriteViewingTime = first;// WriteViewingTime = first (q1 q2 q3);

5.3 HTML-Parameter

Wie zuvor bereits beschrieben, beziehen sich HTML-Parameter nur auf spezielle Gegebenheitenund Möglichkeiten der HTML-Ausgabe. Da inzwischen alle Derivate von GESS Q. auf derHTML-Ausgabe basieren, ist die gesonderte Skriptsyntax dafür auf den ersten Blick nicht mehreingängig. Als historisch gewachsenes Konstrukt ist es jedoch aus Kompatibilitätsgründen erhaltengeblieben, wobei auch die strikte Trennung zwischen Skript- und HTML-Parameter nicht immerganz eindeutig ist. Im Zweifelsfall kann man sich auf die Syntaxprüfung des Skript-Checks derBenutzeroberfläche verlassen, der eine mögliche falsche Verwendung anmosert. HTML-Parameterkönnen einzeln oder gruppiert innerhalb von ...HTML ;notiert werden.HTML{ BackButton = yes; };

HTML{BackButton = yes;ContinueButton = yes;

};

Im Gegensatz zu Skript-Parametern sind alle HTML-Parameter lokal, d.h. sie können im Skriptzwischen den Fragedefinitionen beliebig umgeschaltet werden und - über den ganzen Fragebogenhinweg betrachtet - viele unterschiedliche Zustände annehmen.

BackButton stellt ein, ob der Zurückbutton auf den Screens sichtbar sein soll. Voraussetzunghierfür ist, dass er auch mit @back im Template der Umfrage vorgesehen ist, siehe Abschnitt 14.1.

GESS Q. (Stand: März 2018) 49

Page 62: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 5. Intervieweinstellungen

Optionen: yes|noDefault: no

HTML{ BackButton = yes; };

BackButtonCnd Vorausgesetzt, dass der Zurückbutton mittels BackButton=yes aktiviert ist, lässtsich zusätzlich eine Bedingung stellen, wann er tatsächlich sichtbar sein soll. So kann die Anzeigedes Zurückbuttons z. B. dynamisch von den gegebenen Antworten des Befragen abhängen.

Optionen: BEDINGUNGDefault: true

f1 eq 1

BackButtonSrc Anstelle der Standardbuttons des jeweiligen Browsers lassen sich auch eigeneButtons für die Navigation integrieren. Dies geschieht anhand von Bilddateien. Es lassen sichEffekte beim Überfahren mit der Maus hinterlegen, sowie Unterschiede im Aussehen je nachdem,ob der Button gerade inaktiv ist oder nicht. Je nach Gestaltungswunsch kann die Einbindungetwas aufwändiger werden, weshalb das Vorgehen in Abschnitt 14.5 ausführlich beschrieben wird.

BackButtonText Beschriftung des Zurückbuttons. Nur bei Verwendung von den Default Browser-buttons (ohne BackButtonSrc).

Optionen: TEXTDefault: zurück

HTML{ BackButtonText = "Zur vorherigen Seite"; };

BrowserNavigationMessage Fehlermeldung, die bei Onlinebefragungen und der Verwendung desbrowsereigenen Zurückbuttons ausgegeben wird. Während der Befragung speichern Webbrowserden Verlauf der besuchten Seiten ab. In GESS Q. entspricht jeder Screen einer neuen Webseite.Springt der Befragte nun mit Hilfe dieser History ein paar Screens zurück, geschieht dies ausdem Zwischenspeicher des Browsers ganz ohne Kommunikation zum GESS Q. Server. Ändert derBefragte nun seine Antworten auf einem früheren Screen und schickt diese ab, erwartet GESSQ. ihn eigentlich an einer ganz andere Stelle im Interview, verwirft seine erneute Eingabe unterAngabe dieser Fehlermeldung und befördert ihn zur eigentlich aktuellen Frage. (Erscheint in derÜbersetungstabelle als _browsermsg.)

Optionen: TEXTDefault: Bitte verwenden Sie zum Navigieren nicht die Browserbuttons.

HTML{ BrowserNavigationMessage = "In diesem Interview geht es nur vorwärts."; };

CancelButton stellt ein, ob der Abbruchbutton auf den Screens sichtbar sein soll. Voraussetzunghierfür ist, dass er auch mit @cancel im Template der Umfrage vorgesehen ist, siehe Abschnitt 14.1.

GESS Q. (Stand: März 2018) 50

Page 63: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 5. Intervieweinstellungen

Optionen: yes|noDefault: no

HTML{ CancelButton = yes; };

CancelButtonCnd Siehe BackButtonCnd.

CancelButtonSrc Siehe BackButtonSrc.

CancelButtonText Beschriftung des Abbruchbuttons. Nur bei Verwendung von den DefaultBrowserbuttons (ohne CancelButtonSrc).

Optionen: TEXTDefault: abbrechen

HTML{ CancelButtonText = "Befragung unterbrechen"; };

ContinueButton stellt ein, ob der Weiterbutton auf den Screens sichtbar sein soll. Voraussetzunghierfür ist, dass er auch mit @submit im Template der Umfrage vorgesehen ist, siehe Abschnitt 14.1.

Optionen: yes|noDefault: no

HTML{ ContinueButton = yes; };

ContinueButtonCnd Siehe BackButtonCnd.

ContinueButtonSrc Siehe BackButtonSrc.

ContinueButtonText Beschriftung des Weiterbuttons. Nur bei Verwendung von den DefaultBrowserbuttons (ohne ContinueButtonSrc).

Optionen: TEXTDefault: weiter

HTML{ ContinueButtonText = "Zur nächsten Seite"; };

cssLayout versieht Fragen mit einer zusätzlichen CSS Klassifizierung und gibt an, wie vielealternierende Zeilenlayouts in der Darstellung vorgesehen werden sollen. Eine ausführlichereBeschreibung findet sich in Abschnitt 14.3.2.

Optionen: TEXT, NUMBERDefault: "", 2

GESS Q. (Stand: März 2018) 51

Page 64: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 5. Intervieweinstellungen

HTML{ CssLayout = "TeilA", 1; };

ErrorPostText Vorausgesetzt ShowIndividualErrors=yes; ist gesetzt, wird dieser Text im Feh-lerfall hinter der fehlerhaften bzw. unvollständig oder falsch ausgefüllten Frage ausgegeben.

Optionen: TEXTDefault: ""

HTML{ ErrorPostText = "... ist ein Fehler!"; };

ErrorPreText Vorausgesetzt ShowIndividualErrors =yes ist gesetzt, wird dieser Text im Fehlerfallvor der fehlerhaften bzw. unvollständig oder falsch ausgefüllten Frage ausgegeben.

Optionen: TEXTDefault:

HTML{ ErrorPreText = "In folgender Frage..."; };

Input regelt, ob die GESS Q. internen Renderklassen die Darstellung der Fragen vollständigübernehmen oder nur Hintergrundinformationen und Javascript in der HTML-Ausgabe vorgesehenwerden sollen. Bei ausgefallenen Fragelayouts oder besonderen Anordnungen der Eingabefelderund Buttons kann hiermit der normale Output unterdrückt werden, um einzelne Fragen oderganze Screens selbst mit HTML zu entwerfen. Ausführliche Beispiele zum Vorgehen finden sichin Abschnitt 14.4.

Optionen: yes|noDefault: yes

HTML{ Input = no; };

JavascriptSingleMode steuert das Klickverhalten bei exklusiven Antworten in Label-Listen. Beideselect führt der Klick auf eine exklusive Antwort dazu, dass alle anderen zuvor markiertenAntwortmöglichkeiten automatisch wieder abgewählt werden. deactivate lässt keine Auswahleiner exklusiven Antwort zu solange andere Nennungen vorhanden sind und umgekehrt.

Optionen: deselect|deactivateDefault: deactivate

HTML{ JavascriptSingleMode = "deselect"; };

MaxLabelsPerCol gibt an, wie viele Zeilen eine SingleQ bzw. MultiQ maximal haben darf oderanders gesagt, wie viele Antwortmöglichkeiten maximal in einer Spalte stehen dürfen. Sobald dievorgegebene Anzahl überschritten wird, fügt GESS Q. automatisch eine neue Spalte an und setztdie Labelliste damit fort. Manuell lassen sich Spaltenumbrüche übrigens auch mit splitcolumnAttributen innerhalb von Labellisten erzwingen.

GESS Q. (Stand: März 2018) 52

Page 65: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 5. Intervieweinstellungen

Optionen: NUMBERDefault: UNENDLICH

HTML{ MaxLabelsPerCol = 10; };

MultiGridQClass wählt alternative Renderklassen für die MultiGridQ aus. Aktuell ist die heutzu-tage etwas nostalgische Standardvariante oder die grafische MultiGridQ wählbar. UnbekannteAngaben führen zum Defaultverhalten.

Optionen: "MultiGridQ"|"GMultiGridQ"Default: "MultiGridQ"

HTML{ MultiGridQClass = "GMultiGridQ"; };

MultiQClass wählt alternative Renderklassen für die MultiQ aus. Aktuell ist die heutzutage etwasnostalgische Standardvariante, die grafische MultiQ oder der Verpackungskonfigurator wählbar.Unbekannte Angaben führen zum Defaultverhalten.

Optionen: MultiQ|GMultiQ|PackagingQDefault: MultiQ

HTML{ MultiQClass = "PackagingQ"; };

NumQClass wählt alternative Renderklassen für die NumQ aus. Aktuell sind die heutzutage etwasnostalgische Standardvariante, die grafische NumQ oder der Schieberegler wählbar. UnbekannteAngaben führen zum Defaultverhalten.

Optionen: NumQ|GNumQ|SliderQDefault: NumQ

HTML{ NumQClass = "GNumQ"; };

NumQInputType legt fest, ob das Eingabefeld der NumQ vom Typ "text" oder vom HTML5 Typ"number" sein soll. Letzteres führt inbesondere innerhalb der Android App dazu, dass sich beinummerischen Eingaben automatisch die Zahlentastatur öffnet. Zwischen diversen Browserherstel-lern herrscht beim neuen HTML5 Typ allerdings noch Uneinigkeit über die weitere Verarbeitung.Problematisch ist hierbei, dass teilweise bereits im Browser Validierungen und gut gemeinteKorrekturen der Eingaben vorgenommen werden, bevor GESS Q. den letztendlichen Wert über-mittelt bekommt. Tausender- und Dezimaltrennzeichen hängen plötzlich von Einstellungen desverwendeten Browsers ab und eingegebene Werte des Befragten werden verbogen. An dieserStelle ist dringend Vorsicht geboten.

Optionen: text|numberDefault: text

GESS Q. (Stand: März 2018) 53

Page 66: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 5. Intervieweinstellungen

HTML{ NumQInputType = "number"; };

PBarWidth Breite des im Template der Umfrage verwendeten Fortschrittsbalkens in Pixel. DiesenWert erhält GESS Q. nicht automatisch aus dem Template. Um die korrekte Schrittweite zuberechnen, muss die maximale Breite an dieser Stelle abgeglichen werden. Weitere Informationenzum Fortschrittsbalken finden sich in Abschnitt 14.1.5.

Optionen: NUMBERDefault: 200

HTML{ PBarWidth = 250; };

setProperty fügt dem Skript eine Property mit Namen und Wert hinzu, die sich danach mitderselben Anweisung auch wieder ändern lässt. Solche Properties lassen sich nicht direkt abfragen,werden aber von einigen Fragetypen (z. B. Schieberegler oder Verpackungskonfigurator) alsEinstellungen verwendet.HTML{ setProperty( "minNumAnswers" "3" ); };

ShowQuestionName Wenn aktiviert, wird vor Fragetiteln der (Skript-)Name der jeweiligen Frageeingeblendet. Dies ist besonders beim Testen oder bei Tastatureingaben hilfreich.

Optionen: yes|noDefault: no

#ifdef testmodeHTML{ ShowQuestionName = yes; };

#endif

ShowIndividualErrors Wenn aktiviert, sorgt dieser Parameter dafür, dass ErrorPreText undErrorPostText in Fehlerfällen ausgegeben werden.

Optionen: yes|noDefault: no

HTML{ ShowIndividualErrors = yes; };

ShowLabelValues Wenn aktiviert, werden die Labelcodes zu den Antwortmöglichkeiten mit ausge-geben.

Optionen: yes|noDefault: no

HTML{ ShowLabelValues = yes; };

GESS Q. (Stand: März 2018) 54

Page 67: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 5. Intervieweinstellungen

SingleGridQClass wählt alternative Renderklassen für die SingleGridQ aus. Aktuell ist die heut-zutage etwas nostalgische Standardvariante oder die grafische SingleGridQ wählbar. UnbekannteAngaben führen zum Defaultverhalten.

Optionen: SingleGridQ|GSingleGridQDefault: SingleGridQ

HTML{ SingleGridQClass = "GSingleGridQ"; };

SingleQAutoSubmit Wenn aktiviert, springen SingleQs automatisch zur nächsten Frage, sobaldSie beantwortet wurden.

Optionen: yes|noDefault: no

HTML{ SingleQAutoSubmit = yes; };

SingleQClass wählt alternative Renderklassen für die SingleQ aus. Aktuell ist die heutzutageetwas nostalgische Standardvariante oder die grafische SingleQ wählbar. Unbekannte Angabenführen zum Defaultverhalten.

Optionen: SingleQ|GSingleQDefault: SingleQ

HTML{ SingleQClass = "GSingleQ"; };

SingleQFormat wählt alternative Layouts für SingleQ und MultiQ. Bei standard sind die Labelsuntereinander angeordnet und links neben Ihnen die Buttons zum Anklicken. table kipptdie Ansicht, so dass die Labels nebeneinander und die Buttons oben drüber platziert sind.Die Einstellung select bezieht sich nur auf die SingleQ, die in diesem Fall eine aufklappbareAuswahlliste bereitstellt, wobei das erste Label der Label-Liste vorselektiert ist.

Optionen: standard|table|selectDefault: standard

HTML{ SingleQFormat = select; };

SingleQTableLabelsFirst Im Darstellungsformat table der SingleQs und MultiQs entscheidetdieser Parameter darüber, ob die Antwortmöglichkeiten über oder unter den Kästchen zumAnkreuzen stehen.

Optionen: yes|noDefault: yes

GESS Q. (Stand: März 2018) 55

Page 68: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 5. Intervieweinstellungen

HTML{ SingleQTableLabelsFirst = no; };

WritePostText legt fest, ob das Skriptattribut htmlposttext für Fragen auch tatsächlich imFragebogen ausgegeben werden soll.

Optionen: yes|noDefault: yes

HTML{ WritePostText = no; };

WritePreText legt fest, ob das Skriptattribut htmlpretext für Fragen auch tatsächlich im Frage-bogen ausgegeben werden soll.

Optionen: yes|noDefault: yes

HTML{ WritePreText = no; };

WriteQText legt fest, ob das Skriptattribut text für Fragen auch tatsächlich im Fragebogenausgegeben werden soll.

Optionen: yes|noDefault: yes

HTML{ WriteQText = no; };

WriteTitle legt fest, ob das Skriptattribut title für Fragen auch tatsächlich im Fragebogenausgegeben werden soll.

Optionen: yes|noDefault: yes

HTML{ WriteTitle = no; };

GESS Q. (Stand: März 2018) 56

Page 69: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 6. Textersatz mit @insert

6 Textersatz mit @insert

Oft ist es notwendig, dass der Text von Fragen oder Labels die Antworten von vorhergehendenFragen 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 isthierbei auch die Funktion der Group (Abschnitt 8.2). Um Textersatz überhaupt nutzen zukönnen, muss der Skriptparameter enableTextReplace auf yes gesetzt werden, siehe hierzu auchAbschnitt 5.2.

Der eigentliche Textersatz findet mit dem Befehl @insert statt.

@insert Wenn der Textersatz mit enableTextReplace=yes; eingeschaltet ist, kann der Inhalteiner Variablen VAR 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 GESS 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 Labeltexteinblenden, listen N-aus-M Variablen ihre enthaltenen Werte auf. Um auch Mehrfachnennungenansprechend 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, durchwelches Zeichen der Labeltext eingeleitet (BEF = before) sowie durch welches Zeichen der Labeltextabgeschlossen (AFT = after) wird. Als letztes wird angegeben, durch welches Zeichen die Labeltextevoneinander 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.:

GESS Q. (Stand: März 2018) 57

Page 70: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 6. Textersatz mit @insert

// [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 eingesetztwerden. In Kombination mit Group lässt sich, abhängig von vorherigen Informationen, unter-schiedlicher Content darstellen. Das folgende Beispiel verdeutlicht, wie ein Bild abhängig voneiner 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 GESS Q. Fließkommazahlen mit Nachkommastelle. UmZahlen formatiert anzuzeigen, gibt es DecimalFormat, das eine neue Variable NAME anlegt und dieVariable VAR im alternativen Format FORMAT 1 speichert.DecimalFormat NAME = (VAR, FORMAT);

// min. 1 Vorkommastelle und fix 2 NachkommastellenDecimalFormat meinDF = (euro, "0.00");

1http://docs.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html

GESS Q. (Stand: März 2018) 58

Page 71: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 7. Screens

7 Screens

7.1 Allgemeines

Fragen können auch zusammen mit anderen Fragen in sogenannten Screens gleichzeitig auf einemBildschirm dargestellt werden. Ein screen hat einen Namen und Inhalte. Die GESS Q. Syntaxder Notation lautet:

screen NAME = INHALT;

Der Name ist frei wählbar, darf aber nicht mit bereits vergebenen Namen anderer Elemen-te (Screens, Blöcke) kollidieren. Der Inhalt besteht aus Fragen, die Spalten- und Zeilenweiseangeordnet werden können. Beispielsweise gäbe es drei Fragen q1, q2 und q3.

Um diese untereinander anzuordnen, schreibt man:screen myScreen = column(q1 q2 q3);

Um die Fragen nebeneinander anzuordnen:screen myScreen = row(q1 q2 q3);

Eine column bzw. eine row kann aber nicht nur Fragen enthalten, sondern wiederum mit columnund row verschachtelt werden.

Beispiel für einen Screen mit etwas komplexeren Verschachtelungen:Screen image =

column(row(kenne_alfa image_alfa)row(kenne_bmw image_bmw)row(kenne_honda image_honda)row(kenne_maserati image_maserati)

);text = "Bitte geben Sie zu den Autos auf den Fotos an, ob Sie sie kennen.";

Als Inhalt eines Screens kann statt einer Aufzählung einzelner Fragen auch eine Bereichsangabemit A to B erfolgen. Dabei werden alle Fragen aus dem Skript von einschließlich Frage A derReihe nach bis einschließlich Frage B in den Screen eingefügt. Beispiel:SingleQ f1;SingleQ f2;SingleQ f3;SingleQ f4;SingleQ f5;

screen myScreen = column(f2 to f5);// screen myScreen = column(f2 f3 f4 f5); // gleichbedeutend

GESS Q. (Stand: März 2018) 59

Page 72: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 7. Screens

Intern baut GESS Q. eine Screen-Anweisung zu einer HTML-Tabelle zusammen. Der folgendeCode:TextQ f1;text="Screens baut GESS Q. zu einer Tabelle zusammen";title="links oben";TextQ f2;title="rechts oben";TextQ f3;title="links unten";TextQ f4;title="rechts unten";

screen scr_f14 = column( row( f1 f2 ) row( f3 f4 ) );

ergibt eine zweispaltige Tabelle mit zwei Zeilen:

Abb. 7.1: Ein Screen aus vier Fragen in zwei Spalten und zwei Zeilen

Zum einen zieht sich das Muster der Tabelle durch bis zu den CSS-Elementen, aus denen derScreen besteht: die erste Zeile ist ansprechbar als qscreenrow-1, die zweite als qscreenrow-2. DieZellen nummeriert GESS Q. auf der CSS-Ebene schlicht durch als qscreencell-Zeilennummer-Zellennummer, so dass Frage 1 links oben als qscreencell-1-1 und Frage 4 rechts unten alsqscreencell-2-2 selektiert werden kann.

Zum anderen baut GESS Q. in jedem Fall eine rechteckige Tabelle. Der leicht veränderte Codeergibt eine Tabelle mit drei Zellen in der ersten Zeile und einer Zelle in der zweiten Zeile.TextQ f1;text="Screens baut GESS Q. zu einer rechteckigen Tabelle zusammen";title="links oben";TextQ f2;title="mitte oben";TextQ f3;title="rechts oben";TextQ f4;title="links unten";

screen scr_f14 = column( row( f1 f2 f3 ) row( f4 ) );

Da Frage 4 im Beispiel allein auf einer Zeile steht und es sich um die letzte Zelle handelt, fülltGESS Q. die Tabelle intern mit dem HTML-Parameter colspan auf (hier: colspan=3), um Frage4 über drei Spalten zu ziehen. Damit ist die Tabelle wieder rechteckig.

Der colspan- bzw. rowspan Parameter kann in der Screen-Anweisung in eckigen Klammernvorgegeben werden. GESS Q. baut aus dieser Screen-Anweisung

GESS Q. (Stand: März 2018) 60

Page 73: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 7. Screens

screen scr_f15 = column( row( f1 f2 f3 ) row( f4[2] f5[1]) );

eine zweizeilige Tabelle mit drei Zellen in der ersten und zwei Zellen in der zweiten Zeile. Dabeiliegt f4 unter f1 und f2, während f5 unter f3 liegt. In der row-Anweisung behandelt GESS Q. denWert in eckigen Klammern als colspan (eine Zelle umfasst in einer Zeile mehrere Spalten).

Innerhalb einer column-Anweisungscreen scr_f15 = row( column( f1 f2 f3 ) column( f4[2] f5[1]) );

verwendet GESS Q. den Wert in eckigen Klammern als rowspan-Anweisung (eine Zelle umfasstin einer Spalte mehrere Zeilen). Wie die Grafik zeigt, dürfen screen-Anweisungen auch komplexausfallen:

Abb. 7.2: Ein Screen aus elf verschachtelten Bestandteilen

Wenn bei einer Frage in einem Screen eine Filterbedingung nicht erfüllt ist, wird sie indem Screen nicht angezeigt. Sind alle Fragen eines Screens weggefiltert, wird der Screen imInterviewablauf ausgelassen.

7.2 HTML-spezifische Screen-Funktionen

Um ein hohes Maß an Flexibilität zu wahren, stellt GESS Q. Screen-bezogene Funktionen bereit,mit denen man den HTML-Code einzelner Screens selbst programmieren kann.

7.2.1 HTML-Code einbinden

Es ist möglich, eigene (HTML-) Inhalte in die erzeugten Seiten einzubauen. Dafür stehen vieroptionale Platzhalter, @src1 bis @src4, in der Datei template.html zur Verfügung (zum Thema

GESS Q. (Stand: März 2018) 61

Page 74: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 7. Screens

Template s. Abschnitt 14.1). Die Platzhalter können durch eigenen HTML-Inhalt ersetzt werden,der sich in jeweils einer eigenen Textdatei (Dateityp ist egal) im Studienverzeichnis befindet.Im Skript kann bei der Definition eines Screens nun wie folgt auf eine dieser Dateien verwiesenwerden:Screen myScreen = column(f2 to f5);src1 = zusatzinhalt.html;src2 = text1.txt;

Mit dieser Funktion ist es u.a. auch möglich, die Fragen vollständig selbst zu gestalten. Hierzumuss zuerst die automatische Generierung der Fragedarstellung mittels input unterdrückt werden,siehe Abschnitt 5.3. GESS Q. legt intern dann alle notwendigen Variablen und Logiken für dieFrage an, in der HTML-Darstellung bleibt sie allerdings leer.

Wenn die Darstellung der Frage dann deaktiviert ist, kann man sie in einen Screen einbauen undmit der eben erwähnten Funktion eigenen Code, der die Frage enthält, einbinden. Dabei ist zubeachten, dass die Steuerelemente (Radiobuttons, Checkboxes oder was auch immer) die gleichenNamen haben wie die, welche die Software bei Darstellung der Frage generiert hätte, damit dieSoftware an die Daten kommt.

7.2.2 HTML-Label

Wenn wir statischen HTML-Code einbinden, können die Inhalte nicht dynamisch sein (ran-domisiert, gefiltert etc.). Hier schaffen HTML-Labels Abhilfe. Einem Screen können Labelszugewiesen werden, deren Labeltexte HTML-Code enthalten, der dann direkt in den Screeneingebaut wird. Vorteil gegenüber statischem Code ist, dass die HTML-Labels, genau wie dieLabels von Fragen auch, gefiltert und randomisiert werden können. Sie stellen also die Verbindungaus »handgemachtem« HTML-Code und dynamisch erzeugten Inhalten dar.

Zusätzlich gibt es noch zwei Textelemente, htmlPreLabels und htmlPostLabels, die (wenn vor-handen) direkt über oder unter den Text, der sich aus den HTML-Labels ergibt, in den Screeneingebaut wird. Hiermit kann z. B. der Inhalt der Labels in einer Tabelle table angezeigtwerden.

Wo HTML Anführungszeichen erwartet, können ersatzweise einfache Anführungszeichen verwen-det werden oder es muss den Anführungszeichen ein »\« (backslash, Rückstrich) vorangestelltwerden, damit GESS Q. die Anführungszeichen nicht beachtet.

Ein etwas ausführlicheres Beispiel:HTML{ input = no; };NumQ f1;labels=1 "Anzahl Farben:" format onf_1_x;SingleQ f1_jn;labels=1 "Ja, wieviele:"text "oder"2 "Nein";

GESS Q. (Stand: März 2018) 62

Page 75: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 7. Screens

HTML{ input = yes; };screen scr_f1 = column( f1 f1_jn );text="Sehen Sie Farben?";htmlprelabels="<table class='qtable'>";htmllabels=1 "<tr>

<td name='id_f1_jn1' class='checkable f1_jn qbuttoncell'><img id='id_f1_jn_bi1'></td>

<td style='height:30px; padding:0;' name='id_f1_jn1' class='checkable qlabeltextcell'>Ja - wieviele? <input type='number' min='0' name='f1_1n' class='numinput'></td></tr>"text "<tr>

<td colspan='2' class='qtextlabelcell'>oder</td></tr>"2 "<tr>

<td name='id_f1_jn2' class='checkable f1_jn qbuttoncell'><img id='id_f1_jn_bi2'></td>

<td name='id_f1_jn2' class='checkable qlabeltextcell'>Nein</td></tr>";htmlpostlabels="</table>";

Auf der generierten Seite erscheint der Text, den htmllabels im HTML-Code festlegt. Die Fragelautet also »Ja - wieviele?« und nicht wie es f1 vorgibt (»Anzahl Farben:«) oder wie es f1_jnvorsieht (»Ja, wieviele:«). type bestimmt für die NumQ zudem ein numerisches Eingabefeld undmin sieht einen Mindestwert von 0 vor, so dass nur Zahlen und keine negativen Werte möglichsind.

Abb. 7.3: Ein unspektakuläres Beispiel für htmllabels

Wenn damit fragespezifischer Inhalt erzeugt wird, ist ebenso wie bei statischem, eingebundenenCode drauf zu achten, dass die Formularelemente Namen haben, die den automatisch erzeugtenentsprechen, damit die Software die Daten auslesen kann.

Bitte beachten: Damit der über htmllabels vorgegebene Code von GESS Q. auch in dieSeite eingebaut wird, muss das Template die Platzhalter-Anweisung @htmllabels vorsehen (s.Abschnitt 14.1.3).

GESS Q. (Stand: März 2018) 63

Page 76: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 7. Screens

7.3 Dynamische Screen-Inhalte / Javascript

Auf konventionelle Art im Skript definierte Screens sind statisch. Es kann jedoch wünschenswertsein, dass die Screens auf Nutzereingaben reagieren. Ein typisches Beispiel: Mit einer geschlossenenFrage wird abgefragt, wie gut den Befragten ein Produkt gefallen hat. Wenn diese angeben, dasses ihnen nicht gefallen hat, soll - erst dann - ein Textfeld erscheinen, also eine offene Frage, dienachhakt, warum den Befragten das Produkt nicht gefällt. Mit den bisher vorgestellten Mittelnlässt sich das nicht umsetzen.

Eine Möglichkeit wäre, den gesamten Screen »per Hand« mit HTML-Code zu bauen, aber dasbedeutete erheblichen Aufwand. Daher steht ein Befehl zur Verfügung, mit dem man an dieStelle einer Frage, an der das Ereignis des Klicks verarbeitet wird (also z. B. den Klick auf einenRadiobutton einer Single-Frage), automatisch eine Javascript-Event-Handler-Funktion einbauenkann. Der Befehl lautet:jsHandler="<Javascript-Funktion>";

und muss der Frage direkt hinzugefügt werden.

Der Code der Javascript-Funktion selbst muss im Screen vorhanden sein; Er kann über den obenvorgestellten src-Befehl bei der Screen-Definition einen Platzhalter ersetzen, oder er kann direktin die Datei template.html geschrieben werden.

Die Javascript-Funktion sollte so aufgebaut sein, dass sie den Screen validiert und entsprechenddie richtigen Zustände herstellt, da sie bei jedem Klick auf einen Button einer Frage aufgerufenwird.

Für ein ausführlicheres Beispiel für die Verwendung des jsHandler-Befehls siehe das entsprechendeTutorial.

GESS Q. (Stand: März 2018) 64

Page 77: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 8. Besondere Variablentypen

8 Besondere Variablentypen

8.1 Compute

Compute-Variablen werden mit einem Namen NAME angelegt und enthalten entweder direkt einenZahlenwert oder ein Berechnungsschema BERECHNUNG mit anderen Variablen, dessen Ergebnisjeweils im Moment des Zugriffs ermittelt wird. Sie können wie folgt angelegt, in vielerlei Hinsichtverwendet und auf Wunsch auch optional mit dem Attribut export in den Datenexport einbezogenwerden.compute VARNAME = BERECHNUNG;[export;]

Bei BERECHNUNG handelt es sich im einfachsten Fall um einen einfachen Zahlenwert, der mit demActionBefehl set(VARNAME = VALUE); beliebig verändert werden kann. Im folgenden Beispiel sollnur beim ersten Betreten einer Frage eine Initialisierungslogik ausgeführt werden:Compute initNotwendig = 1;

TextQ intro;text = "Los geht's!";InitActionBlock="

if(initNotwendig eq 1){set(initNotwendig = 0);// do some init stuff

};";

Compute-Variablen können aber auch verwendet werden, etwa um die Werte der vier numerischenEingabefelder einer NumQ mit dem Namen »punkte« zu addieren. Das folgende Beispiel ist zwarüberflüssig, da man die Summe auch direkt unter dem Namen der NumQ »punkte« ansprechenkann, verdeutlicht aber das Prinzip.compute summe = punkte.1 + punkte.2 + punkte.3 + punkte.4;

Die Variable »summe« enthält beim Zugriff zu jedem Zeitpunkt das jeweils aktuelle Ergebnis derBerechnung.

Als Rechenoperatoren sind +, -, *, /, % (modulo) und Klammerausdrucke moglich.Korrekte Punkt vor Strich Rechnung wird eingehalten.

8.2 Group

Eine Group wird mit einem Namen NAME, sowie einer leicht modifizierten Labelliste angelegt undstellt einen Bezug zwischen LABELCODES, TEXTEN und BEDINGUNGEN her. Die Bedingungen definierenzu jeder Zeit eines Interviews, welche Labelcodes in der Group gerade vorhanden sind. DiesesVerhalten kann an diversen Stellen eingesetzt werden, z. B. für die konditionale Übernahmevon Texten in den Fragetext oder für Restriktionen, die sich nicht einfach per Labelwert-Bezug

GESS Q. (Stand: März 2018) 65

Page 78: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 8. Besondere Variablentypen

zu anderen Fragen herstellen lassen. Das optionale Attribut export steuert, ob die Group beimDatenexport berücksichtigt werden soll.Group NAME;labels=LABELCODE "TEXT" (BEDINGUNG)LABELCODE "TEXT" (BEDINGUNG)...;[export;]

Ein Beispiel: Es werden Geschlecht und Alter des Befragten abgefragt, und je nachdem, wasdieser geantwortet hat, soll ein bestimmter Text (der sich nicht direkt den Fragen nach Alterund Geschlecht entnehmen lässt) in den Text der TextQ eingebaut werden. Die mit @inserteingeblendete Group hilft bei der Realisierung.SingleQ geschlecht;labels=1 "Männlich"2 "Weiblich";

SingleQ alter;labels=1 "18-39 Jahre"2 "40-59 Jahre";

Group anrede;labels=1 "Mein Herr, Sie sind 18-39 Jahre alt." (geschlecht eq 1 and alter eq 1)2 "Mein Herr, Sie sind 40-59 Jahre alt." (geschlecht eq 1 and alter eq 2)3 "Meine Dame, Sie sind 18-39 Jahre alt." (geschlecht eq 2 and alter eq 1)4 "Meine Dame, Sie sind 40-59 Jahre alt." (geschlecht eq 2 and alter eq 2);

TextQ meldung;text="@insert(anrede)";

Das Element der Group, dessen Bedingung erfüllt ist, wird als Text in den Fragetext übernommen.

Im Fall des Textersatz’ werden alle zutreffenden Labels als Komma-separierte Liste ausgegeben.Das Trennzeichen und der letzte Trenner können frei festgelegt werden:

insert="SEP","CON";

Group myGroup;labels=1 "1" (1 in abc)2 "2" (2 in abc)3 "3" (3 in abc);insert=" | ", " und ";// @insert(myGroup) sähe dann möglicherweise so aus: "1 | 2 und 3"

GESS Q. (Stand: März 2018) 66

Page 79: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 8. Besondere Variablentypen

In diesem Beispiel ist der Sinn der Labelwerte noch nicht zu erkennen. Groups können auch alsVorlage für Restriktionen dienen. Beispielsweise sollen Automodelle nur dann abgefragt werden,wenn die Marke insgesamt bekannt ist. Dies lässt sich zwar auch mit Labelfiltern lösen, aber esist ja auch nur ein Beispiel:MultiQ marken;text="Welche dieser Automarken kennen Sie?";labels=1 "Audi"2 "BMW"3 "Mercedes";

Group restr;labels=1 "Audi" (marken eq 1)2 "Audi" (marken eq 1)3 "Audi" (marken eq 1)4 "BMW" (marken eq 2)5 "BMW" (marken eq 2)6 "BMW" (marken eq 2)7 "Mercedes" (marken eq 3)8 "Mercedes" (marken eq 3)9 "Mercedes" (marken eq 3);

MultiQ modelle;text="Welche dieser Automodelle kennen Sie?";labels=1 "Audi A4"2 "Audi A6"3 "Audi A8"4 "BMW 3er"5 "BMW 5er"6 "BMW 7er"7 "Mercedes C-Klasse"8 "Mercedes E-Klasse"9 "Mercedes S-Klasse";restrict=restr;

Gruppen können neben den Bedingungen, die ihre Werte bestimmen, auch ein else-Label erhalten,welches automatisch aktiv ist, wenn keine andere Bedingung erfüllt ist.Group myGroup;labels=1 "1" (1 in abc)2 "2" (2 in abc)3 "3" (3 in abc)9 "9" else;export;

Obwohl die Group-Daten sich eindeutig von anderen Variablen herleiten lassen, können sie mitexport im Datensatz abgelegt werden. Der Grund dafür ist, dass die Daten einer Group sichauch aus Variablen definieren können, deren Zustand im Nachhinein nicht unbedingt immernachvollziehbar ist, wie z. B. Zufallszahlen, Zeiten oder Quotenstände.

GESS Q. (Stand: März 2018) 67

Page 80: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 8. Besondere Variablentypen

8.3 DictFileVar

Die DictFileVar implementiert einen Dictionary-Mechanismus, der einem Schlüssel einen Wertzuordnet. Beispielsweise ist eine Unterteilung Deutschlands in Regionen (z. B. Nord, Süd, Ostund West) denkbar. Die Befragten sollen ihre Postleitzahl eingeben und werden darüber einerder vier Regionen-Gruppen zugeordnet. Man hantiert dabei mit der langen Liste aller deutschenPostleitzahlen, die in vier Gruppen unterteilt werden soll. Dass ließe sich mit einer Group umsetzen,wäre allerdings umständlich und verbrauchte Software-Ressourcen. Hier ist die DictFileVar dasMittel der Wahl.

Die Syntax ist:

DictFileVar name=("Datei", Schlüsselvariable);

In der Datei stehen zeilenweise untereinander die Schlüssel und daneben die ihnen zugeordnetenWerte. Die Schlüsselvariable enthält den Schlüsselwert, in unserem Beispiel also die Postleitzahl.Im folgenden Beispiel enthält die Datei plz.txt nur drei Zeilen mit zwei Postleitzahlen ausHamburg und einer aus Berlin:10247 320257 122359 1

Die Postleitzahl wird in einer NumQ namens »plz« abgefragt, daher hat die Schlüsselvariable denNamen plz.1. Die DictFileVar sähe also so aus:DictFileVar region=("plz.txt", plz.1);

Wenn Befragte nun als Postleitzahl »10247« eingeben, wird dieser Schlüssel-Wert in der Dateigesucht und die DictFileVar bekommt den ihr zugeordneten Wert 3 (für »Ost«). Die DictFileVarkann nun wiederum für Filter, Quoten usw. verwendet werden.

Sowohl beim Schlüssel als auch beim zugeordneten Wert kann es sich auch um Text handeln(anstelle von Zahlen). Der zugeordnete Wert kann auch direkt für Textersatz verwendet werden.

Zu beachten ist: Um ständige Dateizugriffe zu vermeiden, wird der Inhalt der DictFileVar nureinmal ermittelt, und zwar zum Zeitpunkt des ersten Zugriffs auf die Datei. Voraussetzungfür die Verwendung der DictFileVar ist daher, dass sich die Zuordnungen nicht während derInterviewzeit verändern. Zudem haben auch Änderungen an der Schlüsselvariablen (beispielsweisedurch ein Zurückgehen und Ändern während des Interviews) keinen Einfluss, nachdem der Werteinmal ermittelt wurde.

8.4 DecisionVar

Mit einer DecisionVar ist es möglich, den Faktor, ob eine Bedingung erfüllt ist oder nicht, inBerechnungen mit einzubeziehen.

Syntax:

GESS Q. (Stand: März 2018) 68

Page 81: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 8. Besondere Variablentypen

DecisionVar name = (Bedingung);

Wenn die Bedigung erfüllt ist, hat die DecisionVar den Wert 1 ansonsten 0.

8.5 IntRandom (Zufallszahlen)

Mit IntRandom lassen sich ganzzahlige Zufallszahlen erzeugen. Die Syntax ist:

IntRandom NAME = VON BIS;

Für eine Zufallszahl zwischen 1 und 10 wäre das beispielsweise:IntRandom meineZufallszahl = 1 10;

Zu beachten ist, dass die Zufallszahl einmal bei Interviewstart ermittelt wird und dann währenddes gesamten Interviews konstant bleibt - genau wie alle anderen Zufalls-Elemente wie z. B.randomisierte Blöcke auch.

8.6 Blockzähler

Wenn ein Block von Fragen durchlaufen wird, kann es notwendig sein, zu ermitteln, an welcherPosition in diesem Block sich das Interview gerade befindet. Beispielsweise können Fragen ineinem randomisierten Block stehen, und abhängig davon, ob eine Frage die erste oder eine anderePosition in diesem Block hat, kann der Fragetext anders sein. Hierzu gibt es pro Block je eineVariable, die diese Information liefert. Die Variable wird automatisch generiert und trägt denNamen count_+Blockname. Wenn der Block also »block1« hieße, würde die Blockzähl-Variablecount_block1 heißen. Beim Durchgehen des Blocks enthält die Variable als Wert die Position desBlocks, an dem sich das Interview gerade befindet.

Beispiel:

Gegeben seien zwei Frage, q1 und q2. Diese erscheinen randomisiert im Block »block1«:block block1=(q1 q2); random;

Je nachdem, ob eine Frage als erstes oder zweites kommt, soll der Fragetext anders sein. Beispiel-haft für q1: Der Fragetext wird mittels Textersatz und einer group erzeugt.group qtext_q1;labels=1 "Fragetext q1 Erstvorlage" (count_block1 eq 1)2 "Fragetext q2 Zweitvorlage" (count_block1 eq 2);

SingleQ q1;text="@insert(qtext_q1)";...

GESS Q. (Stand: März 2018) 69

Page 82: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 8. Besondere Variablentypen

8.7 TextElement

TextElement stellt eine einfache Textvariable dar. Sie kann lediglich mit einem Namen angelegtund in ActionBlöcken mittels setText(TEXTVAR, "TEXT"); und appendText(TEXTVAR, "TEXT");neu belegt oder um einen weiteren Text verlängert werden.TextElement meinTextElement;

ActionBlock ab = {setText(meinTextElement, "Das ist ein");appendText(meinTextElement, " Beispiel.");

};

Mit der Anweisung saved kann eine Variable auch über Abbruch und Wiederaufnahme erhaltenbleiben,TextElement te = "ein Text" saved; // angelegt + gespeichert (Abbr/Wiederaufnahme)

8.8 Array

Ein besonderer Variablentyp ist das Array. Ein Array speichert eine Anzahl #WERTE von Fließkom-mazahlen, die sich per Index ansprechen lassen. Es kann von außen betrachtet auch als einzelne,atomare Variable angesprochen werden. Der Wert des Arrays entspricht dann der Summe seinereinzelnen Elemente. Mit dem optionalen Attribut export wird das Array beim Datenexportberücksichtigt.

Array VARNAME[#WERTE];

// Beispiel:Array zehnFelder[10];[export;]

Ein neu angelegtes Array wird entsprechend der Einstellung ArrayInitMode initialisiert, sieheAbschnitt 5.2. Das Array zehnFelder hat demnach 10 Felder mit entsprechenden Werten, diemit eckigen Klammern angesprochen werden können. Der Index beginnt bei 1.zehnFelder[1]...zehnFelder[10]

Arrays können z. B. in for-Schleifen mit Werten belegt werden, etwa um die Werte einer Gruppe(hier auswahl) auf ein Array zu übertragen. Dies ist nur sinnvoll, wenn das Array mit Missingsinitialisiert wurde:compute max = 10;array arr[max];

for( zaehler=1 to max ) {if( zaehler in auswahl ) {

set( arr[zaehler] = zaehler );};

};

GESS Q. (Stand: März 2018) 70

Page 83: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 8. Besondere Variablentypen

Alternativ kann das Array auch mit dem Action-Befehl set gefüllt werden, s. Abschnitt 13.2.

8.9 TextArray

Analog zu Array gibt es auch einen Variablentyp TextArray, der anstelle von mehreren Wertenmehrere Texte enthält. Es gibt zwei Möglichkeiten TextArrays zu initialisieren:// Direkte Initialisierung mit TextenTextArray marken = {"Audi" "BMW" "Mercedes"};

// Indirekte Initialisierung mit den Labels einer FrageMultiQ q_marken;labels=1 "Audi"2 "BMW"3 "Mercedes";TextArray marken = q_marken;

Wie auch bei normalen Arrays lassen sich die einzelnen Texte mit eckigen Klammern ansprechenund der Index beginnt bei 1.

8.10 VarArray

Ein dritter Array-Typ neben Array für Zahlen und TextArray für Texte steht mit VarArray fürVariablen zur Verfügung. Einem VarArray können wir die Variablen direkt über ihre Namenübergeben und dann auf die Werte über den Index zugreifen.

vararray NAME = (VAR1 VAR2 ...);

8.11 RestrictVar

Die RestrictVar kann als Schablone für den restrict Befehl verwendet werden, um Labellistenautomatisch zu filtern. Das folgende Beispiel zeigt die Verwendung mit SingleQs, um der Reihenach die Plätze 1 bis 3 auf die Label zu verteilen.RestrictVar NAME = TEMPLATE;

SingleQ msq1;text="1. Platz";labels=1 "a"2 "b"3 "c"4 "d"5 "e";

GESS Q. (Stand: März 2018) 71

Page 84: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 8. Besondere Variablentypen

RestrictVar rsv = (not(msq1));

SingleQ msq2;text="2. Platz";labels copy msq1;restrict=(not(msq1));// restrict=rsv; // Alternative Schreibweise mit RestrictVar

SingleQ msq3;text="3. Platz";labels copy msq1;restrict=(not(msq1 or msq2));

8.12 Mailbox

Der Befehl Mailbox legt in dem Sinne keine Variable an, er definiert lediglich ein existierendesE-Mail Postfach samt Zugangsdaten, um per Actionbefehl sendMail E-Mails zu verschicken. DieVerwendung von SMTP sowie SSL Verschlüsselung mit Authentifizierung sind erforderlich.

Mailbox NAME = ("HOST", "ADRESSE", "USER", "PASSWORT");

NAME Im Skript verwendeter Name, um die Mailbox zu referenzieren.

HOST Hostname des Providers für Ein- und Ausgangsserver.

ADRESSE Die E-Mail Adresse selbst.

USER Benutzername des E-Mail Kontos (ist häufig identisch mit ADRESSE).

PASSWORT Passwort des E-Mail Kontos.

Mailbox myMailbox = ("mail.host.de", "[email protected]", "[email protected]", "secret!");Compute mailResult = 0;

textq welcome;text="Hallo Welt! -> @insert(mailResult)";assert (mailResult eq 1) "Mail konnte nicht abgeschickt werden.";PreAssertionActionBlock = {

SendMail(myMailbox, mailResult, "[email protected]", "Betreff", "Inhalt");};

Der Skriptcheck versucht die angegebenen Daten zu überprüfen, indem er eine Verbindungzum Postfach herstellt. Ist dies nicht erreichbar oder schlägt die Authentifizierung fehl, werdenentsprechende Fehlermeldungen ausgegeben.

GESS Q. (Stand: März 2018) 72

Page 85: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 9. Interne Variablen

9 Interne Variablen

9.1 Datum und Uhrzeit

Es stehen mehrere Variablen zur Verfügung, die es ermöglichen, mit Uhrzeiten (HHMMSS),Daten (YYYYMMDD) und sonstigen Zeiten zu arbeiten:

_currentdate aktuelles Datum

_currentmillis aktuelle Serverzeit in Millisekunden seit Start der Unix-Zeit am 1. Januar 197000:00 Uhr UTC (the Epoch)

_currenttime aktuelle Uhrzeit

_duration Dauer des Interviews in ms (inkl. Unterbrechungszeiten)

_finishdate Datum des Interviewendes

_finishtime Uhrzeit des Interviewendes

_languages enhält eine mit Leerzeichen getrennte Liste aller geladenen Sprachdateien in Einlese-reihenfolge.

_startdate Datum des Interviewstarts

_startdayofweek Wochentag des Interviewstarts (1=So - 7=Sa)

_starttime Uhrzeit des Interviewstarts

9.2 Weitere Variablen

Neben Zeiten gibt noch eine Reihe weiterer interner Variablen.

_revision aktuelle Revision von GESS Q.

_surveyname Name der Studie

template1 TextElement zur Ausgabe im Template mittels @tt1. Es bleibt bei Abbruch/Wieder-aufnahme erhalten.template2 ... @tt2...template8 ... @tt8

_breakcount Anzahl der Unterbrechungen des Interviews

_currentScreen Variablenname des aktuell in Bearbeitung befindlichen Screens.

GESS Q. (Stand: März 2018) 73

Page 86: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 9. Interne Variablen

_idmode [ t | s | m ], je nachdem ob das Interview im Testmode, im Singlemode (eine ID proBefragten) oder im Multimode (eine ID für mehrere Befragte) geführt wird.

_missing zum Prüfen, ob eine numerische Variable leer ist.

_randomid zufällige Zeichenkette, mit der das Interview eindeutig gekennzeichnet wird.

9.3 Laufzeitumgebung

Die Variablen geben Aufschluss darüber, in welcher Umgebung, also Betriebssystem und Brow-ser, das Interview gelaufen ist. Das kann bei der Fehlersuche hilfreich sein, wenn es z. B. zuabweichenden Darstellungen in verschiedenen Browsern kommt.

_useragent speichert den User-Agent String des Browsers, mit der sich das Programm gegenübereinem Server ausweist, z. B."Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0"

_browser numerischer Code, mit dem der Browser identifiziert wird. Gewonnen wird die Infor-mation aus dem User-Agent String des Browsers. Da dieser durch Anwender manipulierbar ist,kann die Korrektheit der Information nicht garantiert werden.

_os numerischer Code, mit dem das Betriebssytem identifiziert wird. Gewonnen wird die Infor-mation aus dem User-Agent String des Browsers. Da dieser durch Anwender manipulierbar ist,kann die Korrektheit der Information nicht garantiert werden.

9.4 Externe URL-Parameter

Bei einer Onlinebefragung können Parameter mit der URL-Zeile übergeben werden. Spezielldafür hält GESS Q. eine Reihe von sogenannten externen Variablen bereit. Sie tragen dieNamen ext1 bis ext20 und können sowohl Zahlen als auch Text enthalten. Um der Variablen ext1den Wert 9 und der Variablen ext2 den Wert 5 mit Beginn des Interviews zuzuweisen, würde dieURL-Zeile bzw. der Einladungslink je nach Serverkonfiguration z.B. so aussehen:http://gess.q-dot.de/q1/SurveyServlet?action=startsurvey&[...]&ext1=9&ext2=5

Bei wiederholtem Aufrufen des Startlinks werden zuvor übergebene Werte überschrieben. Dieexternen Parameter werden auch berücksichtigt, wenn das Interview oder die Studie bereitsgeschlossen ist. So lassen sich die übergebenen Informationen im StartActionBlock auswertenund anzuzeigende Fehlerseiten beeinflussen.

Da Teilnehmer die URL theoretisch nach Belieben manipulieren können, empfiehlt es sich dieexternen Parameter im Skript zu überprüfen. Für die Übergabe zuvor bekannter Preloads jeTeilnehmer sollte in jedem Fall Gebrauch von den speziell dafür vorhandenen Funktionalitätengemacht werden, siehe Kapitel 22.1.

GESS Q. (Stand: März 2018) 74

Page 87: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 9. Interne Variablen

9.5 Exit-Code (_finished)

Die Variable _finished enthält nach Ende des Interviews den Statuscode, mit dem das Interviewbeendet wurde. Bei vollständig abgeschlossenen Interviews wäre das in der Voreinstellung derWert 1, aber der Code kann, etwa bei Abbrüchen nach Plausibilitätsprüfungen mit exit, auchanders belegt werden.

Es kann für statistische Auswertungen wünschenswert sein, _finished explizit einen Wert zuzu-weisen oder um abhängig vom Wert URL-Weiterleitungen am Interview-Ende einzurichten.

Die Variable kann auch manuell mit dem Action-Befehl set belegt werden, etwa in einemcmplActionBlock.

9.6 Zugangscode und Fallnummer (_respid und _caseid)

Jeder Befragte hat sowohl eine ID bzw. einen Zugangscode als auch eine Fallnummer. DieFallnummer ist ein automatisch generierter, fortlaufender, numerischen Zähler und damit perso-nenspezifisch und eindeutig. Der Zugangscode darf maximal 64 Zeichen (a-z A-Z 0-9) enthaltenund muss nicht zwangsläufig eindeutig sein (z. B. bei Testinterviews oder unspezifischen On-Site-Befragungen über Multilinks). Der Zugangscode wird in der Variablen _respid gespeichert, dieFallnummer in der Variablen _caseid.

Mit der _caseid führt GESS Q. Buch über die verschiedenen Fälle und zählt für jedes begonneneInterview den Zähler hoch. Ausgangspunkt ist der Eintrag in der Datei lfdcount.lst. GESS Q.liest den Stand aus der Datei ein und schreibt ihn aktualisiert zurück. Um die Eindeutigkeit derFallnummern zu gewährleisten, wird sie bei Studienresets und Uploads nicht berücksichtigt. Die_caseid ist im Skript zusätzlich in verschlüsselter Form als _encryptedcaseid nutzbar. Hierfürgibt es aktuell zwar keine interne, praktischen Anwendungen, aber theoretisch sind so auchöffentliche Zugänge über die (verschlüsselte) Fallnummer möglich.

9.7 Abbruchcode (_cancel)

Es ist möglich, einen Abbruch-Button zum Abbrechen des Interviews einzubauen. Zusätzlichzu diesem Button kann ein Auswahlmenü (ListBox) angezeigt werden, aus dem ein Grund fürden Abbruch (oder eine auf den Abbruch folgende Aktion usw.) ausgewählt werden kann. DerAbbruch-Button wird aktiviert mit:HTML { cancelButton=yes };

Das Auswahlmenü wird automatisch angezeigt, sofern es definiert wurde. Die Menüeinträge lassensich in dieser Form konfigurieren:

HTML { cancelMenu = ("Eintrag" "Eintrag" "Eintrag" ...); };

Zusätzlich gibt es einen default-Eintrag, der »keine Auswahl« repräsentiert; dieser wird angegebenmit:

GESS Q. (Stand: März 2018) 75

Page 88: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 9. Interne Variablen

HTML { cancelMenuDefault = "--- bitte auswählen---"; };

Wenn beim Klick auf den Abbruch-Button keine Menüauswahl erfolgt ist, wird eine Fehlermeldungangezeigt; diese wird definiert mit:HTML { cancelMenuErrorMsg = "Bitte Auswahl treffen!"; };

Wenn ein Interview durch Klick auf den Abbruch-Button beendet wird, erhält die Variable_cancel den Index des ausgewählten Menüpunktes als Wert, beginnend mit 1.

9.8 Wiederaufnahme nach Abbruch (_resume)

Im Regelfall gilt ein Interview, das mit expliziten Aktionen (vollständig durchgeführt, assert...exit, Klick auf Abbruch-Button) abgeschlossen wird, als beendet. Dagegen gilt ein Interview,das durch einen Timeout beendet wird (wegen zu langer Inaktivität), als abgebrochen. ImUnterschied zu einem beendeten Interview kann ein abgebrochenes fortgesetzt werden. Es kannauch dann fortgesetzt werden, wenn die Studie bereits deaktiviert wurde, also keine neuenInterviews mehr zugelassen werden.

Unter bestimmten Bedingungen wäre es wünschenswert, auch ein abgeschlossenes Interviewfortzusetzen. z. B. wenn ein Interview im Rahmen einer telefonischen Umfrage über den Abbruch-Button nur unterbrochen und ein Termin zur Fortsetzung vereinbart wurde. Über die interneVariable _resume lässt sich steuern, welche Art von Datensatz (mit der Möglichkeit zur Wiederauf-nahme oder ohne) angelegt wird. Hat _resume den Wert 0, wird das Interview als abgeschlossenbetrachtet und kann nicht fortgesetzt werden. Hat _resume den Wert 1, wird das Interview alsabgebrochen betrachtet und kann fortgesetzt werden.

Diese Variable wird von den entsprechenden Aktionen automatisch mit dem richtigen Wert belegt,kann jedoch auch manuell gesetzt werden.

9.9 Export interner Variablen

GESS Q. übernimmt automatisch eine Reihe interner Variablen bis hin zur Tabellierung undschreibt sie auch in die SPSS-Datei. Für den Export ergänzt GESS Q. den Variablennamen umein vorangestelltes sys:

• sys_browser

• sys_caseid

• sys_currentScreen

• sys_duration

• sys_finishdate

• sys_finished

GESS Q. (Stand: März 2018) 76

Page 89: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 9. Interne Variablen

• sys_finishtime

• sys_os

• sys_respid

• sys_startdate

• sys_starttime

GESS Q. (Stand: März 2018) 77

Page 90: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 10. Filter- und Plausibilitätsbedingungen

10 Filter- und Plausibilitätsbedingungen

10.1 Allgemeines

Filter- und Plausibilitätsbedingungen sind zentrale Mechanismen in GESS Q., um den Befra-gungsablauf zu steuern und Abbruchkriterien zu formulieren. Filter regeln, ob den Teilnehmerneinzelne Label, Fragen, Screens oder auch ganze Blöcke vorgelegt werden sollen oder nicht.Plausibilitätsbedingungen (asserts) können an einzelne Screens oder Fragen gebunden werden,um zu überprüfen, ob bestimmte Bedingungen an dieser Stelle erfüllt sind. Davon abhängig kanndem Befragten der jeweilige Screen erneut vorgelegt oder das Interview beendet werden. Dasowohl Filter- als auch Plausibilitätsbedingungen auf der Grundlage von Bedingungen arbeiten,geht es zunächst darum, wie sich die Bedingungen formulieren lassen.

10.2 Bedingungen

Logische Bedingungen in GESS Q. richten sich nach Boolescher Algebra. Ihre Auswertung ergibtam Ende immer wahr oder falsch. Für die beiden Wahrheitswerte stehen die Ausdrücke trueund false zur Verfügung. Die einfachsten Bedingungen sind demnach:(true) // trifft immer zu

(false) // trifft nie zu

In der Booleschen Algebra lassen sich zwei (Teil-)Bedingungen mit dem logischen UND (and)und dem logischen ODER (or) verknüpfen. Damit die gesamte Bedingung am Ende wahr bzw.erfüllt ist, müssen bei UND beide Teilbedingungen wahr sein, während bei ODER wenigstenseine der Teilbedingungen erfüllt sein muss. Zusätzlich gibt es noch ENTWEDER ODER (xor),bei dem genau eine der Teilbedingungen erfüllt sein muss.

Im Gegensatz zu and, or und xor ist auch eine Negation (not(X)) möglich, die den Wahrheitswertvon X umkehrt. In der Regel wird eine Verkettung von mehreren dieser Operatoren von linksnach rechts abgearbeitet. Durch Klammersetzung kann der Vorrang, wie in der Mathematik,aber auch anders gesetzt werden. Folgende Matrizen fassen zusammen, wie sich die Operatorenverhalten:AND | T | F OR | T | F XOR | T | F NOT | T | F---- --- --- ---- --- --- ---- --- --- ---- --- ---T | T | F T | T | T T | F | T | F | T---- --- --- ---- --- --- ---- --- ---F | F | F F | T | F F | T | F

Einzelne Bedingungen ergeben sich hauptsächlich durch Vergleiche von Variablenwerten mitZahlen oder anderen Variablenwerten. Dafür existieren folgende Operatoren:

• eq gleich (equal)

• ne ungleich (not equal)

GESS Q. (Stand: März 2018) 78

Page 91: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 10. Filter- und Plausibilitätsbedingungen

• gt größer als (greater than)

• ge größer gleich (greater or equal)

• lt kleiner als (less than)

• le kleiner gleich (less or equal)

• in prüft, ob ein Wert in einer Wertemenge (Array) enthalten ist

Beispiele:(1 eq 1) // wahr (= true)(1 ne 1) // falsch (= false)(1 eq 2) // falsch (= false)(s eq 1) // wahr, wenn s = 1(s gt 1) // wahr, wenn s > 1(1 in m) // wahr, wenn 1 in m vorkommt([1 2 3] in m) // wahr, wenn (1 in m) or (2 in m) or (3 in m)([1:3] in m) // = ([1 2 3] in m)([1:3 8] in m) // = ([1 2 3] in m) or (8 in m)

10.2.1 Prüfung bei Arrays und Multivariablen

Es gibt einen grundlegenden Unterschied zwischen den Vergleichsoperatoren (größer / kleiner /gleich) einerseits und der Prüfung, ob ein Array einen bestimmten Wert enthält. Gemeint sinddamit alle Fragetypen, die ihre Werte in Arrays ablegen (NumQ, MultiQ, SingleGridQ, MultiGridQ,s. Abschnitt 3.1).

Die Prüfung auf einen Wert mit in ergibt in diesem Beispiel true, wenn 1 in der Wertemenge f2enthalten ist, z. B. enthält f2 die Werte “1 2 3“:flt=(1 in f2); // true da 1 in "1 2 3" enthalten ist

Dagegen bildet GESS Q. bei anderen Vergleichsoperatoren (größer / kleiner / gleich) die Summeder Werte im Array bzw. der Frage.flt=(f2 eq 6); // true da 1+2+3 gleich 6

Der Summenmechanismus kann sich als hilfreich erweisen, wenn etwa die Summe der Eingabeneiner NumQ eine Rolle spielt.

10.2.2 Funktionen in Bedingungen

GESS Q. stellt einige Funktionen bereit, die speziell auf Bedingungen abzielen und sich mitlogischen Operatoren und einfachen Vergleichen kombinieren lassen:

containsText prüft ob TEXT im TextArray TARRAY enthalten ist. Liefert 1 zurück, wenn dies derFall ist, sonst 0.

GESS Q. (Stand: März 2018) 79

Page 92: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 10. Filter- und Plausibilitätsbedingungen

containsText(TARRAY, TEXT)

if(containsText(arr, "ist drin?")){// ... "ist drin?" ist drin

}

count zählt wie oft ein Wert VAL in ARRAY enthalten ist und liefert das Ergebnis zurück.

count(ARRAY, VAL)

if(count(arr, 7) gt 2){// ... die 7 ist mindestens 3 mal in arr enthalten

}

exists prüft, ob die angegebene Variable VAR im Skript existiert.

exists(VAR)

// Prüft, ob Frage f1 existiert und ein Label mit Code 7 definiert istflt=(exists(f1) and hasLabel(f1, 7));

hasDuplicateValues testet, ob ein Wert in ARRAY mehrfach enthalten ist. Ist dies der Fall, liefertder Aufruf eine 1 zurück, andernfalls eine 0.

hasDuplicateValues(ARRAY)

if(hasDuplicateValues(arr) eq 1){// ... es gibt Duplikate

};

hasLabel prüft, ob für Frage Q ein Label mit Code CODE definiert ist.

hasLabel(Q, CODE)

// Prüft, ob Frage f1 existiert und ein Label mit Code 7 definiert istflt=(exists(f1) and hasLabel(f1, 7));

hasMediaUpload bezieht sich speziell auf die UploadQ und ist dort ausführlich beschrieben, sieheAbschnitt 3.13.

num liefert die Anzahl der Werte in Variablen, die nicht Missing sind. Auf Textvariablen angewandt,zählt sie außerdem die Länge von Zeichenketten (z.B. bei OpenQ oder TextElement).

num(VARIABLE)

GESS Q. (Stand: März 2018) 80

Page 93: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 10. Filter- und Plausibilitätsbedingungen

// Inhalt von zehnFelder:{m, 6, 3, m, m, m, 8, 1, 1, 2}num(zehnFelder) // liefert 6

if(num(arr) ge 1){// ... enthält arr wenigstens einen Wert?

}

regexp sucht ein Muster (einen regulären Ausdruck bzw. regular expression, daher auch »regex«)in einer Zeichenkette. Wenn das Muster in der Zeichenkette auftaucht, liefert regexp den Wert 1zurück.

regexp( MUSTER, TEXT )

Das folgende Beispiel soll eine eingegebene E-Mail-Adresse überprüfen und gibt je nach Ergebniseinen anderen Text zurück:Group grp_check;labels=1 "E-Mail gültig" (regexp ("^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$", adr)eq 1)

2 "E-Mail ungültig" else;

E-Mail-Adressen sollte man jedoch nicht auf diese Weise prüfen, weil sie noch anders aussehenkönnen als das Muster es beschreibt, aber der Ausdruck taugt zur Erläuterung:

Demnach besteht die E-Mail-Adresse aus drei Feldern. Das erste reicht vom Anfang der Zei-chenkette (bezeichnet mit ^) bis zum @ und würde durch die Kombination von [a-zA-Z0-9_.+-]Kleinbuchstaben von a bis z und Großbuchstaben von A bis Z sowie Zahlen von 0 bis 9 und dieZeichen Unterstrich, Punkt, Plus, Minus berücksichtigen.

Das zweite Feld hinter dem @ berücksichtigt erneut die Buchstaben- und Zahlenkombinationsieht aber als zusätzliches Zeichen nur ein Minus vor. Darauf folgt ein Punkt. Da der Punkt inregulären Ausdrücken selbst als Platzhalter für ein beliebiges Zeichen stehen kann, muss maneine Escape-Sequenz (\\)1 verwenden, um den Punkt als Punkt anzusprechen.

Das letzte Feld bis zum Ende der Zeichenkette (bezeichnet durch $) kann nun wiederum dieBuchstaben- und Zahlenkombination enthalten und berücksichtigt zusätzlich Minus und Punkt(innerhalb der eckigen Klammern braucht es keine Escape-Sequenz für den Punkt).

Das Plus-Zeichen vor dem @, dem . und dem $, legt fest, dass der vorangehende Ausdruckmindestens einmal in der Zeichenkette vorkommen muss und mehrfach vorkommen kann.

Das Beispiel legt es bereits nahe, aber es dürfte sinnvoll sein, auch die vergleichsweise einfachenEinsatzmöglichkeiten hervor zu heben: Mit dem regulären Ausdruck ^123 untersucht regexp, obdie Zeichenkette mit 123 beginnt. Dagegen liefert regexp mit dem Muster com$ immer dann eine1, wenn die Zeichenkette mit com endet.

1Der Standard für reguläre Ausdrücke sieht nur einen Backslash vor. Java benötigt an dieser Stelle jedoch zweiRückstriche.

GESS Q. (Stand: März 2018) 81

Page 94: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 10. Filter- und Plausibilitätsbedingungen

Reguläre Ausdrücke sind ein mächtiges Werkzeug und können hier nicht erschöpfend erklärtwerden. Aber im Netz finden sich ausführliche Erläuterungen und Beispiele. Einen Ausgangspunktbietet Wikipedia: https://de.wikipedia.org/wiki/Regulärer_Ausdruck.

strcmp vergleicht TEXT1 und TEXT2 Zeichen für Zeichen. Sobald strcmp in TEXT1 und TEXT2ein unterschiedliches Zeichen findet, liefert es die Differenz ihrer ASCII Codes zurück. Zweiidentische Texte liefern demnach den Wert 0 zurück, unterschiedliche Texte einen Wert ungleich0.

strcmp(TEXT1, TEXT2)

if(strcmp("f12", _currentScreen) eq 0){// ... ist f12 der aktuelle Screen?

}

timesSent gibt zurück, wie oft die Antwort auf eine Frage bereits mit »Weiter« an den Serverübermittelt wurde. Mit der Funktion lässt sich z. B. das Verhalten abfangen, Fragen schlicht zuüberspringen: Wenn eine Frage einmal unbeantwortet abgeschickt wurde, greift der Filter undim Screen wird eine zweite, präzisierende Frage gestellt. Auf diese Weise können auch Labelsgefiltert werden, die dann erst erscheinen, wenn die Bedingung erfüllt ist.

timesSent(QUESTION)

flt(timessent(f7.1) ge 1 and f7 le 0);

toMillis errechnet aus einem angegebenen Zeitpunkt mit Jahr, Monat, Tag, Stunde, Minuteund Sekunde einen Millisekundenwert ab dem 1. Januar 1970 UTC, der z.B. mit _currentmillisverglichen werden kann.

toMillis(TAG, MONAT, JAHR, STUNDE, MINUTE, SEKUNDE)

flt(_currentmillis ge toMillis(1, 1, 2017, 0, 0, 0));

10.3 Filterbedingungen (flt)

10.3.1 Filter allgemein

Filter sorgen dafür, dass ein Element nur dann angezeigt wird, wenn eine Bedingung erfüllt ist. DieSyntax hierfür richtet sich nach dem Zusammenhang, in dem gefiltert wird: Frage / Screen / Block/ Label / LabelGruppe. Screens oder Blöcke, die leer sind, weil alle darin zusammengefasstenFragen gefiltert wurden, lässt GESS Q.aus. Das gleiche gilt für leere Fragen, also solche, in denenalle Labels ausgefiltert wurden.

Beim Überspringen von gefilterten Fragen werden deren Antworten explizit gelöscht. Auf die-se Weise wird dafür gesorgt, dass die letztlich enthaltenen Daten konsistent sind und keineRestinformationen enthalten, die nach zuletzt ausgelassen wurden.

GESS Q. (Stand: März 2018) 82

Page 95: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 10. Filter- und Plausibilitätsbedingungen

10.3.2 Filter an Fragen, Blöcken, Screens

Die allgemeine Formulierung für einen Filter, der sich auf eine Frage bezieht, lautet:

flt = BEDINGUNG;

Diese Anweisung muss direkt hinter der Definition der Frage, des Screens oder des Blocks stehen,zu dem sie gehören soll. Ein Element dieser Art kann höchstens einen Filter haben. MehrereBedingungen können mit den verschiedenen Operatoren verknüpft werden.

Beispiele:flt=99 in marken;// "marken" muss Wert 99 enthalten

flt=[1 3 5 7 9] in abc;// "abc" muss mindestens einen der Werte 1, 3, 5, 7 oder 9 enthalten

flt=[1:7] in def;// "def" muss mindestens einen der Werte zwischen 1 und 7 enthalten

flt=99 in marken or [1:7] in def or f1 eq 2;// "marken" muss den Wert 99 enthalten ODER// "def" muss mindestens einen der Werte zwischen 1 und 7 enthalten ODER// "f1" soll den Wert 2 haben

Um eine einzelne Frage zu filtern fügt man die Filterbedingung einfach der Fragedefinition hinzu:SingleQ audi_bekannt;text="Kennen Sie die Marke Audi?";labels=1 "ja"2 "nein";

SingleQ audi_einstufung;Text="Und wie gefällt Ihnen die Marke Audi?";labels=1 "gut"2 "schlecht";flt = audi_bekannt eq 1;

Es ist auch möglich, einen Block zu filtern, beispielsweise eine Liste von Fragen zu einer Marke,die nur gestellt wird, wenn die Marke bekannt ist:Block audi_items = (audi_item_1 audi_item_2 audi_item_3 audi_item_4) random;flt=audi_bekannt eq 1;

Filter nehmen Einfluss auf den Ablauf eines Interviews, der häufig über einen Fortschrittsbalkenveranschaulicht wird. Um den Balken mit dem Ablauf zu synchronisieren, sollte der AutomatismusAutoChangePBar aktiviert werden. Ist eine individuellere Steuerung des Balkens erforderlich könnenFilter an Fragen, Blöcken oder Screens optional die Funktion changepBar(NUM) aufrufen und die

GESS Q. (Stand: März 2018) 83

Page 96: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 10. Filter- und Plausibilitätsbedingungen

Anzahl der übersprungenen Fragen übergeben. Diese Angabe wirkt additiv zu AutoChangePBar(falls aktiviert). Eine negative Angabe für NUM kann den Fortschrittsbalken auch rückwärtsbewegen.

flt = BEDINGUNG changepBar(NUM);

Block bmw_items = (bmw_item_1 bmw_item_2 bmw_item_3 bmw_item_4) random;flt=bmw_bekannt eq 1 changepbar(4);

10.3.3 Filter in Labellisten

Auch Labels lassen sich filtern. Die Syntax bietet verschiedene Variationen, die alle gleichbedeutendsind.

1 "label" (bedingung)2 "label" flt(bedingung)3 "label" flt=(bedingung)

SingleQ s1;text="Welche Zeitung lesen sie am häufigsten?";title="";labels=1 "SZ"2 "taz"3 "FAZ"4 "WAZ"5 "FR";

SingleQ s2;text="Und welche Zeitung lesen sie am zweithäufigsten?";title="Titel";labels=1 "SZ" (not (1 in s1))2 "taz" flt(not (2 in s1))3 "FAZ" flt=(not (3 in s1))4 "WAZ" flt(not (4 in s1))5 "FR" flt(not (5 in s1));

In der SingleQ s2 wird die bereits in der SingleQ s1 genannte Zeitung ausgefiltert. Solltenbei einer anderen Konstruktion sämtliche Label einer Frage ausgefiltert sein, stellt GESS Q. dieFrage nicht.

10.3.4 Filter in Groups

Wie bei Labelfiltern stehen auch Groups verschiedene Varianten zur Verfügung Filter zu definieren:

GESS Q. (Stand: März 2018) 84

Page 97: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 10. Filter- und Plausibilitätsbedingungen

group grpname;labels=1 "L1" (bedingung1)2 "L2" flt(bedingung2)2 "L2" flt=(bedingung2);

Gefilterte Gruppen sind ein bewährter Mechanismus für den Textersatz.group zeitung1;labels=1 "SZ" (1 in s1)2 "taz" flt(2 in s1)3 "FAZ" flt=(3 in s1)4 "WAZ" (4 in s1)5 "FR" (5 in s1);

SingleQ s1;text="Welche Zeitung lesen sie am häufigsten?";title="";labels=1 "SZ"2 "taz"3 "FAZ"4 "WAZ"5 "FR";

SingleQ s2;text="Welche Zeitung lesen sie nach der @insert(zeitung1) am zweithäufigsten?";title="Titel";labels=1 "SZ" (not (1 in s1))2 "taz" flt(not (2 in s1))3 "FAZ" flt=(not (3 in s1))4 "WAZ" flt(not (4 in s1))5 "FR" flt(not (5 in s1));

In diesem Beispiel wird die Group nur genutzt, um die Antwort in »s1« in Frage »s2« zu verwenden.Das Gleiche wäre auch mit dem Standard-Textersatz @insert(s1) möglich gewesen. Aber derwesentliche Unterschied zum normalen Textersatz besteht in der Möglichkeit, Bedingungen zuformulieren, die durchaus komplex ausfallen können.

10.3.5 Spezialitäten: Filtertexte, noexport und setfilter

GESStabs kennt Filter, die mit Text versehen sind. Wenn die Daten mit GESStabs weiterverarbeitet werden, kann GESStabs Filter samt Text aus dem Fragebogen übernehmen. Der Textwird für GESStabs in die Datei var.inc (s. Abschnitt 26.5.3) exportiert.

flt = ( bedingung ) "Filtertext";

GESS Q. (Stand: März 2018) 85

Page 98: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 10. Filter- und Plausibilitätsbedingungen

In verschiedenen Konstellationen kann es erwünscht sein, Filter nicht in die var.inc zu über-nehmen. Sei es, dass die Syntax im Skript nicht mit GESStabsvereinbar ist oder eine Frage inverschiedenen Blöcken auftaucht und damit als zwei verschiedene Variablen betrachtet werden.In solchen Fällen kann der Export durch das Stichwort noexport verhindert werden.

flt = ( bedingung ) "Filtertext" noexport;

Als Alternative zu dem herkömmlichen flt an Fragen, Screens und Blöcken, kann auch einsetfilter-endfilter-Konstrukt verwendet werden. Dieser Befehl ist identisch zu dem in GESStabs.Hierbei wird der Filter um den Skriptteil geschrieben. Mit setfilter öffnet und mit endfilterschließt sich der Befehl. Die Angabe eines Namens oder beschreibenden Textes (siehe oben) istoptional.

setfilter [NAME] [text "TEXT"] = CONDITION;// Fragen, Screens, Blöcke

endfilter [NAME];

10.4 Plausibilitätsbedingungen (assert)

Plausibilitätsbedingungen (assertions) geben an, bei welchen Bedingungen eine Frage (oderein Screen / Block) wieder verlassen werden darf. Wird die Bedingung nicht erfüllt, bleibt dasInterview unter Ausgabe einer Fehlermeldung beim aktuellen Screen stehen. Ergänzend dazuist es auch möglich, Plausibilitätsbedingungen so zu definieren, dass bei deren Nichterfüllungdas Interview beendet wird (z. B. wenn die Befragten nicht in das Quotenschema passen). ImGegensatz zu Filtern können beliebig viele assert Statements an Fragen / Screens / Blöckennotiert werden.

Die Syntax für Plausibilitätsbedingungen lautet:

assert BEDINGUNG "FEHLERMELDUNG" [exit FINISHCODE] [attempts TRIES];

Mit BEDINGUNG wird eine These aufgestellt, die erfüllt sein muss. Ist dies nicht der Fall, wirdFEHLERMELDUNG auf dem gleichen Screen ausgegeben, so dass der Befragte seine Angaben korrigie-ren kann. Der optionale Parameter exit geht einen Schritt weiter und beendet das Interviewvollständig. FINISHCODE ist dabei eine natürliche Zahl, die beim Interviewabbruch als Wert in dieVariable _finished übernommen wird. So ist es möglich Abbruchgründe zu differenzieren(z. B. Abbruch wegen Geschlecht-Screenout oder voller Quote).

Zusätzlich ist es mit dem Parameter attempts möglich die Konsequenzen bei einem Verstoß gegendie Plausibilitätsprüfung nicht unmittelbar herbeizuführen, sondern dem Teilnehmer beschränktviele Versuche einzuräumen, um sich zu korrigieren. Wie viele Versuche genau gibt TRIES vor,welches ebenfalls als natürliche Zahl angegeben wird. Konkret heißt das bei einem assert mitexit, dass der Teilnehmer seine Angaben bis zu TRIES mal korrigieren kann, ehe das Interviewendgültig abgebrochen wird. Solange verhält sich das assert so als gäbe es kein exit. Ein assertohne exit würde einen Teilnehmer, der z. B. Punkte verteilt, deren Summe nicht aufgeht, nach

GESS Q. (Stand: März 2018) 86

Page 99: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 10. Filter- und Plausibilitätsbedingungen

TRIES fehlgeschlagenen Versuchen trotzdem im Interview weiterlassen. So kann bei komplexenEingaben abgewogen werden, ob man evtl. lieber etwas unstimmige Angaben bekommt ehe derTeilnehmer möglicherweise frustriert aufgibt und man das Interview ganz verliert.

Beispiele:SingleQ geschlecht;text="Geschlecht des Befragten";labels=1 "Männlich"2 "Weiblich";assert (geschlecht eq 1) "Frauen gehören nicht zur Zielgruppe" exit 2;

SingleQ alter;text="Alter des Befragten";labels=1 "unter 18"2 "18-29"3 "30-49"4 "50-64"5 "65 und älter";assert ([2 3 4] in alter) "Befragter muss 18-64 Jahre alt sein." exit 3;

NumQ punkte;Text="Bitte verteilen Sie 10 Punkte auf diese Marken";labels=1 "Marke A" format f12 "Marke B" format f13 "Marke C" format f14 "Marke D" format f1;assert (punkte.1 gt 0) "Screenout. Marke A hat keine Punkte bekommen." exit 108;assert (punkte eq 10) "Bitte verteilen Sie genau 10 Punkte." attempts 3;

Im Zusammenhang mit Plausibilitätsbedingungen ist auch der SkriptparamterdisableExitOnAssert zu erwähnen, der den exit Parameter gänzlich unterdrückt und so beimTesten der Screenouts sehr hilfreich sein kann, siehe Abschnitt 5.2.

GESS Q. (Stand: März 2018) 87

Page 100: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 11. Sortieren

11 Sortieren

11.1 Allgemeines

Labels, Fragen, Screens oder Blöcke in eine Reihenfolge zu bringen oder eine Reihenfolge zufälligdurcheinander zu würfeln, ist die eine Seite des Sortierens. Die andere besteht in der Regel darin,die einmal festgelegte Reihenfolge innerhalb eines Interviews beizubehalten.

Ein Beispiel kann das verdeutlichen: Es sollen für drei Automarken je drei Fragen gestellt werden.Die Marken sind Audi, BMW und Mercedes, und die Fragen sind Beurteilungen des Aussehens,der Ausstattung und des Preises. Die drei Fragen sollen in fester Reihenfolge für alle drei Markenerfolgen. Die Reihenfolge der Marken soll pro Interview zufällig sein.

Wenn die zufällige Reihenfolge der Marken Mercedes, Audi und BMW wäre, ergäbe sich darausdiese Abfolge der Fragen:

1. Aussehen Mercedes

2. Aussehen Audi

3. Aussehen BMW

4. Ausstattung Mercedes

5. Ausstattung Audi

6. Ausstattung BMW

7. Preis Mercedes

8. Preis Audi

9. Preis BMW

Um die am Anfang des Interviews festgelegte zufällige Reihenfolge (Mercedes, Audi, BMW) inden verschiedenen Blöcken (Aussehen, Ausstattung, Preis) beizubehalten, setzt GESS Q. einespezialisierte Variable ein, die sortID, die die Position eines Elements speichert. <id> sollte eineZeichenkette sein:

sortID=<id>

In unserem Beispiel erhalten alle Fragen Sortier-IDs:SingleQ aussehen_audi;...;sortID="audi";

SingleQ aussehen_bmw;...;

GESS Q. (Stand: März 2018) 88

Page 101: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 11. Sortieren

sortID="bmw";

SingleQ aussehen_mercedes;...;sortID="mercedes";

SingleQ preis_audi;...;sortID="audi";

SingleQ preis_bmw;...;sortID="bmw";

SingleQ preis_mercedes;...;sortID="mercedes";

SingleQ ausstattung_audi;...;sortID="audi";

SingleQ aausstattung_bmw;...;sortID="bmw";

SingleQ ausstattung_mercedes;...;sortID="mercedes";

Die Fragen zu einer Marke bekommen alle die gleiche Sortier-ID, damit die Marke immer an dergleichen Position erscheint. Um die Positionen über verschiedene Blöcke zu wahren, wird denBlöcken ein spezialisiertes Array, die sortOrder zugewiesen. Das Array hält die Positionen derElemente vor: Ein sortOrder-Array mit »3 1 2« würde dafür sorgen, dass die Elemente mit derSortier-ID 1 an zweiter Position erscheinen.

In unserem Beispiel soll die Reihenfolge der Marken zufällig sein und mit random erreichen wireine zufällige Reihenfolge im Block aussehen :block aussehen=(aussehen_audi aussehen_bmw aussehen_mercedes); random;

GESS Q. ermöglicht hier eine implizite Zuweisung: Die Reihenfolge des Blocks »aussehen« kannauch den anderen Blöcken über die sortOrder zugewiesen werden. Die beiden anderen Blöckeerhalten die gleiche Reihenfolge, indem man den Block aussehen als Sortierquelle angibt.block preis=(preis_audi preis_bmw preis_mercedes); sortOrder=aussehen;block ausstattung=(ausstattung_audi ausstattung_bmw ausstattung_mercedes); sortOrder=aussehen;

Damit bleibt die Reihenfolge der Marken in den drei Blöcken erhalten.

Nicht nur Fragen können mit einer Sortier-ID versehen werden, das gilt auch für Antwortlabelssowie für Blöcke, die Inhalt eines Blocks sind. Da es sich bei Sortier-ID und sortOrder um Zahlenbzw. Zahlenfolgen handelt, kann eine Sortierreihenfolge auch beliebig übertragen werden etwavon Labels auf Blöcke.

GESS Q. (Stand: März 2018) 89

Page 102: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 11. Sortieren

In unserem Beispiel ließe sich den Frageblöcken eine SingleQ voranstellen, in der z. B. gefragtwird, welches der drei Merkmale (Preis/Aussehen/Ausstattung) den Befragten am wichtigstenist. Die Antwort-Labels der SingleQ werden randomisiert, und die drei Frageblöcke sollen dannin der gleichen Reihenfolge wie die Antwortlabels abgefragt werden:SingleQ wichtig;text="Welches dieser Merkmale ist Ihnen am wichtigsten?";labels=1 "Preis" random sortID="preis"2 "Aussehen" random sortID="aussehen"3 "Umfang der Ausstattung" random sortID="ausstattung";

Den Frageblöcken werden die Sortier-IDs aus der SingleQ ebenfalls mitgegeben:block aussehen=(aussehen_audi aussehen_bmw aussehen_mercedes); random; sortID="aussehen";block preis=(preis_audi preis_bmw preis_mercedes); sortOrder=aussehen; sortID="preis";block ausstattung=(ausstattung_audi ausstattung_bmw ausstattung_mercedes); sortOrder=aussehen; sortID="ausstattung";

Die Sortierung der SingleQ wichtig muss auf den Fragen-Block übertragen werden:

block fragen=(aussehen preis ausstattung); sortOrder=wichtig;

Durch sortOrder=wichtig erhält der Fragen-Block die SingleQ wichtig mit ihrer Folge derLabels als Sortier-Vorlage.

Der Ansatz lässt sich noch weiter treiben. Da es sich bei Labels letztlich um eine hierarchischgeschachtelte Baumstruktur handelt, kann sich die Angabe der sortOrder auch auf eine bestimmteUntergruppe von Labels beziehen. Im folgenden Beispiel einer MultiQ sind die abgefragten Modellenach Marken gruppiert und sowohl die Labels als auch die Gruppen erhalten eine Sortier-ID:MultiQ automodelle;text="Welche dieser Automodelle kennen Sie?";labels=group (text "Audi"1 "A4" random sortID="a4"2 "A6" random sortID="a6"3 "A8" random sortID="a8") sortID="audi"group (text "BMW"4 "3er" sortID="3er"5 "5er" sortID="5er"6 "7er" sortID="7er") sortID="bmw"group (text "Mercedes-Benz"7 "C-Klasse" sortID="c"8 "E-Klasse" sortID="e"9 "S-Klasse" sortID="s") sortID="mb";

GESS Q. (Stand: März 2018) 90

Page 103: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 11. Sortieren

Danach soll das Lieblingsmodell jeder Marke erfragt werden, wobei die Reihenfolge der Modelleaus der vorangegangenen MultiQ erhalten bleiben soll. Mit sortOrder=automodelle.audi wirddie Reihenfolge aus der MultiQ automodelle und der Gruppe »audi« auf die SingleQ übertragen.

SingleQ pref_audi;text="Audi Lieblingsmodell";labels=1 "A4" sortID="a4"2 "A6" sortID="a6"3 "A8" sortID="a8";sortOrder=automodelle.audi;

Durch sortOrder=automodelle.audi; wird die Untergruppe audi (identifiziert anhand ihrerSortier-ID) referenziert. Das kann beliebig tief geschachtelt werden (wenn die Labelgruppenentsprechend komplex sind), wobei die Gruppen jeweils mit einem Punkt getrennt werden.

Analog dazu gehts weiter mit BMW und Mercedes:SingleQ pref_bmw;text="BMW Lieblingsmodell";labels=1 "3er" sortID="3er"2 "5er" sortID="5er"3 "7er" sortID="7er";sortOrder=automodelle.bmw;

SingleQ pref_mercedes;text="Mercedes Lieblingsmodell";labels=1 "C-Klasse" sortID="c"2 "E-Klasse" sortID="e"3 "S-Klasse" sortID="s";sortOrder=automodelle.mb;

11.2 Array-Inhalte als Sortier-Reihenfolge

Unter Umständen muss eine Reihenfolge explizit berechnet werden (um z. B. Quotenstände zuberücksichtigen). Zahlen in beliebiger Reihenfolge können wir in einem Array speichern und dasArray dann als Sortiervorlage verwenden.

Der Befehl arraySortOrder ermöglicht das:

arraySortOrder NAME = ARRAY;

Die im Array gespeicherten Elemente werden auf diese Weise zu Sortier-IDs. Ein Array mit demInhalt: (2 3 1 4) ergibt die Sortier-IDs »2« »3« »1« »4«.Array sortvorlage[4];

GESS Q. (Stand: März 2018) 91

Page 104: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 11. Sortieren

arraySortOrder aso = sortvorlage;

StartActionBlock = {set( sortvorlage[1] = 2 );set( sortvorlage[2] = 3 );set( sortvorlage[3] = 1 );set( sortvorlage[4] = 4 );

};

MultiGridQ s1;text="Gadgets";gridlabels=group(1 "Ja" sortid="1"2 "Nein" sortid="2"3 "Vielleicht" sortid="3"4 "Jein" sortid="4") sortorder = aso;griditems=1 "Telefon"2 "Kamera"3 "Tablet"4 "Phablet";

GridLabels einer Grid-Frage können über den Umweg einer Group mit einer sortOrder versehenwerden (die Reihenfolge der Label wäre hier also »nein«, »vielleicht«, »ja«, »jein«). Der Frageselbst die sortOrder mitzugeben, sortierte stattdessen die GridItems (bei entsprechender sortID).

Wenn GridItems die Sortiervorlage bilden, muss man diese vorher in eine Gruppe zusammenfassen:SingleQ s0;text="3-er Bewertung";labels=1 "X"2 "Y"3 "Z";SingleGridQ g1;gridlabels copy s0;griditems=group(

1 "S1" random2 "S2" random3 "S3" random

) sortID = "gruppe";SingleGridQ g2;gridlabels copy s0;griditems=1 "S1" random2 "S2" random3 "S3" random;sortOrder = g1.gruppe;

GESS Q. (Stand: März 2018) 92

Page 105: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 11. Sortieren

11.3 Automatisches Erzeugen der Sortier-ID

Das manuelle Erstellen der Sortier-IDs ist häufig aufwändig und redundant. In den meisten Fällenreicht es aus, einen einfachen, kurzen Identifier zu haben. Daher lässt sich die ID für Labelsautomatisch erzeugen. Die Option kann mittels eines Schalters lokal aktiviert bzw. deaktiviertwerden:

createDefaultSortId=[ yes | no ];

Bei Wertelabels wird der Labelwert, in einen String konvertiert, als Sortier-ID verwendet.

Ein Beispiel:createDefaultSortId=yes;

MultiQ q4;text="Welche der folgenden Anbieter kennen Sie?";labels=1 "abc" random2 "def" random3 "ghi" random4 "jkl" random99 "Keinen davon" single;

MultiQ q5;text="Von welchem der Anbieter haben Sie die Internetseiten besucht? ";labels=1 "abc"2 "def"3 "ghi"4 "jkl"99 "Von keinem" single;sortorder=q4;

createDefaultSortId=no;

GESS Q. (Stand: März 2018) 93

Page 106: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 12. Quoten

12 Quoten

12.1 Quotenvariablen

Ein wichtiges Element beim Durchführen von Studien ist die Kontrolle der Quotenvorgaben.

Bei Quotenvariablen in GESS Q. handelt es sich um Interview-übergreifende Zähler mit Sollwerten.Sie werden implizit beim Erfüllen einer bestimmten Bedingungen am Ende jedes Interviewsoder explizit hochgezählt. Zu beachten ist, dass die quotaWriteCondition (siehe Abschnitt 5.2grundsätzlich regelt, ob ein Interview überhaupt Einfluss auf die Quotenzählung haben soll. Aufdiese Weise lässt sich beispielweise der Testmodus oder eine verwendete Teilnehmer-Test-ID vonder Quotenzählung ausschließen.

Eine Quotenvariable besteht aus mehreren Bestandteilen:

• Name

• Bedingung (ob sie nach Beendigung eines Interviews hochgezählt wird)

• Ist-Zählerstand

• Soll-Zählerstand

Die Syntax zur Definition eine Quotenvariablen im Skript ist:

quotaVar NAME=BEDINGUNG;

quotaVar geschlecht_m = geschl eq 1;quotaVar geschlecht_w = geschl eq 2;

Die Ist- und Soll-Zählerstände sind hier noch nicht enthalten. Da Quotenstände Interview-übergreifend sind, werden sie in der Datei quotavars.lst gespeichert, die sich im Studienver-zeichnis befinden muss. Dort aufgeführte Quoten müssen im Skript definiert sein und umgekehrt.Für das angeführte Beispiel sähe die Datei z. B. wie folgt aus:geschlecht_m 0 100geschlecht_w 31 100

Bei dieser Konstellation wurde die Frauenquote bereits 31 mal gezählt, während die Männerquotebislang unangetastet blieb.

Um im Skript mit den Informationen einer Quotenvariable arbeiten zu können, gibt es 3 ver-schiedene Selektoren:

QUOTAVAR Ist-Stand (ohne Berücksichtigung des akt. Interviews)current(QUOTAVAR) Ist-Stand (mit ... )target(QUOTAVAR) Soll-Stand

GESS Q. (Stand: März 2018) 94

Page 107: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 12. Quoten

Die reine Definition der Quote führt lediglich zu einem Zählerverhalten der Quote. Sie würde auchüber den Sollwert hinaus immer weiter zählen. Abbrüche oder sonstige Aktionen aufgrund derQuotenstände müssen im Skript explizit definiert werden. Beispielhaft sähe ein quotenbedingterAbbruch des Interviews im Skript folgendermaßen aus:quotaVar geschlecht_m = geschl eq 1;quotaVar geschlecht_w = geschl eq 2;

SingleQ geschl;text="Geschlecht";labels=1 "männlich"2 "weiblich";if(geschl eq 1) assert (geschlecht_m lt target(geschlecht_m)) "zu viele M" exit 2;if(geschl eq 2) assert (geschlecht_w lt target(geschlecht_w)) "zu viele W" exit 2;

Für die Bedeutung des assert sei auf Abschnitt 10.4 verwiesen.

Wer kein implizites Zählverhalten der Quote nutzen möchte, kann Quotenvariablen auch mit einerin jedem Fall ungültigen Bedingung definieren und mit dem Actionbefehl incQuota(QUOTAVAR);manuell hochzählen. Auch wenn es Kapitel 13 etwas vorausgreift, wäre für das o.a. Beispielgleichbedeutend:quotaVar geschlecht_m = 1 eq 2;quotaVar geschlecht_w = 1 eq 2;

SingleQ geschl;text="Geschlecht";labels=1 "männlich"2 "weiblich";if(geschl eq 1) assert (geschlecht_m lt target(geschlecht_m)) "zu viele M" exit 2;if(geschl eq 2) assert (geschlecht_w lt target(geschlecht_w)) "zu viele W" exit 2;

cmplActionBlock = {if(_finished eq 1){

if(geschl eq 1){ incQuota(geschlecht_m); };if(geschl eq 2){ incQuota(geschlecht_w); };

};};

12.2 Quotengruppen

Mehrere einzelne Quotenvariablen bilden oft logisch zusammenhängende Einheiten (wie indem Beispiel mit M/W). Deshalb ist es sinnvoll (und in zukünftigen GESS Q.-Versionen auchnotwendig), sie zu Gruppen zusammenzufassen. Um mehrere Quotenvariablen zu einer Gruppezusammenzufassen, muss man vor der Definition der Variablen das Statement

QuotaGroup <name> begin;

GESS Q. (Stand: März 2018) 95

Page 108: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 12. Quoten

angeben, und dahinter

QuotaGroup end;

Eine QuotaGroup kann direkt in einer Bedingung benutzt werden. Sie liefert den Wert true,wenn das aktuelle Interview in die Quotengruppen »passt«. »Passen« heißt: alle enthaltenenQuotaVars, deren Bedingungen beim aktuellen Interview zutreffen, haben einen niedrigeren Ist-als Soll-Zählerstand.

Beispiel:QuotaGroup qgr_geschl begin;

quotaVar geschl_m=geschlecht eq 1;quotaVar geschl_w=geschlecht eq 2;

QuotaGroup end;

SingleQ geschlecht;text="Geschlecht";labels=1 "männlich"2 "weiblich";assert qgr_geschl "Bereits genug Interviews mit diesem Geschlecht!" exit;

Alternativ kann man die einzelnen Variablen auch direkt bei der QuotaGroup-Definition angeben:QuotaGroup qgr_geschl=(geschl_m geschl_w);

12.3 Quoten und Zugriffsrechte

Über die Web-Oberfläche (s. Abschnitt 26.3.11) können Quotenstände kontrolliert und dieVorgaben angepasst werden. Gekoppelt ist der Zugriff auf diesen Menü-Eintrag an Zugriffsrechteund jede einzelne Quote kann für ein Nutzerkonto sichtbar gemacht oder ausgeblendet werden.

Momentan kann die Zuggriffskontrolle durch zwei verschiedene Mechanismen erreicht werden(in absehbarer Zeit stehen hier Veränderungen an). Der jüngere Mechanismus ordnet in einerjson-Datei einer User-ID alle Quoten zu, auf die dieses Konto zugreifen darf. Damit GESS Q. dieDatei berücksichtigt, muss sie unter dem Namen quotafilter.json im Studienverzeichnis liegen.[

{"userid": "user1","quotavars": [

"gesamt","q2","q4"

]},{

"userid": "user2",

GESS Q. (Stand: März 2018) 96

Page 109: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 12. Quoten

"quotavars": ["gesamt"

]}

]

Bei einem älteren Mechanismus wertet GESS Q. eine Datei namens qsr.lst im Studienverzeichnisaus. Die Datei ordnet zeilenweise jeder Quote durch Leerzeichen getrennte User-IDs zu. Auf diejeweilige Quote können dann nur die aufgeführten Nutzer zugreifen, egal welche Nutzerrechteden Konten zugeordnet wurden.quote1 user1 user2 user3 user4

GESS Q. (Stand: März 2018) 97

Page 110: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 13. Action-Befehle und -Blöcke

13 Action-Befehle und -Blöcke

13.1 Allgemeines

Mit den bisher vorgestellten Mitteln fällt es schwer, Berechnungen durchzuführen, die sich z.B. zur Steuerung des Interview-Ablaufs nutzen lassen. Wenn beispielsweise per compute eineVariable definiert wird, die eine Berechnung darstellt:compute a = b+c;

dann wird bei jedem Zugriff auf die Variable a (z. B. innerhalb von Berechnungen oder Bedin-gungen) der aktuelle Wert der Addition b+c ermittelt und als Wert von a benutzt.Damit können aber z. B. keine Zähler realisiert werden. Eine Definition wiecompute count = count+1;

würde zu einer endlosen Rekursion führen, da bei dem Zugriff auf den Wert von count dieBerechnung count+1 durchgeführt wird, die aber wiederum einen Zugriff auf count darstellt,und so weiter.

Action-Blöcke schaffen hier Abhilfe und erlauben es, bei der Steuerung Quotenstände oderZufallsauswahlen zu berücksichtigen oder Berechnungen bei Start oder Wiederaufnahme einesInterviews durchzuführen. Dabei stellen Action-Blöcke Kontrollstrukturen zur Verfügung, wie sieaus herkömmlichen Programmiersprachen bekannt sind: wenn-dann, von-bis usw.

Ein Action-Block enthält eine beliebige Anzahl von Befehlen und wird an ein bestimmtes Ereignisgekoppelt, bei dessen Eintreten er ausgeführt wird. Hierbei gibt es sowohl aufs Interview bezogeneEreignisse (Start, Abbruch, beendet) als auch fragespezifische (vor dem Anzeigen, nach Klick auf»weiter« etc.). Konkret stehen zur Verfügung:

Interview-spezifisch (können im gesamten Skript nur einmal verwendet werden)

ChangeLanguageActionBlock wird beim Wechseln zwischen Sprachdateien ausgeführt. Die Ver-wendung von readTextRessource innerhalb dieses Actionblocks würde zu einer Endlosschleifeführen.

CmplActionBlock wird ausgeführt, wenn ein Interview beendet wird, egal mit welchem Status.

ResumeActionBlock wird bei Wiederaufnahme eines unterbrochenen Interviews ausgeführt(nach Timeout).

StartActionBlock wird beim Starten des Interviews ausgeführt (auch bei Wiederaufnahmen).Das gilt auch bei abgeschlossenen Fällen oder einer deaktivierten Studie, damit GESS Q.eventuelle Meldungen in der richtigen Sprache ausgeben kann.

TimeoutActionBlock wird ausgeführt, bevor ein Interview wegen zu langer Inaktivität unter-brochen wird.

GESS Q. (Stand: März 2018) 98

Page 111: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 13. Action-Befehle und -Blöcke

Frage-spezifisch (können mehrfach definiert werden)

ContinueActionBlock wird nach erfolgreicher Validierung einer Frage und vor dem Weiterleitenzum nächsten Screen ausgeführt.

BackActionBlock wird bei Klick auf den Zurück-Button ausgeführt.

InitActionBlock wird unmittelbar vor dem Anzeigen einer Frage ausgeführt.

PreAssertionActionBlock wird nach Klick auf den Weiter-Button, aber vor dem Validieren derasserts ausgeführt.

Block-spezifisch (können mehrfach definiert werden)

ContinueActionBlock wird beim Verlassen eines Blocks ausgeführt. Durch Filter übersprungeneBlöcke werden weder betreten noch verlassen.

InitActionBlock wird beim Betreten eines Blocks ausgeführt. Durch Filter übersprungene Blöckewerden weder betreten noch verlassen.

Innerhalb dieser Befehlsblöcke können keine neuen Variablen angelegt werden. Eine Ausnahmehiervon bilden Zählvariablen von Schleifen.compute count=0;

SingleQ q1;...flt=count lt 3;ContinueActionBlock={ inc(count); };

SingleQ q2;...flt=count lt 3;ContinueActionBlock={ inc(count); };

SingleQ q3;...flt=count lt 3;ContinueActionBlock={ inc(count); };

SingleQ q4;...flt=count lt 3;ContinueActionBlock={ inc(count); };

SingleQ q5;...flt=count lt 3;ContinueActionBlock={ inc(count); };

block zufall=(q1 q2 q3 q4 q5); random;

GESS Q. (Stand: März 2018) 99

Page 112: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 13. Action-Befehle und -Blöcke

Beim Befehl inc (für "increment") handelt es sich um einen Action-Befehl. Er erhöht den Zählercount nach jeder Frage um eins. Außerdem wird jede Frage danach gefiltert, ob der Zählerstand3 erreicht ist.

Die Befehle eines ActionBlock müssen innerhalb geschweifter Klammern stehen. Klammern dienenauch zum Definieren weiterer Strukturen innerhalb eines ActionBlock etwa bei Bedingungen undSchleifen.

GESS Q. erlaubt es syntaktisch zwar ActionBlöcke auch an einen Screen zu schreiben, eineFunktion/Bedeutung haben sie dort allerdings nicht.

Man kann die Action-Befehle in zwei Kategorien aufteilen: "normale Befehle" und Befehle zurAblaufsteuerung (Bedingungen, Schleifen).

13.2 Actionbefehle

Mit Action-Befehlen lassen sich Dinge wie Zähler, Bedingungen und Schleifen realisieren. Diefolgenden alphabetisch sortierten Action-Befehle können nur innerhalb von Action-Blöckenverwendet werden. Ergänzend dazu ist der Befehl set hervorzuheben, der bei Variablenbelegungenauch auf die in Kapitel 10.2.2 genannten Funktionen für Bedingungen zurückgreifen kann.

add ersetzt die erste mit Missing belegte Stelle eines Arrays ARRAY durch VALUE. Ist es bereitsvollständig belegt, macht die Anweisung nichts.

add(ARRAY, VALUE);

Array container[3];ActionBlock set_container = {

set( container[1] = 1 ); // { 1, m, m }set( container[3] = 3 ); // { 1, m, 3 }add(container, 7); // { 1, 7, 3 }

};

aesRandomKey verschlüsselt Daten mittels AES Key (AES/CBC/PKCS5Padding und Key=IV).

aesEncrypt(DATA, KEY);

appendText hängt TEXT an TextElement TEXTVAR an.

appendText(TEXTVAR, "TEXT");

appendText(textelem, "... wird angehängt");

case2json schreibt die derzeitigen Daten des aktuellen falls als JSON in die angegebenen Textva-riable (nur in Vollversionen).

GESS Q. (Stand: März 2018) 100

Page 113: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 13. Action-Befehle und -Blöcke

case2json(TEXTVAR);

changePBar setzt den Fortschrittsbalken um #QUESTIONS-Stellen weiter, sofern BEDINGUNG zutrifft.Alternativ (und gebräuchlicher) kann der Fortschrittsbalken auch innerhalb von Filtern fürFragen, Screens und Blöcken definiert werden, siehe Abschnitt 10.3.2.

changePBar((BEDINGUNG) #QUESTIONS);

changePBar((var eq 1) 2);

clear löscht die die Werte in VAR. Sollte VAR ein Array sein, wird bei arrayInitMode=positionstattdessen jedem Element der jeweilige Stellenindex zugewiesen.

clear(VAR);

ARRAY-Inhalt nach clear() bei arrayInitMode=position: { 1, 2, 3, 4, 5 }ARRAY-Inhalt nach clear() bei arrayInitMode=missing: { m, m, m, m, m }

clearScreen löscht alle Fragen in Screen.

clearScreen(SCREEN);

dec steht für decrement und verringert den Wert von VAR um 1.

dec(VAR);

exit Mit exit wird das Interview am Ende des aktuellen Actionblocks mit FINISHCODE beendetund die Endseite angezeigt.

exit(FINISHCODE);

findMinValIndex, findMaxValIndex Die Funktionen suchen in einem Array (ARR) den niedrigstenbzw. den höchsten Wert und speichern den Index der Fundstelle in einer Variablen (VAR).

findMinValIndex(ARR, VAR);

compute min = 0;compute max = 0;set( arr = [1 3 5 -1 6:9 0 0] ); // {1, 3, 5, -1, 6, 7, 8, 9, 0, 0}findMinValIndex(arr, min); // min erhält Wert 4findMaxValIndex(arr, max); // max erhält Wert 8

GESS Q. (Stand: März 2018) 101

Page 114: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 13. Action-Befehle und -Blöcke

getCountValue Diser ActionBefehl ruft Zählerstände ab, die in der Datei countvars.lst im Stu-dienverzeichnis gepflegt werden. Dabei wird zuerst der Zähler KEY inkrementiert und anschließendan die Variable VAR übergeben.

getCountValue(VAR, "KEY")

compute z1 = 0;

TextQ welcome;text="

Herzlich Willkommen!</br>Sie sind der @insert(z1). Teilnehmer an dieser Befragung!

";InitActionBlock={

getCountValue(z1, "zaehler1");};

Mit dem Anzeigen der Frage wird der Zählerstand erhöht. Die Nachrichten werden der Reihenach wie folgt angezeigt:Sie sind der 1. Teilnehmer an dieser Befragung!Sie sind der 2. Teilnehmer an dieser Befragung!Sie sind der 3. Teilnehmer an dieser Befragung!

Die Datei countvars.lst besteht aus einfachen Key-Value Paaren:zaehler1 0zaehler2 0zaehler3 0

inc steht für increment und erhöht den Wert von VAR um 1.

inc(VAR);

incQuota erhöht den Wert einer QUOTAVAR explizit um 1.

incQuota(QUOTAVAR);

insertLabels hängt in der Labelliste von Frage FRAGENAME nach dem Label mit Code CODE ein neuesLabel LABEL ein. Je nach Fragetyp muss hierbei darauf geachtet werden, dass die ursprünglichangelegte Frage auch genug Platz hat, alle möglichen Antworten zu speichern. Wäre die Frage imgegebenen Beispiel eine MultiQ, müsste mit oversizeArray(1); dafür gesorgt werden, dass dieursprünglich mit 2 Labels angelegte Frage ausreichend Platz dafür hat auch alle 3 Antwortcodeszu speichern.

insertLabels(FRAGENAME, CODE, [ LABEL ]);

GESS Q. (Stand: März 2018) 102

Page 115: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 13. Action-Befehle und -Blöcke

MultiQ bekannt;labels=1 "Lafite Rothschild"3 "Haut-Brion";InitActionBlock={

insertLabels(bekannt, 1, [ 2 "Mouton Rothschild" ]);};oversizeArray(1);

lalign verschiebt die Werte in ARRAY nach links (zum kleinsten Index), indem es so viele Plätzewie möglich mit Missings tauscht, siehe auch ralign.

lalign(ARRAY);

ARRAY-Inhalt vor lalign(): { m, 2, 3, m, 5, 6, m, m, m }ARRAY-Inhalt nach lalign(): { 2, 3, 5, 6, m, m, m, m, m }

load kopiert den Inhalt von Variable VAR2 in VAR1. Der Unterschied zu set ist, dass nicht nur einWert/Zahl/Ergebnis zugewiesen wird, sondern der gesamte Inhalt einer Variable in eine andere.So lassen sich z. B. auch ganze Array-Inhalte kopieren.

load(VAR1 = VAR2);

performHttpRequest dient zur Belegung von Variablen und Fragen eines Interviews. Der Befehlstellt eine HTTP Anfrage an die Webadresse URL und erwartet eine Antwort mit Daten im JSONFormat. Der zweite Parameter data="INFO"; ist optional und kann zusätzliche Informationen beider Anfrage übermitteln. Die angegebenen Werte werden in die benannten Variablen übernommen,sofern sie existieren. Der Befehl funktioniert analog zu readJsonDataFile.

performHttpRequest( url="URL"; data="INFO"; );

performHttpRequest(url="http://www.gessgroup.de/AntwortServlet";data="optionale Zusatzinformation";

);///////////////////////////////// Server-Antwort:///////////////////////////////// {// "variables": {// "singleq": 4,// "multiq": [2, 3, 5, 7, 9],// "openq": "dies ist ein text",// "numq": [14, 19, 5, 27],// "sgq.1": [1,2,3,2],// "mgq.1.1": [1,2,3],// "mgq.1.2": [2,1]// }// }

GESS Q. (Stand: März 2018) 103

Page 116: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 13. Action-Befehle und -Blöcke

pow berechnet die Potenz aus BASE und EXPONENT und schreibt sie in die Variable VAR.

set(VAR = pow(BASE, EXPONENT));

set(var = pow(10, 3)); // 10^3

print schreibt den Inhalt von Variable VAR in eine Zeile der Datei actionlog.lst in das text-Verzeichnis der Studie. Ist die Datei nicht vorhanden, wird sie neu angelegt.

print(VAR);

printText schreibt den angegebenen TEXT in eine Zeile der Datei actionlog.lst in das text-Verzeichnis der Studie. Ist die Datei nicht vorhanden, wird sie neu angelegt.

printText("TEXT");

ralign verschiebt die Werte in ARRAY nach rechts (zum größten Index), indem es so viele Plätzewie möglich mit Missings tauscht, siehe auch lalign.

ralign(ARRAY);

ARRAY-Inhalt vor ralign(): { m, 2, 3, m, 5, 6, m, m, m }ARRAY-Inhalt nach ralign(): { m, m, m, m, m, 2, 3, 5, 6 }

readDataFile dient zur Belegung von Variablen und Fragen eines Interviews. Der Befehl suchtin einer strukturierten Datendatei FILE nach einer Zeile mit Schlüsselwert VAR, und übernimmtdie darin angegebenen Werte in die entsprechenden Variablen, sofern sie existieren. FILE musssich im text-Ordner der jeweiligen Studie befinden. GESS Q. versucht das Encoding der Dateiautomatisch zu ermitteln. Um eine fehlerhafte Erkennung auszuschließen, empfiehlt es sich UTF-8mit BOM zu verwenden.

readDataFile(FILE, VAR);

// eine txt-Datei soll hier nach der ID des Interviews untersucht werdenreadDataFile("data1.txt", _respid);

// Die data1.txt sieht zum Beispiel so aus:67 ( (p_intnr "einunddreißig") (s1 "6") )68 ( (p_intnr "zweiunddreißig") (s1 "7") )69 ( (p_intnr "dreiunddreißig") (s1 "6") )70 ( (p_intnr "vierunddreißig") (s1 "1") )// ...

GESS Q. (Stand: März 2018) 104

Page 117: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 13. Action-Befehle und -Blöcke

Im Beispiel sollen Zusatzinformationen zur ID geladen werden. Die Variablen p_intnr und s1müssen dazu im Skript entsprechend als Text- und numerische Variable angelegt sein.

Bitte beachten: Wenn VAR eine numerische Information (wie eine NumQ) ist, sollte einDecimalFormat verwendet werden, um zu vermeiden dass große Zahlen in Exponentialschreibweisegewandelt oder Nachkommastellen zugefügt werden und dadurch die Suche keine Treffer liefert.

Im Folgenden Beispiel soll die Postleitzahl abgefragt und automatisch das zugehörige Bundeslandgeladen werden. Sollte die Angabe ungültig sein, wird keine Zuordnung in der plz.txt gefundenund das compute bundesland bleibt auf 0.

// Eine gewünschte plz.txt könnte so aufbereitet sein:// 22765 ( (bundesland "2") )// 24103 ( (bundesland "1") )// 12209 ( (bundesland "11") )// 66620 ( (bundesland "10") )// ...

compute bundesland = 0;opennumformat plz = 5 5 0 0 10000 99999 "ERR";numq num_plz;labels =1 "PLZ" format plz;preassertionactionblock = {

set(bundesland = 0);readdatafile("plz.txt", deci_plz);

};assert (bundesland ne 0) "" exit 2;decimalformat deci_plz = (num_plz.1, "0");

readRawJsonDataFile dient zur Belegung von Variablen und Fragen eines Interviews. Der Befehlliest einen JSON formatierten Datensatz FILE ein und übernimmt angegebene Werte in diebenannten Variablen, sofern sie existieren.readRawJsonDataFile("quoten.json");///////////////////////////////// quoten.json///////////////////////////////// {// "rvars": [// {// "name": "gesamt",// "value": "2"// },// {// "name": "Kaeufer",// "value": "2"// },// {// "name": "NichtKaeufer",// "value": "0"// },// {// "name": "Frau",// "value": "1"

GESS Q. (Stand: März 2018) 105

Page 118: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 13. Action-Befehle und -Blöcke

// },// {// "name": "Mann",// "value": "1"// }// ]// }

rsaEncrypt verschlüsselt DATA mittels RSA Publick Key bestehend aus Modulus PKMOD undExponent PKEXP.

rsaEncrypt(DATA, PKMOD, PKEXP);

Im folgenden Beispiel wird der aktuelle Datensatz als JSON abgegriffen und mit AES Keygeneriert. Mit dem Key werden die Daten verschlüsselt. Anschließend wird der AES Key selbstmit einem öffentlichen RSA Schlüssel verschlüsselt.textelement DATA;textelement AES128Key;textelement RSAPublicKeyModulus = "01234567890123456789...";textelement RSAPublicKeyExponent = "12345";

ActionBlock ab = {case2json(DATA);aesRandomKey(AES128Key);aesEncrypt(DATA, AES128Key);rsaEncrypt(AES128Key, RSAPublicKeyModulus, RSAPublicKeyExponent);

};

readTextRessource liest eine Sprach-Ressourcen-Datei FILE aus dem text-Verzeichnis der Studieein und ändert zu diesem Zeitpunkt alle in der Quelle enthaltenen Textinformationen.

readTextRessource(FILE);

if(lang eq 1) {readTextRessource("englisch.lrs");

};

remove löscht einen oder mehrere Werte VAL in ARRAY.

remove(ARRAY, VAL, VAL, ...);

ARRAY-Inhalt vor remove(): { 3, 2, 3, 5, 5, 6, 1, 6, 6 }ARRAY-Inhalt nach remove(ARRAY, 2, 6): { 3, m, 3, 5, 5, m, 1, m, m }

removeDuplicates entfernt Werte, die mehrfach in ARRAY enthalten sind. Nur ihr jeweils erstesVorkommnis bleibt erhalten. Alle weiteren werden gelöscht.

GESS Q. (Stand: März 2018) 106

Page 119: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 13. Action-Befehle und -Blöcke

removeDuplicates(ARRAY);

ARRAY-Inhalt vor removeDuplicates(): { 3, 2, 3, 5, 5, 6, 1, 6, 6 }ARRAY-Inhalt nach removeDuplicates(): { 3, 2, m, 5, m, 6, 1, m, m }

replaceAll kopiert den Inhalt von Textvariable SOURCE in Textvariable TARGET, wobei alle Vor-kommnisse des Suchmusters REGEX durch REPLACEMENT ersetzt werden. Weiterführende Erläute-rungen zu Suchmustern (Reguläre Ausdrücke) gibt es unter regexp in Kapiel 10.2.2.

replaceAll(TARGET, SOURCE, "REGEX", "REPLACEMENT");

TextElement source = "GESS X.";TextElement target;replaceAll(target, source, "X", "Q");

rotateLeft versetzt die Werte eines ARRAY um die angegebene Stellenanzahl nach links.

rotateLeft(ARRAY, ANZ-STELLEN);

ARRAY-Inhalt vor rotateLeft(): {1 2 3 4 5}ARRAY-Inhalt nach rotateLeft(ARR, 2) : {3 4 5 1 2}

round rundet den Wert der angegebenen Variable VAR auf eine ganze Zahl.

set(VAR = round(VAR));

set(bRounded = round(b));

script bettet Javascript Syntax in Actionblöcke ein. Mit @insert() können Werte von GESSQ. Variablen ins Javascript eingebunden werden. @save(VAR=VAL); definiert welche Werte amEnde der Ausführungslogik in welche GESS Q. Variablen zurückgespielt werden. Dieser Befehlbenötigt Java 8 und ist unter Android noch nicht verfügbar.

script("JAVASCRIPT");

compute nhTestResult = 5;compute x = 0;compute y = 0;compute z = 0;Array nhTestArray[3];OpenQ te;

vararray xyz = (x y z te nhTestArray);

// ...Actionblock ab = {

script("

GESS Q. (Stand: März 2018) 107

Page 120: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 13. Action-Befehle und -Blöcke

var x = 1;var y = 2;var z = @insert(nhTestResult);var arr = new Array();arr.push(x);arr.push(y);arr.push(z);

@save(xyz[1]) = x;@save(xyz[2]) = y;@save(xyz[3]) = z;@save(nhTestResult) = x+y+z;@save(xyz[5]) = arr;@save(xyz[4]) = 'nachher';

");};

sendMail verschickt eine E-Mail über eine zuvor definierte MAILBOX (siehe Abschnitt 8.12). Ineine anzugebende Compute RESULT wird bei erfolgreichem Versand eine 1 geschrieben. Sollte derVersand fehlschlagen (z.B. wegen einer ungültigen Syntax der Empfängeradresse), bleibt dieVariable unberührt. RECEIVER nimmt die Empfänger E-Mail Adresse auf, SUBJECT die Betreffzeileund CONTENT den Inhalt der Mail. Alle 3 Freitextinformationen können auch mit Textersatz(@insert) arbeiten. Der Inhalt der Mail kann außerdem HTML enthalten.

sendMail(MAILBOX, RESULT, "RECEIVER", "SUBJECT", "CONTENT");

Mailbox myMailbox = ("mail.host.de", "[email protected]", "[email protected]", "secret!");Compute mailResult = 0;

textq welcome;text="Hallo Welt! -> @insert(mailResult)";assert (mailResult eq 1) "Mail konnte nicht abgeschickt werden.";PreAssertionActionBlock = {

SendMail(myMailbox, mailResult, "[email protected]", "Betreff", "Inhalt");};

set weist Variable VAR den Wert VALUE zu. VALUE kann auch das Ergebnis einer Berechnungsein oder mehrere Werte enthalten um ein Array ab Index 1 zu belegen, wobei überschüssigeWerte ignoriert werden. Außerdem kann bei der Zuweisung auf Funktionen für Bedingungenzurückgegriffen werden, siehe Kapitel 10.2.2.

set(VAR = VALUE);

// Belegung einer einfachen Variableset(var = 0);set(var = a * b + 1);

// Belegung eines Arraysset(arr = [1 3 5 6:9 20]);

GESS Q. (Stand: März 2018) 108

Page 121: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 13. Action-Befehle und -Blöcke

setCurrentScreen setzt den aktuellen Screen neu und greift sofort bei nächster Teilnehmerinter-aktion. Verwirft Eingaben in Screens, die ein Timeout überdauern oder wenn setCurrentScreenin einem InitActionBlock verwendet wird.

setCurrentScreen(SCREEN);

// Kann syntaktisch mit/ohne Anführungszeichen geschrieben werden.

// Ohne Anführungszeichen wird die Screenexistenz geprüftTimeoutActionBlock = { setCurrentScreen(m4); };// Mit Anführungszeichen kann z. B. @insert() verwendet werden// setCurrentScreen("@insert(te_m4)");// setCurrentScreen("m4");

setDecimalSeparator legt das Dezimaltrennzeichen für das DecimalFormat fest (VoreinstellungKomma: ",").

setDecimalSeparator("SYMBOL");

setDecimalSeparator(",");

setGroupingSeparator legt das Tausendertrennzeichen für das DecimalFormat fest (VoreinstellungPunkt: ".")

setGroupingSeparator("SYMBOL");

setGroupingSeparator(".");

setNextScreen Mit dem Befehl setNextScreen wird in der Umfrage ein einmalig definierterSprung initiiert, ohne dass der vorher definierte Pfad dabei verändert wird. SetNextScreen kannan beliebiger Stelle für einen beliebigen Screen verwendet werden. Bei der Benutzung ist zubeachten, dass der Fortschrittsbalken nicht kompatibel mit dem Überspringen der Fragen oderScreens ist und daher weder parallel zum Interviewverlauf fortschreitet, noch parallel abschließt.

setNextScreen(SOURCE,TARGETSCREEN);

setNextScreen(a,c);

shuffle ordnet die Inhalte von ARRAY zufällig neu an.

shuffle(ARRAY);

GESS Q. (Stand: März 2018) 109

Page 122: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 13. Action-Befehle und -Blöcke

ARRAY-Inhalt vor shuffle(): { 1, 2, 3, 4, 5 }ARRAY-Inhalt nach shuffle(): { 4, 3, 5, 1, 2 }

strCutLeft schneidet die ersten ANZAHL Zeichen des Inhalts von VAR ab und speichert dasResultat in TEXTELEMENT.

strCutLeft(TEXTELEMENT, VAR, ANZAHL);

TextElement cutlery;OpenQ q1;text="Bitte etwas eingeben";ContinueActionBlock={ strCutLeft(cutlery, q1, 2); };

strCutRight schneidet die letzten ANZAHL Zeichen des Inhalts von VAR ab und speichert dasResultat in TEXTELEMENT.

strCutRight(TEXTELEMENT, VAR, ANZAHL);

syncsort sortiert die Inhalte von ARR1 aufsteigend (ascending) oder absteigend (descending) an.Synchron zu dem Schema, wie die Elemente in ARR1 ihre Positionen verändern, wird auch ARR2umsortiert.

syncsort(ARR1, ARR2, ascending|descending);

syncsort(array1, array2, ascending);

// ARRAY-Inhalte vor syncsort(): array1{ 3, 7, 1, 9, 4 } array2{ 1, 2, 3, 4, 5 }// ARRAY-Inhalte nach syncsort(): array1{ 1, 3, 4, 7, 9 } array2{ 3, 1, 5, 2, 4 }

writeJsonToSurvey schreibt eine Datei FILE in den Studienordner der Studie SURVEYNAME,der die angegebenen Variablen VAR im JSON Format enthält. Die Angabe von SURVEYNAMEist optional. Fehlt diese, wird automatisch das aktuelle Projekt gewählt.

writeJsonToSurvey([SURVEYNAME, ]FILE, (VAR, VAR, ...));

Das Beispiel:writeJsonToSurvey("beispielstudie", "case123.json", (sq1 sgq.1));

ergibt

GESS Q. (Stand: März 2018) 110

Page 123: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 13. Action-Befehle und -Blöcke

///////////////////////////////// case123.json///////////////////////////////{

"rvars": [{

"name": "sq1","value": "3.0"

},{

"name": "sgq.1","value": "4.0 4.0 5.0 5.0"

}]

}

13.3 Kontrollstrukturen

Für die Ablaufsteuerung bietet GESS Q. gängige Kontrollstrukturen an.

if-else: Wenn-Dann

for: Schleife (von-bis)

forEach: Schleife (für-jeden)

while: Schleife (solange)

if(<Bedingung>){

...};

Das if kann auch mit einem else kombiniert werden:if(<Bedingung>){

...}else{

...};

Es stehen zwei Typen von Schleifen zur Verfügung: Die for-Schleife und die while-Schleife.Bei der for-Schleife wird eine Zählvariable angelegt, die in Einer-Schritten vom Start- bis zumZielwert bei jedem Schleifendurchlauf inkrementiert wird. Als Start- und Zielwert können sowohlZahlenwerte als auch Variablen angegeben werden.for(x=1 to 10){

...};

GESS Q. (Stand: März 2018) 111

Page 124: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 13. Action-Befehle und -Blöcke

Die Schleife wird 10 Mal ausgeführt, und x durchläuft dabei die Werte von 1 bis 10.for(y=var1 to var2){

...};

Hier sind als Start- und Zielwerte Variablen angegeben. Dabei ist natürlich zu beachten, dassman hiermit Endlosschleifen bauen kann, die nie abbrechen. Vor allem wenn die Start- undZielvariablen innerhalb der Schleife manipuliert werden, sind sehr seltsame Verhaltensweisenmöglich.

Außerdem ist zu beachten, dass die Zählvariable neu angelegt wird, und daher vorher keineVariable mit dem gleichen Namen vorhanden gewesen sein darf. Das führt auch dazu, dass dieZählvariablen verschiedener for-Schleifen auch verschiedene Namen haben müssen.

Eine andere Art der for-Schleife, ist die forEach. Mit ihr kann eine Serie bestimmter Werteabgearbeitet werden.forEach(y=1 3 5 7 9 50:55){

... durchläuft y mit 1, 3, 5, 7, 9, 50, 51, 52, 53, 54, 55};

Bei der while-Schleife gibt es keine Zählvariable, sondern die Schleife wird solange wiederholt,wie die angegebene Bedingung erfüllt ist:while(<Bedingung>){

...};

GESS Q. (Stand: März 2018) 112

Page 125: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 14. Template, Layout, grafische Elemente

14 Template, Layout, grafische Elemente

14.1 Rahmenlayout - Das Template

Die Datei template.html im text-Verzeichnis bildet die Vorlage für das Layout des Fragebogens,oder genauer: für die Gestaltung der Web-Seite. Mit den Mitteln von HTML und CSS kann dasLayout den eigenen Vorstellungen angepasst werden.

Abb. 14.1: Fragebogen-Layout für ein GESS-Projekt

Abb. 14.2: Derselbe Fragebogen im Standardgewand für Android-Geräte

14.1.1 Struktur des Templates

Hier ist nicht der Ort HTML oder CSS zu erklären, das ist im Web an vielen Stellen doku-mentiert.1 Daher nur einige zusammenfassende Bemerkungen: Die Template-Datei ist durchHTML-Markierungen in zwei Abschnitte unterteilt: Head und Body. In den Kopf der Dateizwischen den Markierungen <head> und </head> gehört der Titel der Umfrage (zwischen <title>und </title>), den die meisten Browser in ihren Rahmen übernehmen und als Beschriftung fürden Reiter verwenden.<head><title>Onlinebefragung</title><meta name="Content-Type" content="text/html; charset=utf-8"/><link type="text/css" href="./css/default_gess.css" rel="stylesheet" /><script type="text/javascript" src="./javascript/gesstmpl.js"></script><script type="text/javascript">

1z. B.: http://de.selfhtml.org/

GESS Q. (Stand: März 2018) 113

Page 126: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 14. Template, Layout, grafische Elemente

Die Festlegung des Inhaltstyps mittels Content-Type muss als Zeichensatz UTF-8 deklarieren,da GESS Q. alle Web-Seiten mit dieser Kodierung ausgibt.

Über den Link-Tag können verschiedene Ressourcen eingebunden werden. Hier geht es vorallem um die stilistischen Festlegungen in einer CSS-Datei. HTML strukturiert eine Seite nur inÜberschriften, Absätze, Aufzählungen usw. Wie die einzelnen Elemente aussehen sollen, legenRegeln in der CSS-Datei fest (welche Schrift soll in einer Überschrift verwendet werden, wie großsoll die Schrift der Überschrift sein, welchen Abstand soll die Überschrift zum Text einhalten,usw.). Die hier eingebundene Datei legt einige grundsätzliche Layout-Entscheidungen fest (z. B.Schriftart, -größe, -farbe), die selten geändert werden.

Über das Script-Tag können Javascript-Dateien eingebunden werden, die Funktionen bereitstellen, welche an verschiedenen Stellen im Fragebogen benötigt werden. Eingebunden ist bereitsgesstmpl.js, weil viele der grafischen Funktionen dort programmiert sind.

Im Template schließen sich an die Einbindung von Javascript erneut CSS-Stilregeln an, die mitdem Style-Tag eingeleitet werden:<style type="text/css">

Die Vorlage sammelt in diesem Abschnitt eine Reihe von CSS-Klassen, die bei Fragebögen häufigerangepasst werden. Das lässt sich bei Bedarf auch erweitern. Um den Namen des gewünschtenElements zu finden, bieten die meisten Browser mittlerweile im Kontextmenü die Option »Elementuntersuchen« - erreichbar über einen Rechtsklick auf dem Element.

Mit den Style-Regeln endet der Kopf Datei und es folgt der Abschnitt body mit den HTML-Elementen, die die Seite ausmachen. Durch style-Anweisungen kann auf das Aussehen dereinzelnen Elemente weiter Einfluss genommen werden. Grafiken aus dem Medien-Ordner bindendie Vorlagen in der Regel über die Verwendung der Variablen $surveyname ein:src="./media/$surveyname/redpbar.jpg"

Die Variable stellt den Verzeichnisnamen der Studie bereit.

14.1.2 template_error.html

Wenn beim Aufruf eines Fragebogens durch einen Probanden ein Fehler auftritt, etwa weil dieStudie bereits abgeschlossen ist oder der Zugangscode ungültig ist, erscheint eine Fehlermeldungim für die Studie über das Template festgelegte Standard-Layout. Wenn für die Fehlermeldungdavon abgewichen werden soll, können die entsprechenden Anpassungen in der Dateitemplate_error.html vorgenommen werden.

14.1.3 Platzhalter

Um die eigentliche Web-Seite mit der Frage zu erstellen, füllt GESS Q. das Template auf. Dazudienen die verschiedenen Platzhalter, die im Template mit vorangestelltem @ am Zeilenanfangerscheinen.

GESS Q. (Stand: März 2018) 114

Page 127: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 14. Template, Layout, grafische Elemente

14.1.4 Liste der Platzhalter im template

@tt1 – @tt8 Inhalt der internen TextElements template1 – template8 im Skript

@qtext – @end_qtext Fragetext

@prehelptext – @end_prehelptext Pre-(Interviewer-)Helptext

@posthelptext – @end_posthelptext Post-(Interviewer-)Helptext

@error – @end_error Fehlermeldung

@input – @end_input Content von Fragen

@javascript Von GESS Q. generierte (Java-)Scripte (muss innerhalb von <script> Tags sein

@forward Weiterleitung am Interviewende

@header Von GESS Q. generierte (Java-)Scripte (muss innerhalb von <script> Tags sein

@form HTML Formular für Screeninhalte (später muss manuell ein «/form>notiert sein)

@body HTML Screen-Inhalte

@submit – @end_submit Weiter-Button

@back – @end_back Zurück-Button

@cancel – @end_cance Abbruch-Button

@pbar – @end_pbar Fortschritt als Zahl (abhängig von pBarWidth)

@src1 – @src4 Inhalt aus Datei (siehe Skript-Parameter src1 – src4)

@htmllabels HTMLLabels (s. Abschnitt 7.2.2

@language – @end_language Sprachauswahl

@surveyname Studienname

$surveyname Studienname (auch innerhalb einer Zeile)

@dummy Nichts

Damit GESS Q. die Platzhalter durch ihren Inhalt ersetzt, müssen sie immer am Zeilenanfangstehen. So wird für die Web-Seite der Platzhalter @input durch die eigentliche Frage ersetzt.@submit, @back, @cancel liefern die entsprechenden Buttons (»weiter«, »zurück«, »abbrechen«),wenn sie denn vorgesehen sind, usw. Dabei kommt es auch auf den Kontext an, ob die Platzhalter

GESS Q. (Stand: März 2018) 115

Page 128: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 14. Template, Layout, grafische Elemente

berücksichtigt werden. @pbar wird z. B. nur innerhalb des Fragebogens berücksichtigt, @forwardfügt dagegen nur am Interview-Ende die Weiterleitung ein.

Der häufig auftauchende Platzhalter @dummy wird immer berücksichtigt. Er stellt für GESS Q.eine Marke dar, bei der alle seit dem letzten Platzhalter eingelesenen Zeilen des Templates in dieeigentliche Web-Seite geschrieben werden.

GESS Q. liest und puffert das Layout Zeile für Zeile. Zeilen, die mit einem Platzhalter beginnen,sorgen für die Auswertung des Puffers: Ist der Platzhalter im jeweiligen Kontext von Bedeutungschreibt GESS Q. den Inhalt des Puffers in die Seite. Ist der Platzhalter nicht von Bedeutung,werden die gepufferten Zeilen gelöscht.

Man kann den Mechanismus des Platzhalters auch verwenden, um eventuell benötigte In-formationen aus dem laufenden Interview einzublenden. Dafür existieren acht frei belegbareSystemvariablen mit den Namen template1 bis template8. Die Platzhalter, die dann im Templateeingefügt werden müssen heißen korrespondierend @tt1 bis @tt8.

So lässt sich template1 über den Actionblock-Befehl setText etwa mit der ID der Interviewtenbelegen:startActionBlock = { setText( template1, "@insert(_respid)" ); };

Um die ID einzublenden, wäre dann an der gewünschten Stelle im Template@dummy@tt1@dummy

einzufügen. Das Einrahmen mit @dummy-Platzhaltern geschieht zur Sicherheit (erst die Inhalteseit dem letzten Platzhalter in die Web-Seite schreiben und anschließend sicher stellen, dass auchder Inhalt von template1 eingefügt wird,

Man kann dem Platzhalter auch HTML-Schnipsel mitgeben:startActionBlock = {

setText( template1, "<div style=\"color:red;\"> @insert(_respid) </div>" );};

Die ID des Interviewten würde so in rot eingeblendet. Um die Einblendung zu beenden, ließesich der Platzhalter zurücksetzen:ContinueActionBlock = { setText( template1, "" ); };

14.1.5 Fortschrittsbalken

Ein Fortschrittsbalken zeigt den Befragten an, wie weit sie in der Umfrage sind bzw. wie langesie noch brauchen. Diese Stütze ist ein Vorteil, da der Befragte ein Ende absehen kann, birgtaber gleichzeitig die Gefahr der Entmutigung, wenn der Balken bei einer entsprechend großenUmfrage nur langsam voran schreitet. Im Template wird der Fortschrittsbalken konfiguriert unddurch @pbar angezeigt bzw. durch @end_pbar beendet. Grundsätzlich zählt der Fortschrittsbalkendie Anzahl der Screens in einem Fragebogen. Ob eine oder mehrere Fragen auf einem Screen

GESS Q. (Stand: März 2018) 116

Page 129: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 14. Template, Layout, grafische Elemente

erscheinen, macht für den Fortschrittsbalken also keinen Unterschied; er würde in beiden Fällengleich schnell voranschreiten.

Wenn ein Screen gefiltert ist (also nur bei einer bestimmten Antwort angezeigt und sonstübersprungen wird) würde der Fortschrittsbalken am Ende nicht bei 100% abschließen. DerFilterparameter ChangePBar(NUM) sorgt dafür, dass der Fortschrittsbalken analog zu der Anzahlübersprunger Screens voranschreitet. NUM steht dabei für die Anzahl der Screens, die ausgelassenwerden. Ist dieses Verhalten grundsätzlich immer gewünscht, lässt sich hierfür mit dem globalenParameter AutoChangePBar ein Automatismus aktivieren.

Abb. 14.3: Der Fortschrittsbalken überspringt einen Screen: changepbar(1)

SingleQ f0;text = "Scheint bei Ihnen heute die Sonne?";labels=1 "Ja"2 "Nein";

OpenQ f1;title = "Was machen Sie bei dem schönen Wetter heute?";flt = (1 in f0) changepbar(1);

SingleQ f2;text = "Würden Sie gern in den Urlaub fliegen?";labels=1 "Natürlich!"2 "Ich arbeite lieber.";

Eine weitere Variante entsteht, wenn ab einer bestimmten Frage in mehrere verschiedene Pfadeeingestiegen werden kann, je nachdem welche Antwort gegeben wird. Zur Veranschaulichung hierein Bild:

GESS Q. (Stand: März 2018) 117

Page 130: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 14. Template, Layout, grafische Elemente

Abb. 14.4: Verschiedene Pfade mit gleicher Fragenanzahl

Im angezeigten Beispiel sind drei verschiedene Pfade angelegt, von denen nur einer pro Umfrageangezeigt wird. Der Fortschrittsbalken würde in diesem Beispiel mit 17 Fragen rechnen (f1, einerder Pfade à 5 Fragen und f7), wobei zwei mal fünf Screens, mit entsprechenden Sprüngen inder Fortschrittsanzeige, ausgelassen würden. Wir wissen also, dass der Teilnehmer maximal 7Screens vorgelegt bekommt. Um in diesem speziellen Beispiel einen entsprechend gleichmäßigenFortschritt in der Anzeige zu erzielen, kann der globale Skript-Parameter pBarMax=NUM eingefügt,um die Gesamtanzahl der Screens von 17 auf 7 zu reduzieren. Bei AutoChangePBar=no ist an denFiltern der Pfade keine weitere Ergänzung vorzunehmen. Bei AutoChangePBar=yes muss mittelsChangePBar(-5) entgegen des automatischen Verhaltens gezählt werden. Aus wie vielen Screenssich der Fragebogen insgesamt zusammensetzt, kann übrigens im Script-Check abgelesen werden.

Im folgenden finden Sie ein praktisches Beispielskript. Weiteres zu diesem Befehl ist im Ab-schnitt 5.2 zu finden.PBarMax=7; // Anpassen des Fortschrittsbalken

SingleQ f1;text="Welche der Aussagen trifft bei Ihnen am ehesten zu?";labels=1 "Ich bin Vegetarier."2 "Ich esse kein Gemüse."3 "Mir ist das egal-ich esse alles.";//Pfad 1TextQ t1; text=" t1";TextQ t2; text=" t2";TextQ t3; text=" t3";TextQ t4; text=" t4";TextQ t5; text=" t5";

//Pfad 2TextQ t6; text=" t6";TextQ t7; text=" t7";TextQ t8; text=" t8";TextQ t9; text=" t9";TextQ t10; text="t10";

//Pfad 3TextQ t11; text="t11";

GESS Q. (Stand: März 2018) 118

Page 131: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 14. Template, Layout, grafische Elemente

TextQ t12; text="t12";TextQ t13; text="t13";TextQ t14; text="t14";TextQ t15; text="t15";

//Ende der PfadeTextQ f7;text="Das ist sehr interessant. Vielen Dank für die ehrlichen Antworten."

block Pfad1 = (t1 t2 t3 t4 t5); flt=(f1 eq 1);block Pfad2 = (t6 t7 t8 t9 t10); flt=(f1 eq 2);block Pfad3 = (t11 t12 t13 t14 t15);flt=(f1 eq 3);

14.1.6 Die GESS Javascript Bibliothek gesstmpl.js

...

14.2 Grafische Buttons

Abb. 14.5: Grafische Buttons

Wie in Abbildung 14.5 zu sehen, können grafische Buttons in 3 Ausprägungen auftreten:

• markiert

• nicht markiert

• deaktiviert

Entsprechende Bilder für die Buttons sind aus beliebigen webfähigen Formaten (z. B.: .gif, .jpg,.png) wählbar. Zu beachten ist hierbei, dass sie später in der Umfrage in Originalgröße dargestelltwerden.

Speziell für Multi-Fragen lassen sich auch eigene Buttons definieren, so dass eine optischeUnterscheidung zu Single-Fragen möglich ist - analog zu Checkboxen und Radiobuttons im HTMLStandard. Zusätzlich gibt es die Möglichkeit eine minimal erforderliche, sowie eine maximaleerlaubte Anzahl markierter Antwortmöglichkeiten vorzugeben. Die grafische MultiQ (auch dieMultiGridQ) speichert die vom Befragten gegebenen Antworten immer in Klickreihenfolge, d.h. diezuerst angeklickte Antwort steht im Datensatz immer an erster Stelle und die zuletzt angeklickteAntwort am Ende.

GESS Q. (Stand: März 2018) 119

Page 132: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 14. Template, Layout, grafische Elemente

14.2.1 Voraussetzungen für die Verwendung

Die grafischen Buttons stehen für die Fragetypen SingleQ, MultiQ, SingleGridQ und MultigridQzur Verfügung. Um sie zu verwenden muss die GESS Javascript Bibliothek gesstmpl.js imTemplate eingebunden werden (siehe Abschnitt 14.1.6). Außerdem müssen die für die Buttons zuverwendenden Bilder im Mediapfad der zugehörigen Umfrage (./media/UMFRAGENAME/) hinterlegtwerden.

14.2.2 GESS Q. Skript

Im Skript muss nun übergeben werden, dass für den jeweiligen Fragetyp an Stelle des Browser-Standards die grafischen Varianten verwendet werden sollen:FRAGETYP ZU VERWENDENDE VARIANTEHTML{ singleQClass = "GSingleQ"; };HTML{ multiQClass = "GMultiQ"; };HTML{ singleGridQClass = "GSingleGridQ"; };HTML{ multiGridQClass = "GMultiGridQ"; };

Die grafischen Varianten der Standardfragetypen beginnen im Namen üblicherweise mit einemvorangestellten G. Die Zuweisung der eigentlichen Bilddateien für die Buttons erfolgt mit Hilfedes HTML-Befehls setProperty() und kann von Frage zu Frage geändert werden:HTML{ setProperty("button_checked" "bc.gif"); };HTML{ setProperty("button_unchecked" "buc.gif"); };HTML{ setProperty("button_inactive" "bia.gif"); };

SingleQ s1;(...)

HTML{ setProperty("button_checked" "bc1.gif bc1.gif bc2.gif"); };HTML{ setProperty("button_unchecked" "buc1.gif"); };

MultiGridQ mg1;(...)

Werden die grafischen Fragetypen ausgewählt, aber keine Angaben zu den Bildern im GESS Q.Skript gemacht, geht die Software von Defaultfällen aus, die im Mediapfad der Umfrage hinterlegtsein müssen.

button_checked Anzugeben ist der Dateiname einer Grafik inkl. Endung für einen markiertenButton. Um innerhalb einer Frage unterschiedliche Buttons zu benutzen, können mehrere durchLeerzeichen getrennte Dateinamen angegeben werden. Die Integration erfolgt entsprechend dergeschriebenen Labelreihenfolge im GESS Q. Skript. Gibt es mehr Labels als angegebene Grafiken,wird die zuletzt genannte Datei weiter verwendet.Default: button_checked.gif

button_unchecked Anzugeben ist der Dateiname einer Grafik inkl. Endung für einen unmar-kierten Button. Die Verwendung unterschiedlicher Buttons innerhalb einer Frage entsprichtbutton_unchecked.Default: button_unchecked.gif

GESS Q. (Stand: März 2018) 120

Page 133: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 14. Template, Layout, grafische Elemente

button_inactive Anzugeben ist der Dateiname einer Grafik inkl. Endung für einen deakti-vierten Button. Die Verwendung unterschiedlicher Buttons innerhalb einer Frage entsprichtbutton_unchecked.Default: button_inactive.gif

multi_button_checked Analog zu button_checked. Speziell für Multi-Fragen.Default: Nutzung von button_checked

multi_button_unchecked Analog zu button_unchecked. Speziell für Multi-Fragen.Default: Nutzung von button_unchecked

multi_button_inactive Analog zu button_inactive. Speziell für Multi-Fragen.Default: Nutzung von button_inactive

Die grafischen Buttons werden anhand ihrer Dateinamen voneinander unterschieden. Es darf alsokein Bild sowohl für z. B. button_unchecked, als auch für button_inactive verwendet werden.

14.2.3 Einstellbare Parameter

Neben den zuvor genannten Parametern für die Bilddateien gibt es zusätzliche Features, die überProperty-Parameter genutzt und eingestellt werden:

• Bildvorschau bei onMouseOver der Buttons

• minimale und maximale Anzahl markierter Antworten (nur Multi(Grid)Q)

• Mausklickverhalten (mouseUp / mouseDown)

• Zeilen- bzw. zellenweises Highlighting in Gridfragen

• Behandlungsmodi für single Antworten (nur Multi(Grid)Q)

GESS Q. (Stand: März 2018) 121

Page 134: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 14. Template, Layout, grafische Elemente

Bildvorschau bei onMouseOver der Buttons

Abb. 14.6: Bildvorschau bei grafischen Buttons

Mit button_preview ist es möglich den Buttons beim Überfahren mit der Maus ein Vorschaubildzuzuweisen, siehe Abbildung 14.6.

button_preview Anzugeben ist der Dateiname einer Grafik inkl. Endung für einen markiertenButton. Um innerhalb einer Frage unterschiedliche Vorschaubilder je Buttons zu benutzen, könnenmehrere, durch Leerzeichen getrennte Dateinamen angegeben werden. Die Integration erfolgtentsprechend der geschriebenen Labelreihenfolge im GESS Q. Skript. Gibt es mehr Labels alsangegebene Grafiken, wird für die überschüssigen Buttons kein Vorschaubild eingefügt.Default:

Minimale und maximale Anzahl markierter Antworten

Mit minNumAnswers und maxNumAnswers können minimale und maximale Anzahlen erforderlicherAntworten definiert werden. Bei einer Unterschreitung der minimalen Anzahl wird der Weiter-button bzw. im Falle eines Erreichens der maximalen Anzahl, die verbleibenden Antwortbuttonsdeaktiviert.

minNumAnswers Anzugeben ist ein ganzzahliger Wert.Default: 0

maxNumAnswers Anzugeben ist ein ganzzahliger Wert.Default: 10000

Mausklickverhalten (mouseUp / mouseDown)

Mit mouseEvent kann eingestellt werden, ob Antworten beim Drücken bzw. beim Loslassen derMaustaste markiert werden.

GESS Q. (Stand: März 2018) 122

Page 135: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 14. Template, Layout, grafische Elemente

mouseEvent Je nach Einstellung werden Buttons beim Drücken bzw. Loslassen markiert.Optionen: onMouseUp | onMouseDownDefault: onMouseDown

Zeilen- bzw. zellenweises Highlighting in Gridfragen

Mit gridHighlighting kann eingestellt werden, ob Antworten in Gridfragen zeilen- oder zellenweisegehighlightet werden sollen.

gridHighlighting Je nach Einstellung werden in Gridfragen nur Zellen oder ganze Zeilen beimÜberfahren mit dem Mauszeiger gehighlightet.Optionen: row | cellDefault: cell

Behandlungsmodi für exklusive Antworten

Das Verhalten der Antwortmöglichkeiten, die mit single versehen wurden, kann (wie bei anderenFragetypen) über den Parameter javascriptSingleMode gesteuert werden. Da dieser Skriptbefehlallgemeingültig auch an anderen Stellen verwendet wird, weicht die Syntax von den vorherigenParametern ab und kann jederzeit neu gesetzt werden:// Modus 'deselect'HTML{ javascriptSingleMode=deselect; };// Modus 'deactivate'HTML{ javascriptSingleMode=deactivate; };(...)// ab hier wieder Modus 'deselect'HTML{ javascriptSingleMode=deselect; };

javascriptSingleMode stellt das Markierungsverhalten bei single Antworten ein.Optionen: deselect | deactivateDefault: deactivate

Im Modus deselect ist ein single-Antwortbutton jederzeit markierbar. Wird er markiert, werdenalle anderen möglicherweise vorhandenen Markierungen gelöscht. Genauso wird die Markierungdes single Antwortbuttons gelöscht, sobald ein anderer Button markiert wird.

Im Modus deactivate kann der single-Antwortbutton nur markiert werden, wenn kein andererButton markiert ist (dann wäre er inaktiv). Wird er markiert, werden alle anderen möglichenAntwortbuttons deaktiviert.

14.2.4 Beispielcode

Code für das Beispiel aus Abbildung 14.5 :HTML{singleQClass="GSingleQ";multiQClass="GMultiQ";

GESS Q. (Stand: März 2018) 123

Page 136: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 14. Template, Layout, grafische Elemente

singleGridQClass="GSingleGridQ";multiGridQClass="GMultiGridQ";

setProperty("button_checked" "smiley.gif");setProperty("button_unchecked" "button_unchecked.gif");setProperty("button_inactive" "button_inactive.gif");setProperty("minNumAnswers" "1");// setProperty("maxNumAnswers" "3");// setProperty("mouseEvent" "onMouseUp");// javascriptSingleMode=deselect;};MultiQ m1;text="Frage mit Smiley-Buttons:";labels=1 "Multi 1a"2 "Multi 1b"3 "Multi 1c"4 "Alle" single;

14.3 Grafische Formatierung und Layout

Die grafischen Renderklassen sind vollständig mit CSS-Klassen2 versehen und können darüberformatiert werden. Auf diese Weise kann das Layout einer Umfrage vollständig von den Inhaltengekapselt werden. Für grundlegende Layout-Vorgaben ist das Anlegen von CSS Dateien empfeh-lenswert. Das folgende Beispiel aus dem Template einer Umfrage referenziert das Layout aus derDatei default_gess.css, die sich im Ordner css neben dem Mediaordner befindet. Von diesemLayout ausgehend können umfragespezifische Anpassungen z. B. direkt im jeweiligen Templatevorgenommen werden.<html><head>...<link type="text/css" href="./css/default_gess.css" rel="stylesheet"/>

<style type="text/css">// ... hier umfragespezifische CSS Formatierungen

// Beispiel: Fragetexte fett und unterstrichen.qtext{font-weight:bold;text-decoration:underline;}</style></head>...

CSS-Formatierungen werden nach folgendem Schema vorgenommen:ELEMENT {1. CSS-FORMATIERUNG; 2. CSS-FORMATIERUNG; ...}

Die (HTML-)Elemente können dabei über verschiedene Attribute referenziert werden:2Siehe http://de.selfhtml.org/css/

GESS Q. (Stand: März 2018) 124

Page 137: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 14. Template, Layout, grafische Elemente

(1) .NAME{...} über das HTML class-Attribut(2) NAME{...} über das HTML name-Attribut(3) #NAME{...} über das HTML id-Attribut

CSS ermöglicht verschiedene Arten der Selektion. Die wichtigsten werden hier kurz vorgestellt:.SEL1, .SEL2 {...} alle Elemente mit class SEL1 und alle Elemente mit class SEL2.SEL1.SEL2 {...} alle Elemente die gleichzeitig class SEL1 und SEL2 besitzen.SEL1 .SEL2 {...} alle Elemente SEL2, die Kindelement eines Elements mit SEL1 sind

In Abschnitt 14.3.3 werden mehrere praxisnahe Beispiele für CSS Formatierungen gegeben.

14.3.1 CSS Classnames

Abbildung 14.7 veranschaulicht, mit welchen CSS Classnames die dargestellten Elemente einerSingleQ angesprochen werden. Die MultiQ verhält sich identisch. Abbildung 14.9 stellt analogeine SingleGridQ dar. Auch hier verhält sich die MultiGridQ gleich.

Abb. 14.7: CSS Classes für SingleQ und MultiQ

Abb. 14.8: CSS Classes für GNumQ

GESS Q. (Stand: März 2018) 125

Page 138: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 14. Template, Layout, grafische Elemente

Abb. 14.9: CSS Classes für SingleGridQ und MultiGridQ

Bei Screen-Definitionen bekommt jede einzelne im Screen enthaltene Frage einen eigenen CSS-Selektor nach dem Muster qscreencell-x-y. »x-y« meint die Positionierung der Frage im Koor-dinatensystem des Screens. mit .qscreencell-1-2 ließe sich also die zweite Frage in der erstenZeile auswählen. Über den Selektor qscreencell lassen sich alle Zellen eines Screens auswählen.

Fragetexte und Fehlermeldungen unterscheiden sich von den restlichen Elementen. Sie lassensich derzeit nur global für die gesamte Umfrage formatieren.

Alle anderen Elemente befinden sich in einem definierten Bereich (HTML <div>). Sie sind mitseiner Hilfe von Frage zu Frage völlig frei und unabhängig gestaltbar. Details zu den Möglichkeitenbefinden sich in Abschnitt 14.3.2.

Neben den in den Grafiken enthaltenen CSS Classnames gibt es noch ein paar weitere Elemente,die sich formatieren lassen:// Klasse des OpenQ-Feldes.qopenfield {...}

// Sich abwechselnde, zeilenweise Hervorhebungen.qrowclass1{...}.qrowclass2{...}....qrowclassN{...}

// Fehlerhafte (beim Ausfüllen vergessene) Gridzellen.qgriderrorcell{...}

// Highlighting beim Überfahren mit der Maus.qhighlight{...}

// Rechte Item-Text-Zelle bei bipolaren Grids.qrightitemtextcell{...}

GESS Q. (Stand: März 2018) 126

Page 139: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 14. Template, Layout, grafische Elemente

// Abstandsspalte bei SingleQ/MultiQ mit Nutzung von maxLabelsPerCol oder splitcolumn.qcolseparator{...}

Abhängig vom GESS Q. HTML-Parameter cssLayout werden die Inhalte einer Frage zeilenweisedurch .qrowclass abgegrenzt.

cssLayout Setzt den Namen für einen Layoutabschnitt und definiert die Anzahl der unterschiedlichhervorgehobenen Zeilen. Beide Parameter müssen gesetzt werden.Default: ,2

Beispiel--------HTML{ cssLayout = "LayoutA",2; };

// ab hier heißt der Layoutabschnitt "LayoutA" (bis der Name wieder geändert wird)// Fragen enthalten abwechselnd Zeilen mit den Classes .qrowclass1 und .qrowclass2

Die Formatierung für .qhighlight sollte möglichst zuletzt vorgenommen werden. So überschreibtes im Fall von mehreren Angaben alle vorherigen. Schreibt beispielsweise die .qrowclass einenhellgrauen Hintergrund vor und .qhighlight einen hellgrünen wählt der Browser die jüngste (imQuelltext zuletzt stehende) Angabe.

14.3.2 Formatierung von einzelnen Fragen, Bereichen und Fragetypen

Neben globalen Definitionen kann das Layout auch auf feineren Ebenen definiert werden. FolgendeFormatierungen sind möglich:

• Formatierung einzelner Fragen

• Formatierung von Abschnitten

• Formatierung aller Fragen eines bestimmten Typs

Die Realisierung erfolgt über die in Abbildung 14.7 und Abbildung 14.9 stellvertretend angegebe-nen QNAME, CSSLAYOUT und QTYPE.QNAME Name einer FrageCSSLAYOUT Name eines Layoutbereichs (siehe Parameter cssLayout)QTYPE Fragetyp {.singleq, .multiq, .singlegridq, .multigridq}

14.3.3 Beispiele

Die folgenden Beispiele aus dem Template eine Umfrage verdeutlichen die praktische Anwendungder bisher beschriebenen Formatierungsmöglichkeiten.// Einbinden eines definierten Grundlayouts<link type="text/css" href="./css/default_gess.css" rel="stylesheet"/>

// umfragespezifische CSS Formatierungen// überschreiben evtl. vorhanden Angaben aus dem Grundlayout

GESS Q. (Stand: März 2018) 127

Page 140: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 14. Template, Layout, grafische Elemente

<style type="text/css">

// Fehlertexte (global).qerror{color : white; // Schriftfarbe weißbackground-color: #990000; // Hintergrund dunkelrotfont-weight : bold; // fette Schrift}

// Tabelle zum Title (global).qtable{margin-top : 25px; // Außenabstand oben (zum Title)}

// Labeltexte UND Labelcodes (global).qlabeltextcell, qvlabelcell{font-style : italic; // (1) kursive Schriftpadding-left : 20px; // linker Innenabstand zur Tabellenzelle}

// Labeltext (speziell für Frage q1).q1 .qlabeltextcell{font-style : normal; // normale Schrift, überschreibt (1)}

// Title (speziell für Layoutbereich ABC).ABC .qtitle{text-decoration : underline; // unterstrichene Schrift}

// Highlighting (speziell für MultiQs).multiq .qhighlight{background-color: yellow; // (2) gelber Hintergrund}

// Highlight (speziell für MultiQs in Layoutbereich ABC).multiq.ABC .qhighlight{background-color: #dddddd; // hellgrauer Hintergrund, überschreibt (2)}</style>

14.3.4 CSS der Frage mitgeben

Neben

• dem Anlegen einer CSS-Datei

• den Style-Anweisungen im Template

• dem Einfügen von Style-Anweisungen über htmlPostText im Fragebogen

existiert mit css ein eigener Textbereich, der hinter dem Fragetext eingefügt wird. Css verhältsich damit ähnlich wie htmlPostText hat aber einen entscheidenden Vorteil: Die CSS-Angabenwerden nicht in die Sprachdateien für die Übersetzung exportiert.

GESS Q. (Stand: März 2018) 128

Page 141: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 14. Template, Layout, grafische Elemente

css=".element{ eigenschaft: festlegung; }";

Hier erscheint der Fragetext in rot:OpenQ start;text="Welche Zeitung lesen Sie?";css=".qtext{ color: red; }";

14.3.5 CSS, die nicht empfohlene Variante

Die Vielzahl an Elementen, die GESS Q. zur Verfügung stellt, um Möglichkeiten zur Gestaltungeinzuräumen, von PreHelpText über htmlPostText bis hin zu css="..." , zielt vor allem auf einesab: Fragetexte und Antwortmöglichkeiten sollen ohne die Notwendigkeit des Nachbearbeitensvom Skript über das Reporting bis in etwaige Tabellen gelangen.

Wenn die Möglichkeiten trotzdem noch nicht ausreichen, können Texten und Labels auch spezielleFormate mitgegeben werden. Dazu ließen sich in {template.html eigene Klassen vorsehen:.smallcaps{

font-variant: small-caps;}.red{

color: red;}.large{

font-size: 150%;}

Die Definitionen in template.html können dann beliebig in den Fragen des Skripts eingesetztwerden:SingleQ f0;text="Welche Frage stellen sie am häufigsten? <div class="smallcaps">Kapitälchen </div>";title="<div class="red">rot </div>";labels=1 "A"2 "B <span class="large">groß </span>"3 "C";

Ob das Ergebnis sinnvoll ist, sei dahingestellt, aber »Kapitälchen« erscheint in kleinen Groß-buchstaben, der Titel in rot und »groß« stellt der Browser 50% größer dar als das “B“ daneben.

Derartige Konstruktionen überstehen Übersetzungen in der Regel nicht unbeschadet und ziehensich womöglich durch bis zum Erstellen von Tabellen - sorgen also für zusätzlichen Aufwand.

GESS Q. (Stand: März 2018) 129

Page 142: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 14. Template, Layout, grafische Elemente

14.3.6 Responsive Design

Seit etwa 2010 rufen Nutzer Web-Seiten vermehrt mit mobilen Geräten auf. Damit rutscht derDesktop-Rechner, der bis dahin als Maß der Web-Entwicklung gegolten hatte, in die zweite Reiheund es heißt: »mobile first«. Die Antwort auf die sich damit einstellenden Probleme firmiert unterdem Schlagwort »responsive design«: Die Web-Seiten sollen sich auf den jeweiligen Bildschirmeinstellen können. Das ist die Theorie, aber die Praxis erweist sich als widerspenstig.

CSS media queries sollen helfen, die Geräte anhand verschiedener Merkmale zu unterscheiden.Die Abfrage kann zunächst einen speziellen Medientyp ansprechen (all, screen, print usw.) undanschließend über die Abfrage bestimmter Eigenschaften des Typs (Breite, Höhe, Ausrichtungusw.) die CSS-Anweisungen eingrenzen 3:

@media all and (EIGENSCHAFT: WERT) { css-selektor { eigenschaft: wert;} }

Beim Ansatz des responsive Designs ist es empfehlenswert, keine festen Größen zu verwenden.Die ersten zwei Zeilen verbieten sich von selbst, wenn unklar ist, auf welchen Bildschirmen dieDarstellung erfolgt:width: 1024px;font-size: 12px;// statt dessen:max-width: 1024px;font-size: 75%;

Mit der Angabe einer maximalen Breite kann ein Browser die Anzeige für den Bildschirmanpassen, die feste Breite erzwingt dagegen die Anzeige über einen schmalen Bildschirm von z. B.800 Pixel hinaus. Auch die Schriftgröße sollte eher als Relation festgelegt werden, da Bildschirmeauf dem Schreibtisch ihre HD-Auflösung auf 20 Zoll und mehr verteilen, während Telefone die1920x1080 Pixel womöglich auf fünf Zoll unterbringen. (Desktop-Browser setzen in der Regeleine 16 Pixel große Schrift mit 100% gleich, daher hier die Umrechnung von 12 Pixel auf 75%.)

In der Regel sind bestimmte Darstellungen, etwa ein Layout mit zwei Spalten (im Zentrum dieUmfrage, am Rand etwaige Erläuterungen) beim Unterschreiten einer bestimmten Pixel-Breitenicht mehr sinnvoll. Das kann mit media queries abgefangen werden.@media all and (max-width: 800px) {

.rand{ display: block; }}

Bis zur Breite von 800 Pixeln würde ein Element mit der Klasse ».rand« als Block-Elementdargestellt und erschiene damit nicht neben der Umfrage, sondern durch den mit dem Block-Element verbundenen Umbruch je nach Anordnung darüber oder darunter.

Wenn bekannt ist, welche Bildschirme bei einer Umfrage eine Rolle spielen (etwa Tablets beieiner Car Clinic), kann mit Blick auf die Auflösungen auch über Zoom-Faktoren eine einheitlicheDarstellung erreicht werden.

3Die Liste von Typen und Eigenschaften legt ein in der Abstimmung befindlicher Standard des W3C fest:http://www.w3.org/TR/css3-mediaqueries#media1

GESS Q. (Stand: März 2018) 130

Page 143: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 14. Template, Layout, grafische Elemente

@media only screen and (max-width: 1024px){ .maintab{ zoom: 80%; } }@media only screen and (min-width: 1920px){ .maintab{ zoom: 150%; } }

Auf Bildschirmen mit einer Breite bis zu 1024 Pixeln wird die Darstellung auf 80% verkleinert,auf Bildschirmen mit einer Breite von 1920 Pixeln und mehr, wird die Darstellung auf 150%vergrößert. Auf den gängigen Breiten dazwischen (1280, 1366, 1600) bleibt die Darstellung bei100%, da nichts anderes vorgegeben wurde. Zoom-Faktoren sind nicht der Weisheit letzter Schluss,aber sie können Arbeit ersparen.

14.4 Selbstgebaute Screens

Ist das Layout einer oder mehrerer kombinierter Fragen einmal nicht im vorgegebenen Rahmen derGESS Q. Fragetypen realisierbar, lassen sich Screens auch vollständig manuell mit HTML-Codeerstellen. Mit dem Parameter input=no wird unterdrückt, dass GESS Q. den Quelltext für Fragenerzeugt. Die Fragedefinitionen sind in jedem Fall zwingend erforderlich, damit Sie als Variablenin GESS Q. angelegt werden.HTML{ input = no; };SingleQ sq;labels=1 'Antwort A'2 'Antwort B'3 'Antwort C' single;HTML{ input = yes; };

An dieser Stelle soll nur auf die HTML Darstellung der relevanten Eingabefelder und Texteeingegangen werden. Um auch bei manuell erstellten Screens Randomisierungen und Filterzu verwenden sei auf Abschnitt 7.2.2 verwiesen. Ein schlichter Nachbau der SingleQ sq mitLabelcodes sähe wie folgt aus:screen myscreen = column( sq );text="<div class='qtext'>Selbstgebaute Single Q Frage</div><div class='qtitle'>Single Q Title</div><table class='qtable'><tr><td name='id_sq1' class='qvlabelcell'> (1) </td><td name='id_sq1' class='sq qbuttoncell'> <img id='id_sq_bi1'> </td><td name='id_sq1' class='qlabeltextcell'> Antwort A </td></tr><tr><td name='id_sq2' class='qvlabelcell'> (2) </td><td name='id_sq2' class='sq qbuttoncell'> <img id='id_sq_bi2'> </td><td name='id_sq2' class='qlabeltextcell'> Antwort B </td></tr><tr><td name='id_sq3' class='qvlabelcell'> (3) </td><td name='id_sq3' class='sq qbuttoncell'> <img id='id_sq_bi3'> </td><td name='id_sq3' class='qlabeltextcell'> Antwort C </td></tr></table>";

GESS Q. (Stand: März 2018) 131

Page 144: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 14. Template, Layout, grafische Elemente

Die Angabe der names, ids und CSS Classes sind zwingend erforderlich, um die korrekte Funk-tionalität des Mausklickverhaltens, des Highlightings und der Gestaltung über CSS (sieheAbschnitt 14.3) sicherzustellen. Name und id setzen sich wie folgt zusammen:----- SingleQ und MultiQ -----name : id_<QNAME>_<LABELCODE>id (Button): id_<QNAME>_bi<LABELCODE>

--------- Gridfragen ---------name : entfälltid (Button): <QNAME>_bid<ITEMCODE>_<LABELGROUP>_<LABELCODE>

Das Highlighting in GESS Q. geschieht über die CSS Class qhighlight. GESS Q. highlightetimmer alle Tabellenzellen mit gleichen names und fügt ihnen ein Klick-/Markierungsverhaltenhinzu. Single-Attribute bei Multifragen werden dabei automatisch berücksichtigt. Sollen zwaralle Zellen gehighlightet werden, aber nicht alle ein Klickverhalten zugewiesen bekommen, lässtsich letzteres auch gezielt über die CSS Class checkable hinzufügen:...// in diesem Beispiel wird die Zelle mit dem Labelcode (2) zwar gehighlightet,// aber nicht mit Mausklickfunktionalität versehen.<tr><td name='id_sq2' class='qvlabelcell'> (2) </td><td name='id_sq2' class='checkable sq qbuttoncell'> <img id='id_sq_bi2'></td><td name='id_sq2' class='checkable qlabeltextcell'> Antwort B </td></tr>...

14.5 Grafische Navigationsbuttons

Neben grafischen Buttons für Antwortlabels lassen sich auch die Navigationsbuttons einesInterviews frei gestalten, siehe Abbildung 14.10.

• Weiterbutton

• Zurückbutton

• Abbruchbutton

Abb. 14.10: Grafische Navigationsbuttons

Für ihre Verwendung muss die GESS Javascript Bibliothek gesstmpl.js im Template eingebundenwerden, siehe Abschnitt 14.1.6. Zu verwendende Bilddateien für die Buttons lassen sich imMediapfad der Umfrage ablegen. Weiterhin sind zwei Schritte notwendig:

1. Erweiterung des Templates um <input> Felder und Javascript

2. Auswahl der Navigationsbuttons seitens des GESS Q. Skripts

GESS Q. (Stand: März 2018) 132

Page 145: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 14. Template, Layout, grafische Elemente

Im Javascript-Bereich des Templates müssen Image-Variablen für die Buttons angelegt und mitden Bilddateien initialisiert werden. Die Variablenamen im folgenden Beispiel sind zwingendeinzuhalten, während die Bilddateien BUTTON.gif, MOUSEOVER.gif und INACTIVE.gif inNamen und Format frei gewählt werden können. Bedeutung der Kürzel:

• cb: ContinueButton

• bb: BackButton

• cc: CancelButton

Außerdem ist im <body> Bereich direkt nach @form eine Ergänzung um jeweils ein <input>Feld je Button notwendig:<script type="text/javascript" src="./javascript/gesstmpl.js"></script>@dummy@header<script type="text/javascript">// grafischer Weiterbuttonvar cbId = "img1";cbImg = new Image(); cbImg.src = "./MEDIAPFAD/BUTTON.gif";cbOmoImg = new Image(); cbOmoImg.src = "./MEDIAPFAD/MOUSEOVER.gif";cbIaImg = new Image(); cbIaImg.src = "./MEDIAPFAD/INACTIVE.gif";// grafischer Zurückbuttonvar bbId = "img2";bbImg = new Image(); bbImg.src = "./MEDIAPFAD/BUTTON.gif";bbOmoImg = new Image(); bbOmoImg.src = "./MEDIAPFAD/MOUSEOVER.gif";bbIaImg = new Image(); bbIaImg.src = "./MEDIAPFAD/INACTIVE.gif";

// // grafischer Abbruchbutton (beispielhaft auskommentiert)// var ccId = "img3";// ccImg = new Image(); ccImg.src = "./MEDIAPFAD/BUTTON.gif";// ccOmoImg = new Image(); ccOmoImg.src = "./MEDIAPFAD/MOUSEOVER.gif";// ccIaImg = new Image(); ccIaImg.src = "./MEDIAPFAD/INACTIVE.gif";

@dummy@javascript</script>

...

<body>@dummy@form<div><input type="hidden" name="qcontinue" id="qcontinue" value=""><input type="hidden" name="qback" id="qback" value=""><input type="hidden" name="qcancel" id="qcancel" value=""></div>

...

Seitens des GESS Q. Skripts sind nun ebenfalls die Quellen für die Buttons anzugeben. Hierfürgibt es die HTML Parameter continueButtonSrc, backButtonSrc und cancelButtonSrc.

continueButtonSrc legt ein (zum Standard) alternatives HTML Codesnippet fest, das den Tem-

GESS Q. (Stand: März 2018) 133

Page 146: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 14. Template, Layout, grafische Elemente

plate Platzhalter @continue ersetzt.Default:

backButtonSrc legt ein (zum Standard) alternatives HTML Codesnippet fest, das den TemplatePlatzhalter @back ersetzt.Default:

cancelButtonSrc legt ein (zum Standard) alternatives HTML Codesnippet fest, das den TemplatePlatzhalter @cancel ersetzt.Default:

HTML{continueButtonSrc="<img id='continuebutton'src='./MEDIAPFAD/CONTBUTTON.gif'onclick='qcontinue_submit()'onmouseover='mouseOverImage()'onmouseout='mouseOutImage()'style='cursor:pointer;'/>";backButtonSrc="<img id='backbutton'src='./MEDIAPFAD/BACKBUTTON.gif'onclick='qback_submit()'onmouseover='mouseOverBBImage()'onmouseout='mouseOutBBImage()'style='cursor:pointer;'/>";// cancelButtonSrc="...";};

Auch hier kann $surveyname im MEDIAPFAD als dynamischer Platzhalter verwendet werden.

14.6 Eigene Templates bereitstellen

Um eigene Templates vorzusehen, die dann im [Survey Manager] ausgewählt werden können (s.Abschnitt 26.9.1), sind ein paar Regeln zu beachten. In der Konfigurationsdatei qonline.cfgim Verzeichnis config bestimmt die Variable modelPath, wo GESS Q. nach Vorlagen für eineStudie suchen soll. In der Voreinstellung steht der Wert auf models und bezieht sich auf einUnterverzeichnis im config-Ordner, so dass der Pfad in der Voreinstellung auf config/modelssteht.

Der Name des Verzeichnisses unterhalb von config/models/ dient zugleich als Name für dieAuswahl, die GESS Q. im [Survey Manager] anbietet. Mit dem Namen mytemplate muss dieVerzeichnisstruktur unterhalb von config/models/mytemplate/ zwei Ordner ausweisen: media undmytemplate. Das Verzeichnis media enthält wiederum einen Ordner mytemplate:config/models/mytemplate

/media/mytemplate (1)/mytemplate (2)

GESS Q. (Stand: März 2018) 134

Page 147: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 14. Template, Layout, grafische Elemente

Das mytemplate-Verzeichnis unterhalb von media (1) nimmt die grafischen Komponenten der Vor-lage auf. Hier können, soweit das vorab festgelegt werden soll, Knöpfe, Fortschrittsbalken, Logosusw. hinterlegt werden, die über template.html eingebunden werden können. Das Verzeichnismytemplate enthält das Gerüst des Studienverzeichnisses und kann vorkonfigurierte Dateien mitsämtlichen Studieneinstellung und vorgefertigten Skriptständen enthalten.

GESS Q. (Stand: März 2018) 135

Page 148: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 15. SliderQ: Schieberegler

15 SliderQ: Schieberegler

15.1 Allgemeines

Abb. 15.1: Schieberegler

Schieberegler bzw. Slider helfen dabei, spielerisch Werte in bestimmten Wertebereichen anzugebenund visuell darzustellen. In Abbildung 15.1 werden unterschiedliche Funktionalitäten auf einmalverdeutlicht:

• Gestaltung der Regler

• Gestaltung der Leisten selbst

• Anzeige der gewählten Werte

• Anzeige der Summe aller Werte

• Verbleibende Punkte zur Verteilung

Ferner unterstützen die Schieberegler Eingabezwang über den Skriptparameterdefaultnomissing und bieten einen Enthaltungsmechanismus über das OpenNumFormat.

15.2 Voraussetzungen für die Verwendung

Um Schieberegler zu verwenden, muss die GESS Javascript Bibliothek gesstmpl.js im Templateeingebunden werden, siehe Abschnitt 14.1.6. Außerdem müssen die zu verwendenden Bilder imMediapfad der zugehörigen Umfrage (./media/PROJEKTNAME/) hinterlegt werden.

15.3 GESS Q. Skript

Die Schieberegler sind eine Alternative zur NumQ und können sie durch folgende Skriptanweisungersetzen:

HTML{ numQClass = SliderQ; };

Mit dieser Einstellung verwendet GESS Q. anstelle einfacher Eingabefelder, Schieberegler miteinem voreingestellten Aussehen. Der einstellbare Wertebereich wird analog zur NumQ mit demOpenNumFormat festgelegt.

GESS Q. (Stand: März 2018) 136

Page 149: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 15. SliderQ: Schieberegler

Exkurs:OpenNumFormat f1 = 1 2 0 1 0.0 10.0 997 "Ungültige Eingabe!";// | | | | Fehlermeldung// | | | 997 Wert für Enthaltung/kA (optional)// | | 0.0-10.0 Wertebereich// | 0-1 Ziffern (Nachkomma)// 1-2 Ziffern (Vorkomma)NumQ punkte;Text="Bitte bewerten Sie Marke A (0-schlecht, 10-sehr gut).";labels=1 "Marke A" format f1;

Beinhaltet das OpenNumFormat den optionalen Wert für eine Enthaltung/kA (noAnswer) er-scheint automatisch ein Button zur Enthaltung. Die dazu gehörige Beschriftung erfolgt überdie global definierbare Textkonstante noAnswerText. Wie bei jedem OpenNumFormat muss sich derLabelcode für Enthaltung außerhalb des erlaubten Wertebereichs befinden, sonst kommt es zuÜberschneidungen in den Codedefinitionen.

15.4 Einstellbare Parameter

Sämtliche Einstellungen an den Schiebereglern werden mit Hilfe des setProperty() Mechanismusvorgenommen (s.a. Abschnitt 14.2.2). Die Parameter beginnen mit dem Kürzel sl_ und lassensich in zwei Kategorien unterteilen:

• grafische Parameter

• funktionale Parameter

Eine Ausnahme bildet die Grafik für den Regler selbst. Anstelle des überholten Parameterssl_image kann die Grafik dem jeweiligen Label mitgegeben werden:

labels=1 "@slider(grafik.png) Text";

15.4.1 Grafische Parameter

Mit den grafischen Parametern lassen sich der Regler und die Leisten optisch frei gestalten. Siekönnen sowohl schlicht mit Farben aus der RGB-Palette, als auch mit Grafiken versehen werden.Entsprechende Bilder sind in beliebigen webfähigen Formaten frei gestaltbar. Zu beachten isthierbei, dass sie später in der Umfrage in Originalgröße dargestellt werden.

Die Verwendung von Breiten-, Höhen- und Farbangaben wird als »überholt« eingestuft undmittelfristig nicht mehr unterstützt. Es wird ausdrücklich die Verwendung von Bildern für dieLeiste und den Regler empfohlen. In diesem Fall werden die Bildgrößen automatisch ermittelt.

GESS Q. (Stand: März 2018) 137

Page 150: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 15. SliderQ: Schieberegler

sl_barWidth Breite der Leiste. Anzugeben als ganzzahliger Wert in Pixel. Gilt für alle Standard-Schieberegler (ohne Verwendung von sl_barImage) innerhalb einer Frage.Default: 200

sl_barHeight Höhe der Leiste. Anzugeben wie bei sl_barWidth.Default: 15

sl_barColor Farbe der (gesamten) Leiste. Anzugeben in HEX (6 Ziffern) oder transparent.Default: transparent

sl_barColorLeft Farbe des linken Teils der Leiste ab Position des Regelelements. Sie ist anzugebenwie bei sl_barColor und höher priorisiert. Für unterschiedliche Farben links und rechts vomRegelelement sind also beide Angaben notwendig. Werden gleichzeitig auch Bilder für die Leistedefiniert, so werden diese gegenüber den Farbangaben bevorzugt.Default: transparent

sl_barImage Grafik für die (gesamte) Leiste. Sie wird zentriert und in Originalgröße angezeigt.Anzugeben ist der Dateiname einer Grafik inkl. Endung.Default:

sl_barImageLeft Grafik für den linken Teil der Leiste ab Position des Regelelements. Sie istanzugeben wie bei sl_barImage und höher priorisiert. Das bedeutet, dass Sie auf der Grafik aussl_barImage liegt und entsprechend die gleiche Größe besitzen sollte.Default:

sl_imageWidth Breite des Regelelements. Anzugeben als ganzzahliger Wert in Pixel. Bei mehrerenSchiebereglern können die Regelelemente individuell gestaltet werden, indem man mehrereBreiten, getrennt durch Leerzeichen, angibt. Gibt es mehr Schieberegler als angegebene Breiten,wird jeweils die zuletzt angegebene weiter verwendet.Default: 15

sl_imageHeight Höhe des Regelelements. Anzugeben wie bei sl_imageWidth.Default: 25

sl_color Farbe des Regelelements. Anzugeben in HEX (6 Zeichen) oder transparent. Beimehreren Schiebereglern können die Regelelemente individuell eingefärbt werden, indem manmehrere Farben, getrennt durch Leerzeichen, angibt. Gibt es mehr Schieberegler als angegebeneFarben, wird jeweils die zuletzt angegebene weiter verwendet.Default: e6e6e6

sl_image (veraltet) Anstelle von sl_image kann man dem Label selbst die Grafik über@slider(grafik.png) mitgeben. Der Mechanismus ist robuster, besonders wenn Labels zufälligangeordnet oder gefiltert werden sollen.(Ansonsten gilt: Grafik für das Regelelement. Es wird zur Leiste zentriert und in Originalgrößeangezeigt. Anzugeben ist der Dateiname einer Grafik inkl. Endung. Bei mehreren Schiebereglernkönnen die Regelelemente individuell mit Grafiken versehen werden, indem man mehrere, durchLeerzeichen getrennte Angaben macht. Gibt es mehr Schieberegler als angegebene Grafiken, wirdjeweils die zuletzt angegebene Bilddatei weiter verwendet.)

GESS Q. (Stand: März 2018) 138

Page 151: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 15. SliderQ: Schieberegler

15.4.2 Funktionale Parameter

Mit den funktionalen Parameter lassen sich Startwerte, Schrittweiten, Anzeigefelder, verteilbarePunkte, Verhaltensmodi, Eingabezwänge und Enthaltungsoptionen konfigurieren:

Felder für Summe und Rest Bei mehreren Slidern kann es sinnvoll sein, sich die Gesamtsummealler eingestellten Werte und/oder die Anzahl der noch zu verteilenden Punkte anzeigen zu lassen.Entsprechende Felder können frei im Titel der Frage platziert werden. Mit dem Schlüsselbegriff@slider_sum wird ein Feld für die Summe platziert, mit @slider_rest(<VALUE>) ein Feld für dienoch verteilbaren Punkte, wobei <VALUE> die Gesamtheit der zu verteilenden Punkte darstellt.

sl_startValues Startwerte der Schieberegler. Anzugeben als ganzzahliger Wert innerhalb desWertebereichs. Bei mehreren Schiebereglern innerhalb einer Frage können Startwerte mit Leerzei-chen getrennt hintereinander geschrieben werden. Bei fehlenden oder fehlerhaften Angaben wirdder Minimalwert aus dem OpenNumFormat genutzt.Default: Minimalwert aus OpenNumFormat

sl_stepSize Schrittweiten der Schieberegler. Anzugeben als ganzzahliger Wert innerhalb desWertebereichs. Bei mehreren Schiebereglern innerhalb einer Frage können Startwerte mit Leer-zeichen getrennt hintereinander geschrieben werden. Bei fehlenden oder fehlerhaften Angaben,wird die kleinstmögliche Schrittweite entsprechend der Anzahl der Nachkommastellen aus demOpenNumFormat genutzt.Default: Kleinstmögliche Schrittweite

sl_visibility Anfangs-Sichtbarkeit der Regelelemente. Anzugeben sind ein oder mehrere, mittelsLeerzeichen getrennte Werte aus den Optionen. Bei fehlenden oder fehlerhaften Angaben wirdder Defaultwert verwendet.Optionen: hidden | visibleDefault: visible

sl_showValues Anzeige der eingestellten Werte neben den Schiebereglern. Auf der rechten undlinken Seite kann eine Anzeige mit dem tatsächlich eingestellten Wert erscheinen. Die Einstellungyes ist identisch mit right. Die Option slider führt dazu, dass der eingestellte Wert auf demjeweiligen Regelelement selbst dargestellt wird.Optionen: yes | no | left | right | both | sliderDefault: no

sl_maxSum legt eine maximal einstellbare Gesamtsumme fest. Identisch zum Parameter in@slider_rest(XX) . Werden beide Angaben getätigt, hat der angegebene Wert in@slider_rest(XX) die höhere Priorität.Default: ∞

sl_mode stellt ein, ob und wie sich mehrere Schieberegler zueinander verhalten und beeinflussen.Nur sinnvoll, wenn über @slider_rest(XX) oder sl_maxSum maximale Gesamtsummen der Schie-beregler vorgeschrieben sind. Option block unterbindet die Überschreitung der Maximalsumme,ohne andere Schieberegler zu beeinflussen. Option modify hingegen stellt die anderen Regler beiÜberschreitung der Maximalsumme automatisch zu gleichen Anteilen zurück.Optionen: block | modify | noneDefault: none

GESS Q. (Stand: März 2018) 139

Page 152: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 15. SliderQ: Schieberegler

Enthaltung: sl_unspecified_button_checked Anzugeben ist der Dateiname einer Grafik inkl.Endung für einen markierten Enthaltungs-Button. Um innerhalb einer Frage unterschiedlicheButtons zu benutzen, können mehrere durch Leerzeichen getrennte Dateinamen angegebenwerden. Die Integration erfolgt entsprechend der geschriebenen Labelreihenfolge im GESS Q.Skript. Gibt es mehr Labels als angegebene Grafiken, wird die zuletzt genannte Datei weiterverwendet.Default: button_checked.gif

Enthaltung: sl_unspecified_button_unchecked Anzugeben ist der Dateiname einer Grafik inkl.Endung für einen unmarkierten Enthaltungs-Button. Die Verwendung unterschiedlicher Buttonsinnerhalb einer Frage entspricht sl_unspecified_button_checked.Default: button_unchecked.gif

15.5 Beispielcode

Code für das Beispiel aus Abbildung 15.1:HTML{ numQClass=SliderQ; };OpenNumFormat f1 = 1 2 0 1 0.0 10.0 "Zahl zwischen 0 und 10 eingeben!";

HTML{//veraltet (s.o.): setProperty("sl_image" "gess.gif"); // RegelelementsetProperty("sl_barImage" "gtor.png"); // LeistesetProperty("sl_showValues" "yes"); // Werte anzeigensetProperty("sl_startValues" " 4 5 6 "); // StartwertesetProperty("sl_mode" "block"); // Modus: block};NumQ sl6;Text="Bitte verteilen Sie 20 Punkte auf diese Marken.";Title="

Bisher vergebene Punkte: @slider_sum<br>Übrige Punkte: @slider_rest(20)

";labels=1 "@slider(gess.gif) Marke A" format f12 "@slider(gess.jpg) Marke B" format f13 "@slider(gess.png) Marke C" format f1;assert sl6.1 + sl6.2 + sl6.3 eq 20 "Summe muss 20 ergeben!";

15.6 Grafische Formatierung und Layout

Die Schieberegler reihen sich nahtlos in das Formatierungskonzept der grafischen Buttons ein.Ihr Layout lässt sich daher beliebig über CSS gestalten. Die grundlegende Verfahrensweise istausführlich und exemplarisch in Abschnitt 14.3 beschrieben. Die nötigen CSS-Klassen sind inAbbildung 15.2 dargestellt.

GESS Q. (Stand: März 2018) 140

Page 153: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 15. SliderQ: Schieberegler

Abb. 15.2: CSS-Klassen SliderQ

Optional lassen sich bereits bewegte Schieberegler von denen im Ausgangszustand unterscheiden.Hierzu kann die CSS-Klasse .qslidermoved verwendet werden, z. B.:.qslidermoved{ background:url(/media/@insert(_surveyname)/img.png) no-repeat 50% 50%; }

GESS Q. (Stand: März 2018) 141

Page 154: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 16. QSortable: Die NumQ als Drag & Drop Liste

16 QSortable: Die NumQ als Drag & DropListe

Als QSortable bezeichnen wir die optische Umgestaltung einer oder mehrerer NumQs in Listenmit Drag & Drop Funktion, die zur Bildung von Rangfolgen oder dem einfachen Einsortieren inverschiedene Kategorien genutzt werden können.

Abb. 16.1: Beispiel: NumQs als QSortable

16.1 Skriptsyntax

Von der Idee her werden die NumQ(s) zusammen mit leeren HTML Listendefinitionen <ul> (=Unsortierte Liste) in einem Screen untergebracht. Ein Javascript-Aufruf versteckt die NumQs und befüllt die noch leeren Listen mit deren Labels als bewegliche Items. Die Platzierungder HTML-Listen ist also maßgeblich dafür an welchen Stellen die Listen später auf der Seitedargestellt werden. Die HTML-Syntax einer solchen Liste sähe wie folgt aus und wird anschließenderklärt:<ul type='TARGET|SOURCE' numq='NUMQ' maxitems=NUMBER></ul>

type gibt an, um was für eine Art Liste es sich handelt, gültige Werte sind SOURCE und TARGET.

SOURCE bedeutet, dass es sich um eine Quellliste handelt. Für jedes Label, das in der verknüpftenNumQ definiert wurde, wird ein Element in der Liste erstellt, welches dem Inhalt des Labeltextes(Text, Bilder, Videos etc.) entspricht.

TARGET bezeichnet die Zielliste. Per Drag and Drop in diese Liste gezogene Items werden innerhalbder Liste in eine von 1 an aufsteigende Reihenfolge gebracht. Diese Platznummern werden in der

GESS Q. (Stand: März 2018) 142

Page 155: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 16. QSortable: Die NumQ als Drag & Drop Liste

verknüpften NumQ gespeichert.

numq Hier wird die NumQ definiert, mit der die Liste verknüpft werden soll. Eine NumQ kann gleichzei-tig sowohl mit einer Quell- als auch mit einer Zielliste verknüpft sein. Mehrfache Verknüpfungenals Zielliste machen in der Regel keinen Sinn, da nur die Position des Items gespeichert wird, nichtaber ob es z. B. Position 1 in der finde-ich-gut-Liste oder in der finde-ich-nicht-gut-Listewar.

maxitems gibt an, wie viele Items sich maximal in einer Liste befinden können. Der Wert 0 stehtfür eine unbegrenzte Anzahl.

Aus diesen Definitionen geht hervor, dass NumQs von Quelllisten entsprechend immer ohneEingabezwang angelegt werden müssen, während der Eingabezwang auf der NumQ einer Ziellistefestlegt, wie viele Items tatsächlich einsortiert werden müssen. Funktionell können Items perDrag & Drop nur in allen target-Listen und Ihrer ursprünglichen source-Liste abgelegt werden.Ein Platzhalter deutet beim Bewegen eines Items an, wenn es fallen gelassen werden kann.

Minimalbeispiel für die Anwendung der QSortable:opennumformat rank1_5 = 1 1 0 0 0 5 "Bitte bringen Sie die 5 Items in eine Reihenfolge.";NumQ myNumQ;text="Welches Item gefällt Ihnen am besten?";title="

Items<div><ul type='source' numq='myNumQ' maxitems='0'></ul></div>Ranking<div><ul type='target' numq='myNumQ' maxitems='0'></ul></div>

";labels=1 "Item A" format rank1_52 "Item B" format rank1_53 "Item C" format rank1_54 "Item D" format rank1_55 "Item E" format rank1_5;// assert (num(myNumQ) eq 3) "Es müssen genau 3 Items einsortiert werden";javascript="qSortable.numQ2Sortable();";

Das oben gezeigte Beispiel nutzt eine NumQ gleichzeitig als Quell- und als Zielliste, die unterein-ander dargestellt werden. Es ist keine Information über den Eingabezwang ersichtlich. Je nachEinstellung in defaultnomissing müssten also entweder alle Items einsortiert werden oder nicht.Das auskommentierte assert würde nur unter Aufhebung des allgemeinen Eingabezwangs Sinnmachen und bewirken, dass genau 3 Items in die Zielliste übernommen werden müssen. Beiaktiviertem Eingabezwang hätten wir hier zwei gegensätzliche Anforderungen, die zusammennicht erfüllbar sind. Der Befragte wäre in einer Sackgasse. Bei alleiniger Verwendung des assertwäre auch maxitems='3' an der Zielliste gebräuchlich, damit der Befragte schon beim Ausfüllender Frage unterstützt wird. Die Darstellung dieses Beispiels sähe je nach Rahmenlayout z. B. wiefolgt aus:

GESS Q. (Stand: März 2018) 143

Page 156: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 16. QSortable: Die NumQ als Drag & Drop Liste

Abb. 16.2: QSortable Minimalbeispiel

16.2 Einstellungen

Derzeit gibt es für die QSortable einen Fehlertext ( qSortable.errorMsg ), der erscheint wennversucht wird Ziellisten mit mehr Items zu befüllen als vorgesehen ist und Möglichkeiten dieDarstellung über CSS zu modifizieren. Der Fehlertext kann direkt vor dem Aufruf der Javascript-Funktion geändert werden:javascript="

qSortable.errorMsg = 'Sie können maximal 3 Items in die Zielfläche legen.';qSortable.targetOnly = true;qSortable.numQ2Sortable();

";

Mit dem Parameter qSortable.targetOnly lässt sich festlegen, ob die Items einer Quelllisteauch in eine andere Quellliste oder nur in die Zielliste einsortiert werden dürfen. (Voreinstellung:nur in die Zielliste)

Bei mehrsprachigen Studien ist darauf zu achten, dass Javascript-Sektionen nicht bei der Über-setzung berücksichtigt werden. Hier lässt sich mit @insert() arbeiten, um den Fehlertext auseiner Quelle zu beziehen.

Das Layout der QSortable lässt sich mit CSS anpassen. Über folgende CSS-Klassen sind dieBestandteile der Darstellung selektierbar:

GESS Q. (Stand: März 2018) 144

Page 157: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 16. QSortable: Die NumQ als Drag & Drop Liste

Abb. 16.3: QSortable CSS Layout

Einige Beispiele zur Verdeutlichung:css="

.connectedSortable { width:400px } /* Listenbreite 400 Pixel */

.connectedSortable li { width:380px } /* Itembreite 380 Pixel */

.connectedSortable[type=target]{ } /* betrifft nur Ziellisten */

/* Sortable zu NumQ f1 ohne Platznummern */.connectedSortable[numq=f1] .ui-sort-placeholder{ display:none; }

";

GESS Q. (Stand: März 2018) 145

Page 158: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 17. Datalist-Tool: Performance bei langen Listen

17 Datalist-Tool: Performance bei langenListen

Das Datalist-Tool ist optimal für Abfragen auf sehr langer Listen, z. B. bei Städten oderRadiosendern. Es basiert auf der grafischen NumQ (GNumQ) und einer JSON-Datei, die als Quelleder Daten dient und im text-Ordner der Studie hinterlegt sein muss.

Abb. 17.1: Beispiel: Datalist-Tool

17.1 Skript

Für das Datalist-Tool wird eine GNumQ mit einem offenem Feld pro Label angelegt. Die Anzahlder Labels gibt vor, wie viele Elemente der Liste gewählt werden können. Das OpenNumFormatgibt vor, welche Werte abgespeichert werden können. Dieser Wertebereich muss auch dem

angegebenen Wertebereich der Labels in der JSON Datei entsprechen. Wenn ein Enthaltungscodeim OpenNumFormat existiert, kann eine eigene Angabe übernommen werden. Ist keiner definiert,werden nur die vorgegebenen Werte akzeptiert.opennumformat onf = 1 9 0 0 0 999999997 999999999 "ERR";HTML{ numQClass = "GNumQ"; };NumQ orte;text="Bitte wählen Sie die Gemeinden, in denen Sie leben.";labels=1 "1. Nennung" open format onf2 "2. Nennung" open format onf3 "3. Nennung" open format onf4 "4. Nennung" open format onf5 "5. Nennung" open format onf;datalist = {"file":"gemeindeliste.json"};

GESS Q. (Stand: März 2018) 146

Page 159: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 17. Datalist-Tool: Performance bei langen Listen

17.2 Die JSON-Datei

Grundlegend müssen in der JSON-Datei ein Labelcode und eine Textangabe pro Antwortkategorieangegeben werden. Ein Beispiel:[

{"label":1, "text":"Aach, Baden-Württemberg"},{"label":2, "text":"Aach, Rheinland-Pfalz"},{"label":3, "text":"Aachen"},{"label":4, "text":"Aalen"},{"label":5, "text":"Aarbergen"},{"label":350, "text":"Anrode"},{"label":351, "text":"Ansbach"},{"label":352, "text":"Anschau"},{"label":353, "text":"Antdorf"},{"label":354, "text":"Antrifttal"}

]

Im numerischen Feld der NumQ wird label gespeichert. Dargestellt und im open-Feld der NumQgespeichert wird text aus der JSON-Datei. Die Suche im Datalist-Tool irgnoriert dabei Groß-und Kleinschreibung.

Die JSON-Datei kann um weitere Ausprägungen ergänzt werden. So können zum Beispiel mehrereBezeichnungen zu dem gleichen Ergebnis (Labelcode) führen. Ein Radio- oder Fernsehsender hatmeistens unterschiedliche (lange / kurze) Schreibweisen, die jedoch alle nur dem einen Senderzugeordnet werden. Um weitere Suchparameter hinzuzufügen, werden Attribute oder Attributsetsangelegt.1

attributes - hier werden alle möglichen Schreibweisen und Bezeichnungen in Anführungszeichenzusammen gefasst. Es wird dann statt in text im alternativen Suchfeld suchhilfe gesucht.[{"label":1001,"text":"Antenne Brandenburg, die schönste Musik","attributes": {"suchhilfe":"RBB, rbb, Radio Berlin Brandenburg, Antenne Brandenburg, Antenne BB"

}},{"label":1002,"text":"B5 Aktuell, das Informationsradio des Bayerischen Rundfunks","attributes": {"suchhilfe":"Bayerischer Rundfunk, BR, br, B 5 aktuell, Bayern 5, bayern"

}},

...]

Die Suche findet beliebige Übereinstimmungen innerhalb von suchhilfe . Beispielsweise würdeder Suchbegriff "Berlin Brandenburg" auch das Label 1001 zurückgeben.

1Hinweis zu den folgenden Beispielen: Die Labels sind aus optischen Gründen nicht mehr in einer Zeile dargestellt,sondern auf mehrere verteilt.

GESS Q. (Stand: März 2018) 147

Page 160: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 17. Datalist-Tool: Performance bei langen Listen

attributeSets - auch hier ist mehr als eine Schreibweise gültig, jedoch handelt es sich um einereine Wortanfangssuche. AttributeSets ist logisch gesehen eine Liste mit mehreren Schreibweisen,die in Anführungszeichen gesetzt und durch ein Komma getrennt werden. Tippt ein Befragterden Begriff "radio" in den Suchbereich ein, würde das Label 25602 nicht als Ergebnis zurückgeliefert werden, da keine Schreibweise exakt mit dem Wort "radio" beginnt.[{"label":25602,"text":"ENERGY München ","attributeSets":{"search":["energy münchen, 93.3 hit music only", "nrj radio", "energy radio"]

}},{"label":26626,"text":"96.fm","attributeSets":{"search":["96 fm", "96fm", "96.fm"]

}},

...]

17.3 Einstellbare Parameter

Folgende Parameter können eingestellt werden:opennumformat onf = 1 9 0 0 0 999999997 999999999 "ERR";HTML{ numQClass = "GNumQ"; };NumQ orte;text="Bitte wählen Sie die Gemeinden, in denen Sie leben.";labels=1 "1. Nennung" open format onf2 "2. Nennung" open format onf3 "3. Nennung" open format onf4 "4. Nennung" open format onf5 "5. Nennung" open format onf;datalist={

"file":"gemeindeliste.json","attr":"text","limit":3,"duplicates":false,"txtHead1":"Eingabe:","txtHead2":"Ihre Auswahl:","txtNoResult":"Keine Suchergebnisse!"

};

attr - Suchfeld in der JSON Datei (default ist text)limit - Minimun der eingebenen Zeichen zum Auslösen einer Sucheduplicates - erlaubt / erlaubt nicht die mehrmalige Auswahl eines ElementstxtHead1 - Beschriftung über dem Suchfeld

GESS Q. (Stand: März 2018) 148

Page 161: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 17. Datalist-Tool: Performance bei langen Listen

txtHead2 - Beschriftung über der AuswahllistetxtNoResult - Text bei keinen Suchergebnissen

GESS Q. (Stand: März 2018) 149

Page 162: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 18. PackagingQ: Verpackungskonfigurator

18 PackagingQ: Verpackungskonfigurator

18.1 Allgemeines

Abb. 18.1: Verpackungskonfigurator

Mit dem Verpackungskonfigurator bzw. der PackgingQ lassen sich Layouts (z. B. von Verpackun-gen) mit verschiedenen Bildelementen beliebig vom Befragten zusammenstellen, betrachtenund auswählen. Abbildung 18.1 zeigt einen beispielhaften Anwendungsfall. In der folgendenBeschreibung werden die Funktionalitäten und Möglichkeiten der Darstellung erläutert. Hierbeiist häufig die Rede von Gruppen. Eine Gruppe ist immer eine bestimmte Anzahl gleichartigerBildelemente von denen genau eines ausgewählt werden kann. Die beispielhafte Abbildung zeigtvier Gruppen: Das grundsätzliche Aussehen der Verpackung, farbige Schriftzüge »NEU«, weißeSchriftzüge »Edelbitter« und das Bio-Siegel.

18.2 Voraussetzungen für die Verwendung

Um die PackagingQ zu verwenden, sollte die GESS Javascript Bibliothek gesstmpl.js im Templateeingebunden werden, siehe Abschnitt 14.1.6. Diese ist für Fading-Effekte notwendig. Außerdemmüssen die zu verwendenden Bilder im Mediapfad der zugehörigen Umfrage (./media/PROJEKTNAME/) hinterlegt werden. Alle Bilder müssen die gleiche Größe und, abgesehen von der unterstenBildebene, transparente Hintergründe besitzen. Transparenz gibt es z. B. bei den Bildformaten.png und .gif.

18.3 PackagingQ

Die PackagingQ ist eine Alternative zur MultiQ und kann an deren Stelle mit folgender Skriptan-weisung verwendet werden:

HTML{ multiQClass = PackagingQ; };

GESS Q. (Stand: März 2018) 150

Page 163: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 18. PackagingQ: Verpackungskonfigurator

Die nun beschriebenen Funktionalitäten werden zum besseren Verständnis im abschließendenBeispielcode demonstriert.

18.4 Einstellbare Parameter

Sämtliche Einstellungen der PackagingQ werden mit Hilfe des setProperty() Mechanismus vorge-nommen, siehe auch Abschnitt 14.2.2. Die Parameter beginnen mit dem Kürzel pg_ und lassensich in drei Kategorien unterteilen:

• Bildfläche / Korpus

• Gruppierungseinstellungen

• Sichtbarkeitsmenü (optional)

18.4.1 Bildfläche / Korpus

Mit den folgenden Parametern lassen sich Breite, Höhe, Hintergrund und Abstände zur zentralenAnzeigefläche einstellen.

pg_width Breite der Bildfläche. Anzugeben als ganzzahliger Wert in Pixel.Default: 300

pg_height Höhe der Bildfläche. Anzugeben als ganzzahliger Wert in Pixel.Default: 300

pg_corpus Hintergrundbild / Grundkorpus. Optional anzugeben als Dateiname mit Endung.Default:

pg_corpus_padding Abstand zwischen Bildfläche und den umgebenden Gruppen. Anzugeben alsganzzahliger Wert in Pixel.Default: 10

18.4.2 Gruppierungsoptionen

Mit den folgenden Parametern lässt sich einstellen, in welchen Gruppen, wo und ob die Labelsum die zentrale Anzeigefläche dargestellt werden sollen.

pg_grouping fasst die Label der Frage in Gruppen zusammen. Angenommen es gibt neun Label unddie Angabe »6 3«. Nun sind unabhängig von den Labelcodes die ersten sechs angegebenen Labelals Gruppe 1 definiert und die letzten drei angegebenen Label als Gruppe 2. Gibt es überschüssigeLabel werden diese automatisch in einer neuen, letzten Gruppe mit Defaulteinstellungen (linksund sichtbar) angelegt.Optionen: Leerzeichen-getrennte, ganzzahlige WerteDefault: Eine Gruppe mit allen Labels und Defaulteinstellungen

GESS Q. (Stand: März 2018) 151

Page 164: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 18. PackagingQ: Verpackungskonfigurator

pq_orientations Ausrichtung der Gruppen. Anzugeben sind durch Leerzeichen getrennte Kombi-nationen aus den Optionen. Die erste Angabe bezieht sich auf die 1. Gruppe, die zweite Angabeauf die zweite Gruppe und so weiter. Gibt es mehr Gruppen als Angaben, wird left als Defaultverwendet.Optionen: top | bottom | left | rightDefault: left für alle Gruppen

pg_fading stellt Fadingeffekte an/aus.Optionen: Ganzzahliger Wert für die Fading-Zeit in msDefault: 0

pg_visibility stellt die Sichtbarkeit der Gruppen an/aus. Anzugeben sind durch Leerzeichengetrennte Kombinationen aus den Optionen. Die erste Angabe bezieht sich auf die 1. Gruppe,die zweite Angabe auf die zweite Gruppe und so weiter. Für überschüssige Gruppen wird dieAngabe visible verwendet.Optionen: visible | hiddenDefault: visible für alle Gruppen

18.4.3 Einstellungen des Sichtbarkeitsmenüs

Optional kann ein Sichtbarkeitsmenü angezeigt werden. Ist es aktiviert, wird für jede Gruppeein anklickbares Feld angezeigt, mit dem die korrespondierende Gruppe ein- und alle anderenGruppen ausgeblendet werden.

pg_visibility_menu stellt das Sichtbarkeitsmenü an/aus.Optionen: yes | noDefault: no

pg_visibility_orientation Positionierung des Sichtbarkeitsmenüs.Optionen: top | bottom | left | rightDefault: top

pg_group_names Texte in den anklickbaren Feldern des Sichtbarkeitsmenüs. Anzugeben sind durchLeerzeichen getrennte Begriffe je Gruppe. Gibt es mehr Gruppen als Begriffe wird als Default»Gruppe <x>« verwendet, wobei x die Gruppennummer darstellt.Default: Gruppe1 Gruppe2 ...

18.4.4 Korrespondenz Label - Grafik

Damit die Anbindung der Label an die entsprechenden Bilder definiert werden kann, steht imLabeltext das Schlüsselwort @target(<NAME>) zur Verfügung, wobei NAME der Dateinamedes im Mediapfad der Umfrage hinterlegten Bilds mit Dateiendung ist. Nun zeigt das Label(unabhängig vom Inhalt) beim Anklicken das Zielbild an. Ansonsten kann im Labeltext beliebigmit oder ohne HTML gearbeitet werden. So lässt sich zum Beispiel auch problemlos eine kleineGrafikvorschau einbinden.

GESS Q. (Stand: März 2018) 152

Page 165: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 18. PackagingQ: Verpackungskonfigurator

18.4.5 Randomisierung und Filter

An die Label lassen sich beliebig Filter und Randomisierungen anfügen. Einzige Besonderheit ist,dass sich die Randomisierungen nur auf die Label innerhalb der Gruppen beziehen. Es wird alsonicht gruppenübergreifend gemischt.

18.4.6 Optische Gestaltung mit CSS

Es gibt drei unterschiedliche Stellen mit CSS-Klassen 1 innerhalb der PackagingQ, über diebeliebige optische Gestaltungen vorgenommen werden können:

• (1) für die einzelnen Gruppen

• (2) für die einzelnen Orientierungen

• (3) für das Sichtbarkeitsmenü

Die Namen der Klassen werden wie folgt gebildet:

• (1) <FRAGE>_labels_group_<X> mit FRAGE als Fragenamen und X als Gruppennumme-rierung (gezählt ab 1).

• (2) <FRAGE>_<OR>_groups mit FRAGE als Fragenamen und OR als Orientierung left,right, top oder bottom.

• (3) <FRAGE>_menu und <FRAGE>_menu_item mit FRAGE als Fragenamen.

CSS Gestaltungen können entweder ins Template oder bei ausgeschaltetem TextersatzenableTextReplace=no; direkt in den Text- oder Titelbereich der entsprechenden Frage geschrie-ben werden. Letzteres ist beispielhaft im folgenden Beispielcode aufgeführt.

18.5 Beispielcode

Code für das Beispiel aus Abbildung 18.1. Der Mediapfad wurde aus Platzgründen abgekürzt:HTML{setProperty("pg_grouping" "3 4 3 3");setProperty("pg_orientations" "left top right bottom");// setProperty("pg_visibility" "visible hidden hidden hidden");setProperty("pg_corpus" "corpus0.png");setProperty("pg_corpus_padding" "25");setProperty("pg_width" "500");setProperty("pg_height" "399");setProperty("pg_fading" "500");// setProperty("pg_group_names" "Verpackung Edelbitter NEU Siegel");// setProperty("pg_visibility_menu" "yes");// setProperty("pg_visibility_menu_orientation" "top");};

1Informationen zu CSS-Klassen: http://de.selfhtml.org/css/

GESS Q. (Stand: März 2018) 153

Page 166: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 18. PackagingQ: Verpackungskonfigurator

enableTextReplace=no;

MultiQ m1;text="Bitte benutzen Sie die PackagingGESS Q.<style type='text/css'>.m1_labels_group_1, .m1_labels_group_2, .m1_labels_group_3,.m1_labels_group_4, .m1_menu_item{margin:1px; border:1px solid #000000; background:#888888;}.m1_menu_item{float:left;width:100px; padding:5px; background:#eeeeee;}.m1_menu{display:inline-block;}// .m1_left_groups{vertical-align:top;}// .m1_right_groups{vertical-align:bottom;}</style>";labels=51 "@target(corp.png) <img width='125px' src='./(...)/corp.png'>" random52 "@target(corp1.png) <img width='125px' src='./(...)/corp1.png'>" random53 "@target(corp2.png) <img width='125px' src='./(...)/corp2.png'>" random1 "@target(text1.png) <img width='125px' src='./(...)/text1.png'>" random2 "@target(text2.png) <img width='125px' src='./(...)/text2.png'>" random3 "@target(text3.png) <img width='125px' src='./(...)/text3.png'>" random4 "@target(text4.png) <img width='125px' src='./(...)/text4.png'>" random21 "@target(neu1.png) <img width='125px' src='./(...)/neu1.png'>" random22 "@target(neu2.png) <img width='125px' src='./(...)/neu2.png'>" random23 "@target(neu3.png) <img width='125px' src='./(...)/neu3.png'>" random32 "@target(bio2.png) <img width='125px' src='./(...)/bio2.png'>" random33 "@target(bio3.png) <img width='125px' src='./(...)/bio3.png'>" random34 "@target(bio4.png) <img width='125px' src='./(...)/bio4.png'>" random;

GESS Q. (Stand: März 2018) 154

Page 167: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 19. Tastatureingabe

19 Tastatureingabe

GESS Q. verfügt über einen Tastatureingabemodus, der das schnelle Digitalisieren von Papier-fragebögen ermöglicht oder auch z.B. im Rahmen des GESS Cati Verwendung finden könnte.

Der Skriptparameter EnableKeyboard aktiviert die Tastatureingabemodus. Durch Drücken derTAB-Taste wird der aktuelle Eingabebereich zum nächsten verschoben. Alternativ kann manauch mit der linken Maustaste an beliebige Stellen springen. Geschlossene Antworten lassensich über Zahleneingaben selektieren und deselektieren. Hierbei sind die jeweiligen Labelcodeseinzugeben, die während der Tastatureingabe erscheinen. Gibt es Labelcodes mit unterschiedlicherStellenanzahl, werden die kleinen Zahlen automatisch mit führenden Nullen versehen. Diejeweils aktuelle Eingabe ist zur Kontrolle in einem hervorgehobenen Eingabefeld dargestellt. FürTexteingaben ist hingegen die gesamte Tastatur nutzbar. Schließlich simuliert die ENTER-Tasteden Klick auf den Weiterbutton.

Das Feld für die numerisch Eingabe ist über CSS Klasse keyboard-input-info frei gestaltbar.Gleiches gilt für die Optik des aktuellen Eingabefokus keyboard-focus.

Damit die Tastatureingabe auch individuelle Screens bedienen kann, sind bestimmte Rahmen-bedingungen bei deren Erstellung einzuhalten. Hiermit sind CSS Klassifizierungen und HTMLAttribute gemeint. Jede Frage muss sich innerhalb eines beliebigen HTML Elements befinden,welches über die zugehörige CSS Klasse (z.B. singleq) verfügt. Inhaltlich hängen die weiterenRahmenbedingungen vom Fragetyp ab. Das folgende Schema zeigt in CSS Selektor-ähnlicherSyntax, welche Klassen und Attribute jeweils von Bedeutung sind.

.singleq, .multiq.qtable .qbuttoncell[value=LABELCODE].qtable .qvlabelcellinput[type=text]

.openqtextareainput[type=text]

.numq.numinputinput[type=text]

.singlegridq, .multigridq.qtable .qitemtextcell[item=ITEMCODE].qtable .qbuttoncell[item=ITEMCODE][value=LABELCODE].qtable .qvlabelcellinput[type=text]

Ob sich z.B. hinter qtable wirklich eine Tabelle verbirgt ist nicht entscheidend. Es kann sich auchum ein <div> handeln. Gleiches gilt für die Elemente qbuttoncell, welche aber zusätzlich überein Attribut value und in Grids ein weiteres item verfügen müssen, die den Label- bzw. Itemcodedes Skripts als Werte enthalten müssen. Die Tastatureingabe benötigt diese Informationen, um

GESS Q. (Stand: März 2018) 155

Page 168: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 19. Tastatureingabe

die strukturellen Zusammenhänge der Ausgabe korrekt zu erfassen. qvlabelcell enthält dendargestellen Labelcode, der erforderlich, damit Zahleneingaben validiert und entschieden werdenkann, ob die Eingabe vollständig ist. Die übrigen Selektoren input[type=text] sowie textareastehen für offene Eingabefelder.

GESS Q. (Stand: März 2018) 156

Page 169: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 20. Weitere grafische Komponenten

20 Weitere grafische Komponenten

20.1 Allgemeines

Versierte Benutzer können im text, im title und in den labels jeder Frage Skripte und HTMLeinfügen und so ihrer Kreativität freien Lauf lassen. Dieser Abschnitt beschäftigt sich mitunterschiedlichsten Komponenten, die Anregungen geben können oder dabei helfen die Darstellunginnerhalb einer Onlineumfrage auch ohne tiefgreifende Kenntnisse in HTML o.Ä. den Wünschenentsprechend anzupassen. Da das Internet ein sich ständig weiterentwickelndes Medium ist,können wir an dieser Stelle nur eine Auswahl an Möglichkeiten anbieten - ohne Gewährleistung,dass diese unbegrenzt lange den aktuellen Stardards der Webtechnologie entsprechen.Wir sind jederzeit ansprechbar und helfen gern bei der Umsetzung individuellerVorstellungen.

20.2 Bildvorschau mit Thumbnails

Abb. 20.1: Bildvorschau mit Thumbnails

In der HTML-Welt versteht man unter Thumbnails kleine Vorschaubilder, die beim Anklickenmit der Maus eine größere Bildansicht öffnen. Wie in Abbildung 20.1 zu sehen, öffnet unsereVariante ein halbtransparentes Layer, welches beim Klick auf das große Bild wieder geschlossenwird. Es füllt die vollständige Bildschirmansicht aus und bleibt auch beim Scrollen des Bildschir-mausschnitts immer im Vordergrund. Das Bild wird in Originalgröße angezeigt. Maximal jedochso groß, wie es die sichtbare Browserfläche zulässt.

20.2.1 Voraussetzungen für die Verwendung

Um die Thumbnails zu benutzen, müssen folgende Voraussetzungen erfüllt sein:

• Im Template muss die GESS Javascript Bibliothek gesstmpl.js eingebunden sein1

• Bild (klein) im Mediapfad der Umfrage

• Bild (groß) im Mediapfad der Umfrage1siehe Abschnitt 14.1.6

GESS Q. (Stand: März 2018) 157

Page 170: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 20. Weitere grafische Komponenten

20.2.2 Beispiel-Code: Thumbnail

Im Skript muss zuerst das Anzeige-Layer initialisiert werden. Dies geschieht einmalig im Titelder jeweiligen Frage mit dem Aufruf der Javascript-Funktion insertLayer().

Mit der Funktion addImage('SMALL', 'BIG') können die kleinen Vorschaubilder anschließend inallen Textbereichen eingefügt werden. SMALL und BIG stehen für die Pfade zu den Bildern.

Der Code zu Abbildung 20.1 sieht folgendermaßen aus:TextQ s1;Text="(1) Bild als Thumbnail mit Vorschau (Javascript)";Title="Zum Vergrößern der Ansicht bitte auf das Bild klicken.<br><script type='text/javascript'>insertLayer();addImage('./media/@insert(_surveyname)/001s.jpg','./media/@insert(_surveyname)/001b.jpg');addImage('./media/@insert(_surveyname)/002s.jpg','./media/@insert(_surveyname)/002b.jpg');addImage('./media/@insert(_surveyname)/003s.jpg','./media/@insert(_surveyname)/003b.jpg');addImage('./media/@insert(_surveyname)/004s.jpg','./media/@insert(_surveyname)/004b.jpg');addImage('./media/@insert(_surveyname)/005s.jpg','./media/@insert(_surveyname)/005b.jpg');</script>";

20.3 Integration von Videos

Dieser Abschnitt befasst sich mit der Integration von Videos in die Umfrage. Die technischenVoraussetzungen, die Vielfalt der Browser und mobile Geräte machen einem das Leben schwer.Spätestens seit dem Aufkommen von internetfähigen Mobilgeräten wie Smartphones und Tabletskann die Wahl nicht mehr auf lange Zeit verbreitete Flash-Player fallen, da diese auf solchenGeräten grundsätzlich nicht unterstützt werden. GESS Q. bietet eine simple Schnittstelle, dieaktuelle HTML5 Standards mit einer Fallback- Lösung zu Flash einsetzt.

Im Rahmen der GESS Q. Android sei auf den integrierten Mediaplayer der App verwiesen, derzum Abspielen von Videos bestens geeignet ist.

20.3.1 Formate und Skriptsyntax

Die flexible Lösung von GESS Q. erfordert die Bereitstellung von Videos in drei Formaten:

• MP4 (.mp4)

• OGV (.ogv)

GESS Q. (Stand: März 2018) 158

Page 171: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 20. Weitere grafische Komponenten

• WEBM (.webm)

Sollten nicht alle dieser Formate zur Verfügung stehen empfehlen wir das kostenlose ProgrammFreemake Video Converter2, das leicht zu bedienen ist, gezielt HTML5 als Zielformat anbietetund aus einer Vielzahl von Ausgangsformaten genau die zuvor genannten Formate produziert.

Um das Video nun in die Umfrage zu integrieren, müssen die drei Formate gleichnamig mit kleingeschriebenen Dateiendungen im Medienverzeichnis abgelegt werden. Eine minimale Notationzur Einbindung im GESS Q. Skript sähe wie folgt aus:TextQ video;text="Video Demo";title="<div id='example_video'></div>";javascript="

QDot.videoplayer.video.path = './media/@insert(_surveyname)';QDot.videoplayer.video.name = 'big_buck_bunny';QDot.videoplayer.create($('#example_video'));

";

Hier wird im Titel eine HTML Fläche (div) mit einer ID definiert. In dieser soll anschließenddas Video eingesetzt werden. Im Bereich javascript werden anschließend Pfad und Videoname(ohne Endung) gesetzt, ehe das eigentliche Video erstellt wird - fertig!

20.3.2 Konfiguration des Players

Das Video startet voreingestellt mit vollständiger Steuerleiste, maximaler Lautstärke und inHTML5 Browsern wird das Kontextmenü (Rechtsklick) deaktiviert. Über die Parametern für Pfadund Name des Videos hinaus, lässt sich auch der Player in Maßen weiter konfigurieren. Vorab seiallerdings gesagt, dass von einem zu restriktiven Vorgehen abgesehen werden sollte, wenn nichtzuvor bekannt ist, mit welcher technischer Ausstattung (Browser, PC/Mobile) die Teilnehmerdas Interview betreten. Mobile Geräte blockieren z. B. jeglichen Versuch Videos automatischabzuspielen. Hintergrund davon ist die Usability für den Anwender. Er soll beim Surfen stetsselbst die Kontrolle behalten und sein Datenvolumen nicht durch selbsttätig ablaufende Videosstrapaziert werden. Das Entfernen des Play/Pause Buttons zugunsten eines Autostarts führt hiersogar zur Unbrauchbarkeit des Videos. Auf älteren Mobilgeräten kann unter Umständen auchauf den internen Mediaplayer zurückgegriffen werden, dessen Kontrollelemente (Play/Pause/Fort-schrittsbalken...) sich gar nicht modifizieren lassen. Man sollte sich grundsätzlich keinen Illusionenhingeben, den Befragten im Zusammenhang mit Videos in einen bestimmten Ablauf zu zwängen.Es gibt hier keine 100% Lösungen und nicht zuletzt ist jedes im Web veröffentlichte Medium auchherunterladbar und offline nach Belieben zu nutzen. Dennoch können einige Konfigurationen amPlayer durchaus sinnvoll sein. Einmal zusammengefasst, welche Möglichkeiten vorgesehen sind:QDot.videoplayer.video.path = './media/@insert(_surveyname)';QDot.videoplayer.video.name = 'big_buck_bunny';QDot.videoplayer.video.width = 640;QDot.videoplayer.video.height = 360;QDot.videoplayer.features = ['playpause','progress','current',

'duration','volume','fullscreen'];QDot.videoplayer.settings = function(player){

2http://www.freemake.com/de/

GESS Q. (Stand: März 2018) 159

Page 172: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 20. Weitere grafische Komponenten

player.play(); // AUTOSTART$(player).bind('ended', function(){ $('form')[0].submit(); }); // AUTOSUBMIT$(player).bind('ended', function(){ $('#continuebutton').show(); }); //

CONTINUEBUTTON}QDot.videoplayer.create($('#example_video'));

Die Angaben von Breite und Höhe des Players erfolgen in Pixel. features enthält ein Listingüber die Inhalte der Steuerleiste. Der Reihe nach Play/Pause Button, Fortschrittsleiste, aktuelleZeit, Gesamtdauer, Lautstärkeregler und Vollbild Button. settings definiert Funktionen undEventhandler, die dem Player nach Erstellung mitgegeben werden. Im Beispiel startet die 1. Zeiledas Video automatisch (sofern möglich), die 2. Zeile löst am Ende des Videos einen imaginärenKlick auf ’Weiter’ aus, um zum nächsten Screen zu gelangen, wohingegen Zeile 3 nur einen zuvorper CSS unsichtbar gemachten Weiterbutton wieder sichtbar macht.

Beispiele und Ideen:

Testvideo zum Screening Über ein simples Testvideo kann geprüft werden, ob der Teilnehmerin der Lage ist, Bild und Ton wahrzunehmen. Das Video sollte eine Prüfziffer darstellenund parallel eine weitere Prüfziffer akustisch mitteilen. Der Teilnehmer sollte in der Lagesein beide in numerische Eingabefelder einzutragen.

Fortschrittsleiste + AutoSubmit Ohne Fortschrittsleiste kann zeitlich nicht im Video gesprun-gen werden. So wird erzwungen, dass das Video vollständig angesehen werden muss, ehe esüber die AutoSubmit Funktion im Interview weiter geht. Hierbei ist vorausgesetzt, dassder Screen keinen Weiterbutton enthält. Statt des AutoSubmits kann ein zuvor per CSSversteckter Weiterbutton auch am Ende des Videos wieder sichtbar gemacht werden.

AutoPlay startet das Video automatisch. Wenn Mobilgeräte erwartet werden, niemals ohneStart/Pause Button verwenden, da diese Funktion von ihnen unterbunden wird.

Lautstärkeregelerung verstecken , damit das Video selbst bei 100% Lautstärke bleibt. Beugtder Fehlerquelle vor, dass an dieser Stelle (versehentlich) der Ton abgedreht wird. Diegenerelle Systemlautstärke kann nicht beeinflusst werden.

20.4 Integration von Audio

Die Audioeinbindung in GESS Q. funktioniert analog zur Videoeinbindung, dessen Kapiteldetaillierte Ausführung zu den hier kurz gefassten Informationen entnommen werden können.

20.4.1 Formate und Skriptsyntax

Einziger Unterschied zur Videoeinbindung ist hier, dass nur zwei Formate benötigt werden:

• MP3 (.mp3)

• OGG (.ogg)

GESS Q. (Stand: März 2018) 160

Page 173: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 20. Weitere grafische Komponenten

Sollten nicht alle dieser Formate zur Verfügung stehen empfehlen wir das kostenlose ProgrammFreemake Audio Converter3, das leicht zu bedienen ist und aus einer Vielzahl von Ausgangsfor-maten die zuvor genannten Formate produzieren kann.

Analog zum Video: Das minimale Skript mit einer AudiodateiTextQ audio;text="Audio Demo";title="<div id='example_audio'></div>";javascript="

QDot.audioplayer.audio.path = './media/@insert(_surveyname)';QDot.audioplayer.audio.name = 'bing';QDot.audioplayer.create($('#example_audio'));

";

20.4.2 Konfiguration des Players

Auch hier sei auf die detaillierten Ausführung zur Videointegration verwiesen. Die annäherndidentischen Parameter für den Audioplayer lauten wie folgt:QDot.audioplayer.audio.path = './media/@insert(_surveyname)';QDot.audioplayer.audio.name = 'bing';QDot.audioplayer.audio.width = 300;QDot.audioplayer.audio.height = 30;QDot.audioplayer.features = ['playpause','progress','current','duration','volume'];

QDot.audioplayer.settings = function(player){player.play(); // AUTOSTART$(player).bind('ended', function(){ $('form')[0].submit(); }); // AUTOSUBMIT$(player).bind('ended', function(){ $('#continuebutton').show(); }); //

CONTINUEBUTTON}QDot.audioplayer.create($('#example_audio'));

20.5 Dynamischen Ein/Ausblenden von Fragen in Screens

Bei bestimmten Fragestellungen kann es innerhalb eines Screens sinnvoll sein, andere Fragen nurbedingt einzublenden. Wird der Teilnehmer gefragt, ob er berufstätig ist, soll eine präzisierendeFolgefrage nur dann angezeigt werden, wenn er auf ’Ja’ klickt, siehe auch Abb. Abbildung 20.2.

3http://www.freemake.com/de/

GESS Q. (Stand: März 2018) 161

Page 174: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 20. Weitere grafische Komponenten

Abb. 20.2: Dynamisches Ein-/Ausblenden von Fragen

20.5.1 Voraussetzungen für die Verwendung

Um das dynamische Ein/Ausblenden zu benutzen, müssen folgende Voraussetzungen erfüllt sein:

• Im Template muss die GESS Javascript Bibliothek gesstmpl.js eingebunden sein4

20.5.2 Beispiel-Code: Ein-/Ausblenden

Im Skript muss an zwei Stellen Code eingefügt werden:

• Anlegen von zwei Arrays (FrageIDs und LabelIDs) und Definition der Startaktion beimLaden der Seite

• Hinzufügen des Javascript-Handlers an die aktionsauslösende Frage

Eines der Arrays soll die Namen der Frage(n) beinhalten, die dynamisch ein- oder ausgeblendetwerden sollen. Das andere die LabelIDs der aktionsauslösenden Frage, bei welchen die gewünschtenFragen eingeblendet werden.

Im Beispiel unten enthält das Array qsToHide (1) die Fragen f4 und f5. Die Namen der Arrayskönnen frei vergeben und die Inhalte der kommaseparierten Liste beliebig erweitert werden. DasArray hideLabels (1) enthält die LabelIDs 1 (Ja) und 3 (Vielleicht).

Der Javascript-Handler (2) an Frage f3 wird bei jedem Klick auf ein Label von f3 ausgeführt. DieFunktion hideq(...) erledigt den Rest. Ihr muss an erster Stelle in den Klammern der Nameder aktionsauslösenden Frage übergeben werden. Nach dem Komma an zweiter Stelle steht derName des Arrays mit den IDs der auszublendenden Fragen und an dritter Stelle das Array mitden LabelIDs.

Nun funktioniert das dynamische Ein- und Ausblenden bereits bei Mausklicks auf die Labels.Direkt nach dem Laden der Seite (z. B. nach Fehlerfall oder Zurücknavigation) hat der Benutzerallerdings noch nichts angeklickt. Deshalb startet (3) die Darstellungsfunktion hideq(...) beimLaden der Seite einmal explizit.

4siehe Abschnitt 14.1.6

GESS Q. (Stand: März 2018) 162

Page 175: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 20. Weitere grafische Komponenten

Der Code zu Abbildung 20.2 sieht folgendermaßen aus:SingleQ f3;text="Dies ist eine unsinnige Beispielfrage...";labels=1 "Ja"2 "Nein"3 "Vielleicht";jsHandler="hideq('f3', qsToHide, hideLabels)"; // (2)javascript="

qsToHide = new Array('f4', 'f5'); // (1)hideLabels = new Array('1', '3'); // (1)$(document).ready( function(){ hideq('f3', qsToHide, hideLabels); } ); // (3)

";

SingleQ f4;title="blabla";labels=1 "1"2 "2"3 "3";

OpenQ f5;title ="Wenn ja oder vielleicht, warum?";

screen scr = column(f3 f4 f5);

20.6 Tachistoskopische Fragevarianten

Das klassische Tachistoskop zeigt dem Befragten für einen kurzen Zeitraum einen Text, ein Bildoder Ähnliches und lässt es gleich wieder verschwinden. Anschließend können die besondersauffälligen Elemente oder Blickfänge abgefragt werden. Diese Option stellt GESS Q. mit Variante2 bereit, siehe Abbildung 20.4. Zusätzlich ist es möglich den Befragten innerhalb eines bestimmtenZeitraums Antworten abzuverlangen (Variante 1), siehe Abbildung 20.3.

20.6.1 Voraussetzungen für die Verwendung

Um die Tachistoskop-Varianten in einem beliebigen Fragetyp zu benutzen, müssen folgendeVoraussetzungen erfüllt sein:

• Im Template muss die GESS Javascript Bibliothek gesstmpl.js eingebunden sein5

• Die Tachistoskop-Varianten sind derzeit nicht mehrfach in Screens verwendbar.

5siehe Abschnitt 14.1.6

GESS Q. (Stand: März 2018) 163

Page 176: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 20. Weitere grafische Komponenten

20.6.2 Tachistoskop Variante 1 (Timer)

Abb. 20.3: Tachistoskop Variante 1

Grundsätzlich muss im Skript lediglich im Text oder im Titel folgender Javascript-Code geschrie-ben werden:defaultnomissing=yes;SingleQ tachisto1;text="<script type='text/javascript'>var qname = 'tachisto1';var input=\"Text, Bild, Video, ...\"+

\"weiter...\";var tVisib = 'visible';var tTime = 10000;var tWait = 1000;var tWidth = 500;var tHeight = 10;var tColor = '#990134';addTachistoCode(qname,input,tVisib,tTime,tWait,tWidth,tHeight,tColor);</script>";labels=1 "Ja, das gefällt mir"2 "Nein, das möchte ich nicht";javascript="hide_labels('tachisto1')";defaultnomissing=no;

Der Javascript-Code besteht aus zwei Teilen. Zuerst werden Parameter eingestellt (im Beispielbeginnend mit var) und werden anschließend der Funktion addTachistoCode(...) übergeben.Die Namen der Parameter sind frei wählbar, müssen jedoch in fest vorgeschriebener Reihenfolgean die Funktion übergeben werden. Die Bedeutung der Parameter wird nun anhand der imBeispiel vergebenen Namen erläutert:

GESS Q. (Stand: März 2018) 164

Page 177: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 20. Weitere grafische Komponenten

qname Der Name der aufrufenden Frage im GESS Q. Skript.

input Der im Tachistoskop darzustellende Inhalt. Soll sich der Inhalt von input über mehrereZeilen erstrecken muss ein Zeilenende mit \"+ und ein neuer Zeilenanfang mit \" gekennzeichnetwerden.

tVisib Stellt ein, ob die Zeit in Form einer kleiner werdenden horizontalen Leiste unter demInhalt dargestellt werden soll.Optionen: visible | hidden.

tTime Zeit in ms, die zur Antwort zur Verfügung stehen.

tWait Zeit in ms, ab wann die Antwortmöglichkeiten sichtbar werden. Hierzu müssen die Ant-wortlabels zuvor mittels der im Beispiel ersichtlichen htmlPostText Anweisung ausgeblendetwerden. Dies übernimmt die Funktion hide_labels(), welche in Hochkommata den Namen derzugehörigen Frage übergeben bekommt.

tWidth Breite der Zeitleiste in Pixel.

tHeight Höhe der Zeitleiste in Pixel.

tColor Farbe der Zeitleiste in Pixel.

Nach Ablauf der Zeit tTime wird automatisch ein Klick auf den Weiterbutton ausgelöst. Sollteder Befragte zu diesem Zeit keine Antwort gegeben haben, soll er i.d.R. auch ohne Antwortzur nächsten Frage weitergeleitet werden. Damit das funktioniert, muss im GESS Q. Skript derParameter defaultnomissing = yes; gestellt sein.

20.6.3 Tachistoskop Variante 2 (klassisch)

Abb. 20.4: Tachistoskop Variante 2 (klassisch)

Auch für das klassische Tachistoskop gilt, dass grundsätzlich nur folgender Javascript-Code inden Text oder Titel einer beliebigen Frage geschrieben werden muss:SingleQ tachisto2;text="

GESS Q. (Stand: März 2018) 165

Page 178: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 20. Weitere grafische Komponenten

<script type='text/javascript'>var qname = 'tachisto2';var input=\"Text, Bild, Video, ...\"+

\"weiter...\";var tTime = 1000;var tWait = 1000;addTachisto2(qname, input, tTime, tWait);</script>";labels=1 "Ich habe auf dem Bild ein Pferd gesehen"2 "Ich habe auf dem Bild einen Esel gesehen";javascript="hide_labels('tachisto2')";

Auch dieser Javascript-Code besteht aus zwei Teilen. Zuerst werden Parameter eingestellt(im Beispiel beginnend mit var) und werden anschließend der Funktion addTachisto2(...)übergeben. Die Namen der Parameter sind frei wählbar, müssen jedoch in fest vorgeschriebenerReihenfolge an die Funktion übergeben werden. Die Bedeutung der Parameter wird nun anhandder im Beispiel vergebenen Namen erläutert:

qname Der Name der aufrufenden Frage im GESS Q. Skript.

input Der im Tachistoskop darzustellende Inhalt. Soll sich der Inhalt von input über mehrereZeilen erstrecken muss ein Zeilenende mit \"+ und ein neuer Zeilenanfang mit \" gekennzeichnetwerden.

tTime Zeit in ms, wie lange der Inhalt angezeigt werden soll.

tWait Zeit in ms, ab wann die Antwortmöglichkeiten sichtbar werden. Hierzu müssen die Antwort-labels zuvor mittels der im Beispiel ersichtlichen htmlPostText Anweisung ausgeblendet werden.Das übernimmt die Funktion hide_labels(), die in Hochkommata den Namen der zugehörigenFrage übergeben bekommt.

20.7 HeatPlotter

Oft sollen Befragte angeben, welche Bereiche sie in einem Bild besonders gut oder schlecht findenoder was ihnen ins Auge sticht. Hierfür bietet GESS Q., zwei unterschiedliche Varianten an.

Mit dem HeatPlotter kann ein Bereich im Bild direkt markiert werden. Per Mausklick könnenso beliebig viele Stellen ausgewählt und als XY-Koordinaten gespeichert werden. Durch denRemove-Button unterhalb des Bildes kann immer die letzte Markierung gelöscht werden.

GESS Q. (Stand: März 2018) 166

Page 179: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 20. Weitere grafische Komponenten

Abb. 20.5: HeatPlotter: Bildpunkte markieren

OpenQ f1;text="Bitte markieren Sie die schönen Stellen";title="<img id='maus' src='./media/@insert(_surveyname)/maus.png' />";coordinates(10);assert (numCoords(f1) ge 3 and numCoords(f1) le 10) "3-10 Markierungen";javascript = "

QDot.heatplotter.create('f1', 'maus');QDot.heatplotter.maxCoords = 10;// QDot.heatplotter.indicator = './media/@insert(_surveyname)/kreis.png';// QDot.heatplotter.removeButtonTxt = 'Remove last';

// QDot.heatplotter.drawImages('@insert(f0)', './@insert(_surveyname)/kreis.png');// QDot.heatplotter.restrict = function(coords){// coords.y = 0;// return coords;// // return undefined; // wenn Klick verworfen werden soll// };

";

Für die Umsetzung benutzt GESS Q. intern eine OpenQ, deren Eingabefeld versteckt wird und diefür jeden Klick auf das Bild ein Koordinatenpaare speichert. Im title-Feld wird das gewünschteBild als HTML <img> eingelesen. Dabei ist es wichtig, eine entsprechende ID zu vergeben (hier z.B. id='maus' ).

Mit der Anweisung coordinates prüft der Server die Koordinatensyntax im versteckten Einga-befeld. Außerdem begrenzt der Parameter NUM die Klickfunktion auf den angegebenen Wert.Dadurch kann GESS Q. fehlerhafte Angaben, wie z. B. Texteingaben, aussortieren. Der Inhaltdes offenen Feldes wird in diesem Fall gelöscht und eine Fehlermeldung ausgegeben.

Coordinates(NUM);

Für Bedingungen (z. B. Asserts) steht die neue Funktion numCoords zur Verfügung, Mit demFragenamen als Parameter liefert sie zurück, wie viele Koordinaten angegeben wurden.

GESS Q. (Stand: März 2018) 167

Page 180: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 20. Weitere grafische Komponenten

numCoords(OPENQ)

Mit xCoord wird der X-Wert eines bestimmten Punktes zurückgeliefert. Der Index weist denentsprechenden Punkt zu (1 = 1. Punkt, 2= 2. Punkt, ... ).

xCoord(OPENQ, Index)

Mit yCoord wird der Y-Wert eines bestimmten Punktes zurückgeliefert. Der Index weist denentsprechenden Punkt zu (1 = 1. Punkt, 2= 2. Punkt, ... ).

yCoord(OPENQ, Index)

Mit der Javascript-Anweisung QDot.heatplotter.create generiert GESS Q. den HeatPlotterund versteckt das offene Feld, in dem die XY-Koordinaten gespeichert werden.

QDot.heatplotter.create('OPENQ', 'Bild-ID');

Die zweite Javascript-Anweisung QDot.heatplotter.maxCoords legt die maximal mögliche Anzahlan Markierungen fest.

QDot.heatplotter.maxCoords = NUM;

Der HeatPlotter-Mechanismus kennt noch zwei optionale Parameter.QDot.heatplotter.removeButtonTxt ersetzt den voreingestellten Text des Remove-Buttons (Letz-te Markierung entfernen).

QDot.heatplotter.removeButtonTxt = 'TEXT';

Außerdem kann das Bild für die Markierung der gewählten Stelle durch eine andere Vorgabe fürQDot.heatplotter.indicator geändert werden. Die Größe des Bildes ist beliebig. Voreingestelltist das Fadenkreuz (16x16px).

QDot.heatplotter.indicator = 'MEDIAPFAD';

Des Weiteren können mit QDot.heatplotter.drawImages fixe Elemente (Punkte aus vorherigenHeatPlotter-Fragen o.ä.) eingezeichnet werden. Zwischen die ersten Hochkommata kann mit@insert() der Wert einer Variablen eingeblendet werden. In den zweiten Hochkommata steht derdazugehörige Mediapfad des Indicators. Diese Einblendung beeiflusst die übrigen Angaben (z. B.maximale Anzahl der Markierungen) nicht.QDot.heatplotter.drawImages('@insert(VARIABLE)', './images/kreis.png');

Mit der CSS-Klasse heatplotter-drawn-image lässt sich z.B. steuern, ob die gesetzten Markie-rungen vor oder hinter dem Zielbild eingezeichnet wird. Wenn diese vor dem Zielbild liegt, istdie Fläche für weitere Punkte belegt und nicht erneut anklickbar. Bei einer Einzeichnung hinter

GESS Q. (Stand: März 2018) 168

Page 181: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 20. Weitere grafische Komponenten

dem Zielbild ist zu beachten, dass das Bild über eine Transparenz verfügen muss, so dass dieMarkierungen trotzdem sichtbar sind.

Über die restrict-Funktion QDot.heatplotter.restrict kann in die Positionierung eingegriffenwerden. Dies ist hilfreich, wenn z. B. nur bestimmte Teile des Bildes klickbar sein sollen, erfordertjedoch Kenntnisse in Javascript. Die Funktion muss entweder undefined zurückgeben, um einenangeklickten Punkt abzulehnen oder die originale oder eine abgewandelte Variante von COORDS.

QDot.heatplotter.restrict = function(COORDS){// einschränkende Javascript Logik

};

QDot.heatplotter.restrict = function(coords){// Klickbaren Bereich einschränkenif(coords.y > 500){ // (Y-Koordinate muss Kleiner als 500 sein)

return undefined;}// Zentrierung/Fixierung einer Achsecoords.x = 25; // (x-Koordinate wird immer auf 25 gesetzt)return coords;

};

Datenablage

Die vom HeatPlotter aufgenommenen Koordinaten werden separat als X-Y-Koordinaten-Paarein den Datensatz gespielt. Pro Markierung entstehen so zwei neue Felder. Über die numerischeBegrenzung im coordinates(NUM)-Befehl, wird die maximal vorgesehene Anzahl im Datensatzreserviert. Pro Fall wird vor die Koordinaten-Paare die jeweilige Anzahl der angegebenen Punkteausgegeben.

GESS Q. (Stand: März 2018) 169

Page 182: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 20. Weitere grafische Komponenten

20.8 ImageMaps

ImageMaps sind sog. verweissensitive Grafiken. Mit Hilfe von verschiedenen online frei verfügbarenTools (wie z. B. GIMP) lassen sich aus beliebigen Grafiken ImageMaps erzeugen. Sie werden miteinem frei definierbaren Raster überzogen, deren Bereiche auf Maus-Events reagieren können.

Abb. 20.6: ImageMap

Abbildung 20.6 stellt beispielhaft ein Bild von einem Oldtimer als ImageMap mit seinem definiertenRaster dar. Jeder farblich definierte Bereich versteht sich stellvertretend als Label.

Grundlage einer ImageMap ist eine SingleQ oder bei Mehrfachnennungen eine MultiQ. Das folgendeSkriptbeispiel nutzt den Oldtimer als MultiQ:MultiQ oldi1;text="

Schauen Sie sich das unten dargestellte Bild an.<br />Welcher Bereich gefällt Ihnen besonders gut.

";title="Bitte berühren Sie die entsprechende Stelle im Bild.";labels =1 "der Blinker vorne links"2 "der Blinker vorne rechts"3 "der Türgriff"4 "das Trittbrett"5 "der Reifen hinten links"6 "die Felge vorne links"7 "der Kühlergrill vorne"8 "das Nummernschild"9 "die Beifahrertür"10 "das Fenster vorne links"11 "das Fenster hinten links"12 "die Motorhaube"13 "der Kühlergrill links"14 "der Scheinwerfer vorne links"15 "der Scheinwerfer vorne rechts"16 "die Figur"17 "das Lenkrad"18 "der Sonnenschutz"19 "der Seitenspiegel vorne rechts"20 "der Kotflügel hinten links"21 "der Kotflügel vorne links"

GESS Q. (Stand: März 2018) 170

Page 183: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 20. Weitere grafische Komponenten

;css="

.qtable {display:none; }canvas{

border: 1px solid black;position: absolute;top: -621px;z-index:1;

}";htmlposttext= "

<img src='./media/@insert(_surveyname)/oldtimer/oldtime2.png' width='900' height='621' style='position:relative; z-index:2;' usemap='#map'/>

<map style='display:block; position:relative;' name='map' id='map'><canvas height='621px' width='900px'>Canvas is not supported by your browser.</

canvas><area shape='circle' qlabel='1' class='mapPart' coords='718,443,21' nohref='

nohref' /><area shape='circle' qlabel='2' class='mapPart' coords='830,404,19' nohref='

nohref' /><area shape='circle' qlabel='3' class='mapPart' coords='200,188,12' nohref='

nohref' /><area shape='poly' qlabel='4' class='mapPart' coords

='138,367,168,358,363,408,333,425,305,417' nohref='nohref' /><area shape='poly' qlabel='5' class='mapPart' coords

='41,270,86,269,110,369,91,426,37,398,29,309,41,270' nohref='nohref' /><area shape='poly' qlabel='6' class='mapPart' coords

='490,383,531,381,584,432,591,518,542,548,479,515,458,439,481,389,483,388,491, 385'nohref='nohref' />

<area shape='poly' qlabel='7' class='mapPart' coords='665,233,684,227,711,228,715,247,712,320,658,336,672,297,666,272,654,260,660, 238'nohref='nohref' />

<area shape='poly' qlabel='8' class='mapPart' coords='657,341,674,369,729,353,727,323' nohref='nohref' />

<area shape='poly' qlabel='9' class='mapPart' coords='203,203,310,212,327,379,210,348,201,203' nohref='nohref' />

<area shape='poly' qlabel='10' class='mapPart' coords='215,71,215,72,306,65,301,176,211,169,211,70,212,71' nohref='nohref' />

<area shape='poly' qlabel='11' class='mapPart' coords='114,67,183,68,183,169,113,161,112,160,113,65' nohref='nohref' />

<area shape='poly' qlabel='12' class='mapPart' coords='419,219,634,241,659,196,493,177,427,190,425,192' nohref='nohref' />

<area shape='poly' qlabel='13' class='mapPart' coords='421,336,431,250,591,272,587,295,501,281,425,334' nohref='nohref' />

<area shape='poly' qlabel='14' class='mapPart' coords='619,261,647,261,667,282,662,326,646,336,612,307,597,291,605,264,616,261' nohref='nohref' />

<area shape='poly' qlabel='15' class='mapPart' coords='732,249,759,250,774,266,764,310,750,319,723,315,716,278,722,247,731,250' nohref='nohref' />

<area shape='poly' qlabel='16' class='mapPart' coords='693,200,689,201,674,201,665,182,682,154,702,187,695,197' nohref='nohref' />

<area shape='poly' qlabel='17' class='mapPart' coords='405,155,463,159,456,135,433,129,415,136,402,142,399,155,402,154' nohref='nohref' />

<area shape='poly' qlabel='18' class='mapPart' coords='329,52,369,79,542,93,508,71' nohref='nohref' />

<area shape='poly' qlabel='19' class='mapPart' coords

GESS Q. (Stand: März 2018) 171

Page 184: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 20. Weitere grafische Komponenten

='517,167,520,135,503,130,498,165,503,170' nohref='nohref' /><area shape='poly' qlabel='20' class='mapPart' coords

='18,306,57,237,93,274,112,352,157,348,124,264,100,218,41,231,21,269' nohref='nohref'/>

<area shape='poly' qlabel='21' class='mapPart' coords='392,410,441,331,509,309,576,325,623,385,658,392,673,378,642,331,572,290,506,288,438,322,404,371,396,401' nohref='nohref' />

</map>";javascript="

qImageMap.defaultColor = 'rgba(0, 255, 0, 0.5)';qImageMap.onClick = function(q, id, isSingleQ, isMultiQ){

// ...};qImageMap.makeQImageMap('VARIABLENNAME', 'MAP-ID');

";

Es handelt sich hierbei um eine ganz normale MultiQ, deren Labels auf die areas der ImageMapübertragen werden. Die übliche tabellarische Darstellung der MultiQ wird mit der CSS-Angabeausgeblendet, so dass nur noch die Grafik übrig bleibt.

Die Definition der Map wird fast vollständig von z. B. GIMP geliefert. Hier können die FormenPolygon sowie Kreis genutzt werden und der Hintergrund des Bildes muss transparent sein.Für GESS Q. müssen nur noch die Attribute qlabel und class='mapPart' hinzugefügt werden.qlabel enthält die Labelwerte, denen die jeweilige Fläche zuzuordnen ist die statische CSS Klassefür die Darstellungsform unerlässlich ist.

qlabel='LABELCODE'

Des Weiteren wird mit <canvas></canvas> eine eindeutige Malfläche über das gesamte Bildgespannt, mit der farbigen, halbtransparenten Flächen dargestellt werden.

Der Javascript-Befehl qImageMap.makeQImageMap aktiviert die Klick-Funktion und prüft, ob essich um eine SingleQ oder MultiQ handelt.

qImageMap.makeQImageMap('VARIABLENNAME', 'BILD-ID');

Mit dem Zusatz in qImageMap.defaultColor ist die Standardfarbe für das Highlighting verän-derbar.

qImageMap.defaultColor = 'FARBCODE';

Durch qImageMap.onClick kann das gesamte Highlighting-Verhalten auf Klick modifiziert werden.Diese Einstellung erfordert Kenntnisse in Javascript.

qImageMap.onClick = function(q, id, isSingleQ, isMultiQ){// Javaskript Logik, was per Klick passieren soll

};

GESS Q. (Stand: März 2018) 172

Page 185: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 20. Weitere grafische Komponenten

20.9 3D Rotation Viewer

Der 3D Rotation Viewer ist eine auf Javascript und Einzelbildern basierende Komponente, mit deres möglich ist, einen 3D-Effekt zu erzeugen. Objekte können per Maussteuerung oder Wischgesten(Android) gedreht oder Panoramaansichten geschaffen werden.

Abb. 20.7: 3D Rotation Viewer

Abbildung 20.7 stellt den 3D Rotation Viewer beispielhaft mit zwei Ansichten eines dreidimen-sionalen GESS Q. Würfels dar. Das folgende Skriptbeispiel veranschaulicht die Einbindung:TextQ bip;text="Der GESS Q. Würfel";title="<script type='text/javascript'>insert3dRotationViewer('./media/SURVEYNAME/gess_wuerfel_[#frame].jpg', 50, 1);// insert3dRotationViewer('./media/SURVEYNAME/gess_wuerfel_[#frame].jpg', 50, 0);</script>

Nachdem die Bilderserie im Medienordner der Studie hinterlegt wurde, kann der Viewer miteinem einzigen Javascript-Funktionsaufruf gestartet werden. Voraussetzung hierbei ist, dass dieDateinamen der Bilder, beginnend mit 01, zweistellige fortlaufende Nummern mit führendenNullen enthalten, die beim Funktionsaufruf durch [#frame] repräsentiert werden.

Zum Beispiel: bild01.jpg, bild02.jpg, bild03.jpg, ... bild50.jpg.

Weiterhin wird dem Funktionsaufruf die Gesamtanzahl der Bilder (hier: 50) übergeben undzuletzt mit einer 1 oder 0 definiert, ob der Viewer nach der Ladezeit eine eigenständige, langsame360°Drehung durchführen soll.

Zusätzlich lassen sich auch Bedienungsknöpfe einblenden. Das folgende Beispiel fügt fünf Buttonsein, mit denen der Viewer verschiedenen Animationen durchführt.<div style=\"text-align:center;\"><a href=\"javascript://\" class=\"linkedJs buttonLink\" title=\"spin (360,2700,Uize.Curve.easeInOutPow (4))\">360 clockwise</a><a href=\"javascript://\" class=\"linkedJs buttonLink\" title=\"spin (-360,2700,Uize.Curve.easeInOutPow (4))\">360 counter-clockwise</a><a href=\"javascript://\" class=\"linkedJs buttonLink\" title=\"spin (1080,4000,Uize.Curve.easeInOutPow (4))\">3 spins</a><a href=\"javascript://\" class=\"linkedJs buttonLink\" title=\"spin (360,2700,Uize.Curve.Rubber.easeOutBounce (5,-2,1.5))\">spin with bounce</a><a href=\"javascript://\" class=\"linkedJs buttonLink\" title=\"spin (360,4000,

GESS Q. (Stand: März 2018) 173

Page 186: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 20. Weitere grafische Komponenten

Uize.Curve.Mod.bend (Uize.Curve.Rubber.easeOutElastic (.1),3))\">elastic spin</a></div>";

Die Anzeigefläche des Rotation Viewers, insbesondere die Größe und Rahmen, lassen sich über dieCSS-Klasse rotationViewer formatieren. Die angezeigten Bildelemente skalieren sich entsprechendmit.<style type="text/css">.rotationViewer {width:600px;height:423px;}</style>

GESS Q. (Stand: März 2018) 174

Page 187: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 21. HTML, JS, HTTP Besonderheiten

21 HTML, JS, HTTP Besonderheiten

GESS Q. verfügt über eine Reihe kleiner Funktionalitäten, die im Folgenden vorgestellt werden.Neben HTTP Requests an den Server, gibt es Javascript Eventhandler, um an bestimmten StellenLogiken auszuführen.

21.1 HTTP Requests

getRemoteContentByURL setzt den GESS Q. Server als reine Weiterleitungsstelle ein. Er holtdie Daten von URL ab und gibt sie weiter. Dies ist im Rahmen einer Befragung sehr hilfreich,wenn z.B. auf Informationen des Auftraggebers zurückgreifen muss, die sich auf seinem eigenenServer befinden. Moderne Browser folgen der same-origin-policy und erlauben es aus Sicher-heitsgründen nicht, skriptgesteuert auf Inhalte eines fremden Servers zuzugreifen. Die AnfragegetRemoteContentByURL lässt es für den Browser so aussehen, als kämen die Daten direkt vom Q.Server selbst und nicht von der entfernten Adresse.http://SERVER-URL?SurveyServlet?action=getremotecontentbyurl&url=URL

// Die als url übergebene Adresse muss http konform kodiert sein// Nutzung per Javascript am besten:"http://" + window.document.location.host +"/SurveyServlet?action=getremotecontentbyurl&url=http%3A%2F%2Fwww.gessgroup.de%2infos.xml"

getStatus ruft verschiedene Serverinformationen ab, die Auskunft über Dinge wie GESS Q.Version, Auslastung, Reaktionszeit, etc. geben. Die Funktion kann der Server-Überwachungdienen, um im Fall von Problemen z. B. Benachrichtigungen per E-Mail zu verschicken.http://SERVER-URL?SurveyServlet?action=getstatus

21.2 Javascript Events

Die QDot.onSubmit Javascript Funktion wird immer beim Abschicken eines Screens ausgeführt.Hierbei ist egal, ob dies durch die Navigation mittels Weiter- oder Zurückbutton angestoßen wird.Per Default ist der Aufruf der Funktion tatenlos. Sie kann aber nach belieben überschriebenwerden. Endet sie mit dem Rückgabewert false, wird die Navigation vollständig abgebrochen,so dass der Befragte auf dem Screen stehen bleibt.TextQ t2;text="

Please tell us, what's wrong.<br>The recording stops automatically when you are leaving this screen.

";javascript="

startBackgroundAudioRecording('rec_@insert(_caseid)');QDot.onSubmit = function(){

if(window.Android != undefined) {Android.stopRecording();

}

GESS Q. (Stand: März 2018) 175

Page 188: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 21. HTML, JS, HTTP Besonderheiten

};";

GESS Q. (Stand: März 2018) 176

Page 189: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 22. IDs, Preloads und Einladungslinks

22 IDs, Preloads und Einladungslinks

Ein konkretes Interview in GESS Q. ist immer einer Teilnehmer-ID zugeordnet. Man kann die IDauch als Zugangscode verstehen, der in den meisten Fällen direkt in einen Einladungslink integriertwird. Aber auch allgemeine, selbst entworfene Loginseiten mit der Aufforderung zur Eingabe desZugangscodes sind denkbar. IDs können personalisiert sein aber auch als allgemeiner Zugangfür viele Teilnehmer dienen. Hier wird zwischen verschiedenen Befragungsmodi unterschieden.Fernen können IDs auch mit Preloads versehen werden, einem initialen Set an Variablen mitWerten, die ggf. für die Fragebogensteuerung relevant sind.

22.1 Teilnehmer-IDs und Preloads

Teilnehmer-IDs sind alphanumerische Codes, die sich aus den Zeichen a-z, A-Z und 0-9 zusam-mensetzen. Wie die Zeichenfolge aussieht und welche Länge sie hat, ist nicht vorgegeben. Die IDsteht intern auch als Variable (_respid) im Skript zur Verfügung.

Die Benutzeroberfläche verfügt über Steuerelemente, mit denen eine vollständige Administrationder Teilnehmer-IDs möglich ist. IDs können eingesehen, angelegt und gelöscht werden. Auch eingemeinsamer Upload zusammen mit vordefinierten Preloads ist möglich. Detaillierte Informationenzu den Möglichkeiten und zur Bedienung finden sich in Abschnitt 26.3.9.

22.2 Befragungsmodi

GESS Q. verfügt über drei Befragungsmodi, die innerhalb einer Studie (auch parallel) eingesetztwerden können: Multi-, Single- und Testmode. Durch den Parameter idmode im Link kann einInterview im vorgesehenen Modus geführt werden.

Im Multimode können IDs bzw. Einladungslinks mehrfach verwendet werden, um Interviewszu starten. Diese Variante bietet sich insbesondere bei Onsite Befragungen oder CAPI an, derenzeitliche Randbedingungen wohldefiniert sind. Ein wesentlicher Nachteil besteht darin, dassunterbrochene Interviews nicht zu einem späteren Zeitpunkt wieder aufgenommen werden können.Weiterhin gibt es keinen Schutz davor, dass Teilnehmer das Interview mehrfach ausfüllen.

Linkparameter: ...&idmode=m

Der Testmode verhält sich exakt wie der Multimode, wobei die Angabe einer Teilnehmer-IDoptional ist. Ohne explizite Angabe wird intern die ID 0 verwendet. Ansonsten lassen sich allehinterlegten Multi-IDs auch für den Testmode verwenden.

Linkparameter: ...&idmode=t

Der Testmode startet Interviews automatisch immer mit einem Define testmode. Darüber lässt sichim Skript zum Beispiel gezielt einstellen, ob Datensätze geschrieben, Quoten gezählt, Fehlerseitenangezeigt oder sonstige Auswahllogiken ausgeführt werden sollen. Das folgende Skriptstück lässtim Testmodus die Fragenamen während der Befragung mit anzeigen. So kann ein Tester leichtzuordnen, bei welcher Frage ihm möglicherweise ein Fehler aufgefallen ist:

GESS Q. (Stand: März 2018) 177

Page 190: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 22. IDs, Preloads und Einladungslinks

#ifdef testmodeHTML{ showQuestionName=yes; };

#endif

Die flexibelsten Möglichkeiten bietet der Singlemode. Für die Feldarbeit ist der Singlemode nachMöglichkeit immer zu bevorzugen. Für mehrere, hinterlegte IDs kann jeweils ein Einladungslinkverwendet werden, der genau für ein Interview verwendbar ist. Die so personalisierten Interviewskönnen nach einem Abbruch (z.B. explizit per Button oder nach einem Timeout wegen Untätigkeit)mit einem erneuten Aufruf des Links an der zuletzt angezeigten Frage fortgesetzt werden. Wurdedas Interview beendet, ist der Einladungslink verbraucht.

Durch eine im Vorfeld definierbare Liste mit in der Regel zufälligen IDs lässt sich unterbinden,dass Teilnehmer durch Ausprobieren mehrerer IDs mehrfach an der Studie teilnehmen. DieseVariante bietet die größtmögliche Kontrolle über die Teilnehmer und Sicherheit bei kritischenBefragungen, bekannten Teilnehmerkreisen oder Zusammenarbeiten mit Panelinstituten.

Linkparameter: ...&idmode=s

22.3 Einladungslinks

Im Folgenden wird der Aufbau der Einladungslinks beispielhaft für den fiktiven Server surv.gess.de skizziert. Es ist ratsam, das Hypertext Transfer Protocol Secure (https) zurVerschlüsselung der übertragenen Daten zu nutzen, sofern der Server dies unterstützt.

Es ist generell aber nicht notwendig, den Link komplett selbst aus den einzelnen Bestandteilenzusammen zu setzen. Die Benutzeroberfläche generiert über den Punkt [Start] die richtigen Linksfür den jeweiligen Server (siehe Abschnitt 26.1).

--------------------------------------------------------------------------HTTPS://SERVER/SurveyServlet?action=startsurvey&survey=NAME&idmode=MODE[&IDPARAM=ID]

HTTPS Übertragungsprotokoll {http, https}SERVER Server URL oder IPNAME StudiennameMODE ID Modus (test, multi, single) {t, m, s}IDPARAM URL Parametername der Teilnehmer IDID Teilnehmer ID--------------------------------------------------------------------------

Bsp 1: Studie s1 im Testmodushttps://surv.gess.de/SurveyServlet?action=startsurvey&survey=s1&idmode=t

Bsp 2: Studie s2 im Multi mode mit ID 98https://surv.gess.de/SurveyServlet?action=startsurvey&survey=s2&idmode=m&respid=98

Bsp 3: Studie s2 im Single mode mit ID 99https://surv.gess.de/SurveyServlet?action=startsurvey&survey=s2&idmode=s&respid=99

Bsp 4: Studie s2 im Single mode mit ID 456 und URL Parameter myIDhttps://surv.gess.de/SurveyServlet?action=startsurvey&survey=s2&idmode=s&myID=456

Groß- und Kleinschreibung spielt bei den Links eine Rolle. Bei der Angabe von Protokoll und

GESS Q. (Stand: März 2018) 178

Page 191: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 22. IDs, Preloads und Einladungslinks

Server kann sie missachtet werden, aber die Angaben nach dem Schrägstrich werden von GESSQ. verarbeitet und müssen Groß- und Kleinschreibung berücksichtigen:

hTTp://sErVeR.dE/SurveyServlet?action=login funktionierthttp://server.de/SurveyServlet?action=LOGIN funktioniert nicht

GESS Q. (Stand: März 2018) 179

Page 192: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 23. Panelanbindung

23 Panelanbindung

Bei der Zusammenarbeit mit einem Panel sind in der Regel einige Absprachen bzg. der Schnitt-stellen von Panel zur Onlinestudie und andersherum zu treffen. Abbildung 23.1 stellt den üblichenInformationsaustausch zwischen Panel und der eigentlichen Befragung dar.

Abb. 23.1: Schema Panelanbindung

Typischerweise benötigt das Panel eine direkte Rückmeldung in ihr System, sobald ein Interviewendet. Auf diese Weise kann die Feldstatistik live beobachtet und der Versand weiterer Einladungengesteuert werden. Das Panel muss hierbei erfahren, welcher Teilnehmer erfolgreich war oder z.B. ausgescreent wurde. Auf technischer Ebene sind dazu zwei Schritte notwendig, die in denfolgenden Unterkapiteln erklärt werden.

23.1 Vom Panel zur Befragung

Im Idealfall liefert das Panel vor Feldbeginn entweder eine Liste mit eindeutigen IDs, die fürdie anstehende Befragung verwendet werden oder es nimmt eine vordefinierte Liste mit solchenentgegen, die in GESS Q. als Single-IDs fungieren. Es kann aber auch sein, dass das Panelim Vorfeld keine IDs benennen und auch nicht mit einer vorgegebenen Liste arbeiten kann,weil das Panel-System erst zur Laufzeit zufällige IDs generiert. In diesem Fall muss eingestelltwerden, dass GESS Q. auch unbekannte IDs akzeptieren soll. Die Integration der ID in denEinladungslink erfolgt per Default als Parameter respid:

https://.../SurveyServlet?action=startsurvey&survey=s02&idmode=s&respid=45

Häufig werden systembedingt eine ganze Reihe weiterer Parameter vom Panel an den Linkangehängt. Dies kann nach Belieben gemacht werden, solange sich die Parameter namentlichnicht mit denen von GESS Q. überschneiden (action survey idmode). Außerdem kann es auchsein, dass das Panel technisch nicht in der Lage ist, den Parameter respid auch so zu nennen.Im folgenden, fiktiven Beispiel verbirgt sich die Teilnehmer ID hinter pid:

https:// ... &ppanel=47&session=0421&charge=zasdk&pid=85674&gzu=lkf77d

In diesem Fall lässt der Name des ID-Paramters im ID Menü der GESS Q. Benutzeroberflächeändern, siehe Abschnitt 26.3.9.

GESS Q. (Stand: März 2018) 180

Page 193: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 23. Panelanbindung

23.2 Redirect zum Panel

Nach Abschluss eines Interviews, egal welcher Art, können die Teilnehmer automatisch aufbeliebige andere Internetseiten weitergeleitet werden. Vorbereitend muss dafür gesorgt sein,dass im HTML-Template der Befragung an beliebiger Stelle außerhalb von Skriptbereichen dieAnnotation @forward eingetragen ist. Zum Beispiel am Ende des HTML Dokuments:

@dummy@forward</body></html>@dummy

Im Skript der Umfrage kann dann eine Weiterleitungsregel definiert werden. Hierfür steht derBefehl finishforward zur Verfügung.

---------------------------------------------------------------------------finishforward = {

( "TARGET-URL" "TEXT" (CONDITION) SECONDS )...

};

TARGET-URL: Internetseite, an die der Befragte weitergeleitet werden sollTEXT: Hinweistext auf der Abschlussseite des InterviewsCONDITION: Bedingung, wann die Weiterleitung ausgeführt wirdSECONDS: Betrachtungszeit der Abschlussseite bis zur Weiterleitung---------------------------------------------------------------------------

Beispiel:finishforward = {

("http://www.gessgroup.de""Sie werden in 3 Sekunden auf www.gessgroup.de weitergeleitet"(_finished eq 1)3

)(

"http://www.gessgroup.de/@insert(_respid)""Wenn Sie nicht in 5 Sekunden auf www.gessgroup.de weitergeleitetwerden, klicken Sie bitte auf den folgenden Link:<a href='http://www.gessgroup.de/@insert(_respid)'>

http://www.gessgroup.de/@insert(_respid)</a>"

(_finished eq 2)5

)};

Nach der abstrakten Syntaxdefinition stellt das obige Beispiel dar, wie der finishforward Befehlim GESS Q. Skript verwendet wird. Das Beispiel enthält eine Weiterleitungsregel mit zweiunterschiedlichen Weiterleitungen, die vom Abschlusscode des Interviews abhängen. Der Ab-schlusscode steht im GESS Q. Skript in der Variable _finished bereit. Endet das Interview mitdem Abschlusscode 1, sieht der Befragte den jeweiligen Hinweistext und wird nach 3 Sekundenautomatisch auf die Seite www.gessgroup.de weitergeleitet. Abschlusscode 2 wird hingegen nach5 Sekunden an eine URL weitergeleitet, die die Teilnehmer ID enthält. Sie ist im GESS Q.

GESS Q. (Stand: März 2018) 181

Page 194: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 23. Panelanbindung

Skript in der Variable _respid zugänglich und lässt sich mit dem @insert() Textersatz in denText eingefügen. Außerdem ist im Hinweistext zusätzlich noch ein Link untergebracht, mit demder Befragte auch per Mausklick auf die Ziel-URL gelangen könnte, sollte die automatischeWeiterleitung aus ungeahnten Gründen unterdrückt werden.

Die Weiterleitungen werden auf der finished.msg ausgeführt und der Hinweistext zusätzlich zudem definierten Abschiedstext eingeblendet.

GESS Q. (Stand: März 2018) 182

Page 195: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 24. Die lokale Installation - GESS Q. Desktop

24 Die lokale Installation - GESS Q. Desktop

24.1 Installation und Setup

Der folgende Abschnitt erläutert, was notwendig ist, um die verschiedenen Versionen von GESSQ. zu installieren und in Betrieb zu nehmen.

24.1.1 Installation

Die aktuellen Versionen von GESS Q. Desktop und GESS Q. Android stehen als sich automatischinstallierende Archive unter https://www.gessgroup.de frei zur Verfügung. Analog zur DateiGESS_Q_xxx_Setup.exe bietet die Seite für Android eine .apk Datei, um die Software auf einemTablet/Smartphone installieren zu können. An dieser Stelle sei aber auf Kapitel 29 verwiesen,das sich mit der Konfiguration von Android Geräten und speziellen Funktionalitäten der Appbeschäftigt. Die Installation unter Windows lässt sich einfach bewerkstelligen, indem man denAnweisungen des Setups folgt. Im Zweifel hilft aber auch ein Video im Youtube Channel vonGESS Software.

Damit GESS Q. Desktop auf dem Rechner läuft, muss eine Java 8 Laufzeitumgebung1 auf demPC installiert sein. Sie können überprüfen, ob Java installiert ist bzw. ob das System die Java-Installation findet, indem sie in einer Eingabeaufforderung (cmd.exe) bzw. Kommandozeile denBefehl java -version eingeben. Kennt Ihr Betriebssystem den Javabefehl, wird eine entsprechendeVersionsinformation zurückgeliefert. Sollte keine Java RE installiert sein, können Sie die aktuellsteauf www.java.com/de/download/ herunterladen.

Vorhandene GESS Q.-Installationen können mit neueren Setup-Programmen einfach überschrie-ben werden. Studien, Daten und nutzerspezifische Einstellungen bleiben dabei erhalten.

Unter Linux ist es vorgekommen, dass sich GESS Q. Desktop nicht starten, weil der automatischeAufruf des Browsers fehlschlug und sich die Software daraufhin komplett beendet hat. Mitdem Anlegen der (leeren) Textdatei noautostart.txt im Installationsverzeichnis, in dem auchstartcapi.bat liegt, startet GESS Q. den Browser nicht mehr automatisch. Die Loginseite vonGESS Q. kann über eine manuelle Eingabe der Adresse http://localhost:8080 im Browsererreicht werden.

Netzwerkaffine Leser erkennen bereits, dass die lokale Installation per Default auf Port 8080arbeitet. Es kann durchaus sein, dass andere servicebasierte Software dies ebenfalls tut und denPort damit blockiert. Bei Bedarf lässt sich dieses Verhalten ändern. Hier zu ist allerdings einmanueller Eingriff im Startskript startcapi.bat erforderlich. Am Ender der lange java Zeile kannoptional ein anderer Port eingestellt werden:

[...] qcapi.html.localserver.JettyServer %SRoot% 8081

Eine Serverinstallation benötigt neben Java zusätzlich einen Application Server wie JBoss oderTomcat, der GESS Q. als Webservice bereitstellt. Zur vollen Unterstützung von internationalen1https://www.java.com/de/

GESS Q. (Stand: März 2018) 183

Page 196: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 24. Die lokale Installation - GESS Q. Desktop

Studien und Zeichensätzen wie Kyrillisch oder Chinesisch, muss der Application Server sokonfiguriert sein, dass alle Requests und Responses als UTF-8 interpretiert bzw. codiert werden.GESS Q. Server wird in diesem Rahmen üblicherweise als Web-Archiv (.war) im ApplicationServer untergebracht. Rund um den Server leistet GESS selbstredend jegliche Art von Service:Bereitstellung, Installation, Wartung, ...

24.1.2 Verzeichnisstruktur

GESS Q. arbeitet dateibasiert mit größtenteils menschenleserlichen Inhalten in den Dateien ohneNotwendigkeit einer Datenbank. Dies bringt den Vorteil mit sich, jederzeit »einfach in eine Dateireingucken« zu können ohne auf Zusatzprogramme angewiesen zu sein. Unter Android gibt esbisher keinen Anlass von der Standardstruktur abzuweichen, bei GESS Q. Server und GESSQ. Desktop kann es abhängig vom Arbeitsumfeld aber sinnvoll sein, individuelle Anpassungenvorzunehmen. Während ein Selbständiger möglicherweise gut mit einer unabhängigen Einzel-platzinstallation zurecht kommt, haben Betriebe mit vielen Anwendern, die womöglich auchgleichzeitig am selben Projekt arbeiten, das Bedürfnis, die Studien zentral abzulegen, damitsie für alle Beteiligten erreichbar sind. Abschnitt 24.2.1 und Abschnitt 1.2.6 beschreiben unteranderem die Stellschrauben, an denen hier angesetzt werden kann und stellen drei typischeSzenarien vor.

Auf den ersten Blick erscheint es eventuell merkwürdig, dass ein GESS Q. Projekt zwangswei-se in ein Projekt- und ein Medienverzeichnis getrennt ist. Hierzu eine kurze Erklärung: AlsOnlinebefragung muss ein Fragebogen vom Webbrowser dargestellt werden. Während GESSQ. den eigentlichen Content der Seite Screen für Screen ausgibt, müssen die Mediendateien(Bilder, Videos, Anwendungen) für den Browser (und damit öffentlich) zugänglich sein. JedeMediendatei ist damit direkt über eine bestimmte Web-Adresse erreichbar. Dies ist für alleanderen studienrelevanten Informationen wie z. B. dem GESS Q. Skript, Quotenständen, Logfilesoder zugelassenen IDs aber explizit nicht gewünscht. Während der Medienpfad auf dem Serveralso in einem öffentlichen Bereich liegt, sind sämtliche anderen Teile von Außen unzugänglich.

Nach der Installation und ohne Änderungen der Konfiguration erwartet GESS Q. unterhalb desInstallationsverzeichnisses folgende Struktur:

Installationsverzeichnis/config/root/media/[fragebogen]/surveys/[fragebogen]/text/

gtc/

Im Installationsverzeichnis liegen die Java-Dateien für das Programm GESS Q. Desktop unddie Dateien, mit denen sich das Programm starten lässt: für Windows startcapi.bat, für Linuxstartcapi.sh. Konfigurationsdateien liegen im Verzeichnis config. Dateien, die für den Betriebauf einem Webserver öffentlich sein müssen, liegen unter root. Die Skripte, die einen Fragebogenausmachen, liegen pro Studie (hier durch den Platzhalter [fragebogen] gekennzeichnet) ineinem eigenen Verzeichnis unter surveys. Das Fragebogenverzeichnis selbst muss mit text undkann mit gtc weitere Unterverzeichnisse enthalten. Im Verzeichnis text sucht GESS Q. nach derDatei skript.q, die als Ausgangspunkt für einen Fragebogen dient. Das Verzeichnis gtc enthältSteuerungsdateien für GESStabs, wenn das Programm für die Ausgabe von Tabellen eingebundenist.

GESS Q. (Stand: März 2018) 184

Page 197: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 24. Die lokale Installation - GESS Q. Desktop

24.2 Konfiguration

Unter Windows wird GESS Q. automatisch im Verzeichnis C:\Program\Files\GESSQ installiert.Ohne Änderungen an der Konfiguration erwartet GESS Q., Skripte und Mediendateien einerStudie unterhalb dieses Verzeichnisses zu finden.

24.2.1 Konfigurationsdatei qonline.cfg

Grundsätzliche Einstellungen im Umgang mit Projekten und laufenden Interviews können in derKonfigurationsdatei vorgenommen werden. Sie heißt standardmäßg qonline.cfg und befindet sichim Ordner config des Installationsverzeichnisses. Auch der Pfad und Name dieses Ordners kannzumindest für GESS Q. Desktop und GESS Q. Server theoretisch modifiziert werden. Er wirdals Startparameter für die entsprechende Webanwendung übergeben. Die Konfigurationsdateiwird einmalig beim Programmstart geladen. Änderungen erfordern also immer einen Neustartder GESS Q. Applikation.

Nach der beispielhaften, vollständigen Darstellung einer Konfigurationsdatei werden die enthalte-nen Parameter einzeln erläutert. Die mit einem Sternchen markierten Parameter sind für diegrundsätzliche Programmfunktion zwingend notwendig.adbApp=config/adb/adb.exearchivePath=archivebackupPath=backupdocPath=docdocumentRoot=rootgtcApp=C:/Program Files/GESStabs/GTC.exejdbcDriver=org.postgresql.DriverjdbcDropAndCreateTables=falsejdbcPassword=XpAssWoRdYjdbcUrl=jdbc:postgresql://localhost:5432/translationjdbcUser=qdotlogRequests=falsemaxIdleSeconds=20maxMemoryLoad=80maxNumBackups=4mediaRoot=root/mediamodelPath=modelspresetDataPath=presetproxyIp=127.0.0.1proxyPort=8080surveyPath=surveystimeOutCheckInterval=60URLName=SurveyServlet

adbApp enthält einen Pfad zur Android Debugging Bridge (ADB). ADB ist ein Tool zur Kom-munikation zwischen Android Geräten und dem PC. Es wird von GESS Q. Desktop verwendet,um Daten über ein USB Kabel mit GESS Q. Android auszutauschen. Unter Windows heißt dasProgramm adb.exe und wird mit der GESS Q. Desktop Installation standardmäßig im Verzeichnis/adb/ mitgeliefert.

archivePath Wird hier ein Pfad zu einem existierenden Ordner angegeben, bietet die Benut-zeroberfläche von GESS Q. eine Option an, um Studien zu archivieren. Sie werden dann im

GESS Q. (Stand: März 2018) 185

Page 198: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 24. Die lokale Installation - GESS Q. Desktop

angegebenen Ordner als GESS Q. Projektdatei (.qp) abgelegt.

backupPath Ist dieser Parameter mit einem Pfad zu einem Ordner versehen, wird dieser beimLöschen, Resetten und bei Uploads von Projekten verwendet, um automatisch Sicherungskopienanzulegen.

docPath Wenn dieser Parameter mit einem Pfad zu einem Ordner belegt ist, bietet die GESS Q.Benutzeroberfläche einen Menüpunkt help an, der auf Hilfe-Dokumente und zusätzliche Inhalteaus dem angegeben Ordner verweist.

documentRoot* Dieser Parameter muss den Pfad zum Server-Root-Verzeichnis enthalten. Darinbefinden sich die von außen zugänglichen Programmdateien, etwa für die HTML-Darstellung desFragebogens relevante CSS- und Javascript-Dateien.

gtcApp Um im Onlinereporting live Auswertungen in Tabellenform anzeigen und direkt SPSS Filesherunterladen zu können, arbeitet GESS Q. nahtlos mit GESStabs zusammen. Damit GESStabsvon GESS Q. aus benutzt werden kann, muss dieser Parameter den Pfad zum ausführbaren GTCProgramm enthalten.

gtcSurveyDir Tabellen können aus den Interview-Daten automatisch erzeugt werden. Dazu mussGESStabs (gtc) wissen, wo die Fragebögen zu finden sind. Dieser Pfad wird allerdings baldentfallen. Derzeit muss er im Rahmen der Schnittstellendefinition zu GESStabs zwingend identischmit surveyPath sein.

jdbcDriver Die Variable enthält den Verweis auf die von GESS Q. einzusetzende Datenbank-Schnittstelle für etwaige Übersetzungen. Je nach Art der Datenbank muss der zu verwendenderDatenbank-Treiber eingebunden werden (siehe Java-Dokumentationen). Default: org.postgresql.Driver

jdbcDropAndCreateTables Beim Einrichten der Datenbank sollte der Wert einmal auf true stehen.Danach muss er auf false gesetzt werden. Wenn der Wert auf true steht, werden sämtlicheTabellen und Inhalte beim ersten Zugriff weggeworfen und neu generiert. Das ist nach derEinrichtung der Datenbank nicht mehr wünschenswert. Default: false

jdbcPassword stellt das zum jdbcUser gehörende Passwort im Klartext bereit stellen. Default:postgres

jdbcUrl Der Parameter legt fest, unter welcher Adresse GESS Q. die Datenbank für Übersetzungenerreichbar ist. Default: jdbc:postgresql://localhost:5432/translation

jdbcUser nimmt den Namen des zugewiesenen Datenbank-Nutzers auf, der auf die Übersetzungs-tabellen zugreifen kann. Default: postgres

maxIdleSeconds* steuert wie viele Sekunden ein aktives Interview stillstehend darf, ehe GESS Q. esin den Abbruchzustand versetzt. Dieser Vorgang gibt den vom Interview belegten Arbeitsspeicherfrei.

maxMemoryLoad setzt die maximal zugelassene Speicherauslastung in Prozent. Erlaubt sind Wertevon 5 bis 95 (Default:80). Bei Interviewanfragen während Überlastung führt GESS Q. aufgrundeines hohen Rechenaufwands höchstens einmal in fünf Minuten eine Speicherbereinigung aus. Istdie vorgegebene Maximallast danach immer noch überschritten, werden neue Teilnehmer mitStatusseite memoverload.html abgelehnt. memoverload.html muss global für sämtliche Studien im

GESS Q. (Stand: März 2018) 186

Page 199: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 24. Die lokale Installation - GESS Q. Desktop

config-Verzeichnis liegen, kann aber durch eine bevorzugt verwendete gleichnamige Datei imVerzeichnis text einer Studie überschrieben werden.

Abgelehnte Interviews und von GESS Q. durchgeführte Speicherbereinigungen werden in /config/serverlog.lst geloggt. Die maximale Auslastungsgrenze ist auch auf der Oberfläche unterServer status mit Hilfe einer schwarzen Linie gekennzeichnet.

maxNumBackups definiert die maximale Anzahl an Backups einer Studie (Default:3). Bei Über-schreitung wird das jeweils älteste Backup gelöscht.

mediaRoot* Dieser Parameter gibt an, in welchem Verzeichnis die zu den Projekten gehörigenMediendaten abgelegt werden. Damit diese aus Sicht des Servers öffentlich zugänglich sind, musssich dieses Verzeichnis unterhalb von documentRoot befinden. Im mediaRoot-Verzeichnis suchtGESS Q. nach einem Verzeichnis, das den gleichen Namen trägt wie das Skript-Verzeichnisunter surveyPath. Es dient der Trennung des Fragebogens mit seinen Textdateien und den darinverwendeten Mediendateien, wie Bildern, Animationen, Tonaufnahmen oder Filmen. Da GESS Q.für das Medienverzeichnis den gleichen Namen voraussetzt, können Mediendateien ohne weiterePfadangaben über ihren Dateinamen eingebunden werden.

modelPath definiert einen Ordner, in dem Studienvorlagen abgelegt werden können. Erstellt manüber die Benutzeroberfläche neue Studien lässt sich eine der Vorlagen mit all ihren Voreinstellungenals Ausgangspunkt auswählen. Gibt es unter /documentRoot/model_previews eine zur Vorlagegleichnamige .png Bilddatei, wird diese beim Auswählen von Vorlagen als Vorschau dargestellt.

presetDataPath GESS Q. bietet die Möglichkeit während des Interviews bestimmte Daten ausInterview-Variablen zu exportieren. Diese Informationen können von anderen Interviews aus-gehend wieder gelesen werden, um z. B. Interview-Variablen vorab zu belegen. Der ParameterpresetDataPath bestimmt ein zentrales Verzeichnis, aus dem Interviews mittels ActionBefehlreadJsonDataFile Informationen abrufen können.

proxyIp ermöglicht die Angabe der IP Adresse eines Proxyservers, falls im lokalen Netzwerk nurüber einen solchen mit dem Internet kommuniziert wird. Manche Features in GESS Q. sind daraufangewiesen Anfragen oder Pakete nach außen verschicken zu können. Dies ist zum Beispiel fürden Lizenziervorgang oder den Upload von Studien zu GESS Q. Server Installationen erforderlich.

proxyIp ermöglicht die Angabe des Ports eines Proxyservers, falls im lokalen Netzwerk nur übereinen solchen mit dem Internet kommuniziert wird. Siehe proxyIp.

surveyPath* definiert den Ordner, in dem die Projekte abgelegt werden. Die Pfadangabe beziehtsich in dieser relativen Form ( surveyPath=surveys ) auf das Installationsverzeichnis, so dass GESSQ. in der unveränderten Standard-Installation Skript-Dateien unter c:\Program\Files\GESSQ\surveys suchen wird. Mit einer absoluten Pfadangabe können Sie die Studien auch außerhalbdes Programmverzeichnisses unterbringen: surveyPath=c:/Umfragen .

Beim Variablennamen (surveyPath) unterscheidet das Programm nicht zwischen Groß- undKleinschreibung. Das gilt unter Windows auch für die Pfadangaben, unter Linux/Unix wird dieSchreibweise des Pfads dagegen berücksichtigt (»Surveys« entspricht unter Linux nicht »surveys«).Im Gegensatz zum Windows-Standard verwendet Java den Schrägstrich statt des Rückstrichszur Trennung der Verzeichnisse in Pfadangaben.

timeOutCheckInterval* legt fest, in welchen Sekundenintervallen GESS Q. prüft, wie lange aktiveInterviews unverändert geblieben sind, um sie ggf. in den Abbruchzustand zu versetzen. Siehe

GESS Q. (Stand: März 2018) 187

Page 200: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 24. Die lokale Installation - GESS Q. Desktop

auch maxIdleSeconds.

URLName* legt fest, unter welchem Namen GESS Q. als Webdienst angeboten wird. Dies ist inder Regel SurveyServlet.

24.2.2 Nutzerkonten und Zugriffsrechte: users.lst

Im Verzeichnis config, das GESS Q. im documentRoot erwartet, liegt auch die Dateiusers.lst. Die Datei enthält pro Zeile ein Nutzerkonto, das durch fünf Felder festgelegt wird:id=demo;company=GESS;name=demo;password=omed;access=full

id beinhaltet den eindeutigen Namen eines Kontos.

company Welcher Firma gehört der Nutzer an?

name Der Login-Name für den Nutzer.

password Das Passwort für das Konto kann, wie im Beispiel oben, im Klartext hinterlegt werden.Das ist unter dem Aspekt der Sicherheit unerfreulich, daher legt der Server die Passwortein dieser Datei als einen Hash, einen Fingerabdruck des eigentlichen Passworts ab. Bei jederAnmeldung wird dann der Hash des eingegebenen Passworts ermittelt und mit dem hinterlegtenFingerabdruck verglichen.

access Das Feld legt durch den Eintrag full, reduced, usw. die Nutzerrolle und damit dieZugriffsrechte fest. Es bestimmt auch, welche Menüpunkte, falls überhaupt, ein Nutzer auf derServer-Oberfläche zu sehen bekommt.

Die Einträge können zwar per Hand eingefügt werden, aber die Server-Oberfläche hält im BereichMain unter Users auch einen Menüpunkt bereit, über den sich die Datei users.lst editierenlässt. Da der Rollenname in der Datei von der Bezeichnung der Rollen abweicht, dürfte espraktischer sein, die Web-Oberfläche zu nutzen. Bei dieser Gelegenheit trägt der Server dannauch nur den Hash eines Passworts ein.

Rollen lassen sich grob in zwei Gruppen unterteilen: Admin und Regular User eignen sich fürNutzer die Studien verwalten oder skripten. Die verschiedenen Kombinationen aus Reporting,Datenexport, Datenbearbeitung und Quotenkorrekturen sind dagegen eher für Kunden gedacht,die eine laufende Studie begleiten.

24.2.3 Nutzerrollen

Admin Nutzer mit der Admin-Rolle haben Zugriff auf alle Funktionen bei allen Studien (access=full).

Regular User erlaubt den Zugriff auf alle Funktionen bei den Studien, denen die Nutzer zuge-ordnet sind (access=reduced).

Reporting ermöglicht den Zugriff auf das Reporting (access=rep).

GESS Q. (Stand: März 2018) 188

Page 201: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 24. Die lokale Installation - GESS Q. Desktop

Reporting + Export erweitert die Reporting-Rolle um die Möglichkeit Daten herunter zu ladenund SPSS Files zu erzeugen (access=rep_export).

Reporting + Data Edit erweitert die Reporting-Rolle um die Möglichkeit Datensätze zu editie-ren und zu löschen erzeugen (access=rep_data).

Reporting + Quota-Edit erweitert die Reporting-Rolle um die Möglichkeit Soll-Quoten zueditieren (access=rep_quota).

Translator ermöglicht den gesteuerten Zugriff auf die Übersetzungsdateien in der Oberfläche(access=translator) (siehe Abschnitt 26.3.14).

Die übrigen Rollen Rep + Exp + Data (rep_export_data), Rep + Exp + Quota(rep_export_quota), Rep + Data + Quota (rep_data_quota), Rep + Exp + Data +Quota (rep_export_data_quota) bieten unterschiedliche Kombinationen der verschiedenenZugriffsrechte.

24.2.4 access.lst

Das Gegenstück zu den in users.lst allgemein festgelegten Zugriffsrechten bildet auf der Ebeneder einzelnen Studie die Datei access.lst. Sie liegt direkt im Fragebogenverzeichnis. In ihr sindzeilenweise die IDs der Nutzer vermerkt, die auf die Studie zugreifen dürfen. Die Zugriffsrechtewerden dabei durch die dem Nutzer in der Datei users.lst zugeordnete Rolle bestimmt. Damitalso der Nutzer demo auf eine Studie zugreifen darf, muss die dazu gehörige Datei access.lstden Eintragdemo

enthalten. Die Web-Oberfläche von GESS Q. ermöglicht die Verwaltung der Datei (s. Ab-schnitt 26.3.13).

24.2.5 Blacklist

Im Konfigurationsverzeichnis hinterlegt GESS Q. eine Datei namens blacklist.txt, die alle vonGESStabs reservierten Schlüsselwörter aufführt und nicht in einem Fragebogen verwendet solltenum die weitere Verarbeitung der Daten nicht zu erschweren. Der Blacklist können auch eigeneSchlüsselwörter hinzugefügt werden.

24.2.6 server.lst

GESS Q. unterstützt die Trennung von Entwicklungs- und Live-Systemen. Um einen fertigenFragebogen vom Entwicklungssystem auf einen Server für die Befragung zu kopieren, bietetdie Web-Oberfläche GESS Q. Admin unter Surveys den Punkt Upload . Die Server-Liste imAusklappmenü bezieht GESS Q. aus der Datei server.lst. Sie enthält pro Zeile einen Eintragfür einen Server in Form einer URL unter der die GESS Q.-Installation erreichbar ist:https://test1.domain.de/SurveyServlethttp://test2.domain.de/SurveyServlet

GESS Q. (Stand: März 2018) 189

Page 202: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 24. Die lokale Installation - GESS Q. Desktop

24.3 Starten und Beenden

Mit der Windows setup.exe von der Homepage legt der Installationsprozess eine Verknüpfung aufdem Desktop ab. Diese verweist auf die Datei startcapi.bat im Installationsverzeichnis und einDoppelklick darauf startet GESS Q. Desktop. Unter Linux reicht es, im Installationsverzeichnisauf der Kommandozeile ./startcapi.sh einzugeben. Die Datei noautostart.txt auf gleicherEbene verhindert dabei, dass GESS Q. Desktop automatisch mit dem Standardbrowser gestartetwird.

Mit dem Start des Programms öffnet sich unter Windows ein Kommandofenster, in das derstartende Server-Prozess verschiedene Meldungen schreibt. Gleichzeitig wird der Web-Browseraufgerufen, in dem in einem zusätzlichen Reiter die Login-Seite des GESS Q.-Servers erscheint.(Unter Linux passiert das Gleiche, nur das die Server-Meldungen in dem Fenster erscheinen, indem das Kommando aufgerufen wurde.)

Der Programmaufruf hat einen in Java geschriebenen internen Webserver gestartet, der auf Port8080 angesprochen werden kann. Sprich: die URLs

• http://localhost:8080

• http://127.0.0.1:8080

• http://[lokale.ip.adresse]:8080

verweisen alle auf die Loginseite des gleichen Servers auf dem lokalen Rechner. Mit der letztenMöglichkeit kann man, wenn die IP-Adresse bekannt ist, den Server auch von einem anderenRechner im lokalen Netz ansprechen.

Das Programm lässt sich unter Windows durch Schließen des Kommandofensters »GESS Q.«beenden. Unter Linux kann der Server-Prozess durch die Tastenkombination Strg-c abgebrochenwerden.

24.4 Lizenzierung und Update

Der folgende Abschnitt erläutert, wie GESS Q. Desktop auf einem Computer lizenziert und einVersions-Update durchführt wird. Allgemein ist zu beachten, dass nur eine GESS Q. DesktopInstallation zur Zeit betreibbar ist, da sich mehrere gegenseitig die Lizenz entziehen würden.

24.4.1 Lizenzierung

Nach Anmeldung in der Benutzeroberfläche kann GESS Q. per Klick auf das Vorhängeschloss-Symbol lizenziert werden. Es öffnet sich eine Fenster, in dem der vollständige Lizenzcodeeingetragen werden soll.

GESS Q. (Stand: März 2018) 190

Page 203: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 24. Die lokale Installation - GESS Q. Desktop

Abb. 24.1: Oberfläche - Öffnen und Einbinden des Lizenzschlüssels

Nach Eingabe und Bestätigung nimmt Q. Kontakt zum Lizenzserver auf und lässt der eingegebeneLizenzcode wird überprüft. Bei einem gültigen Lizenzcode sollte anschließend aus dem rotenein grünes Vorhängeschloss werden. Zusätzlich wird der Firmenname, die Restdauer und eineeindeutige ID innerhalb der Lizenz ausgespielt. Sollte der Lizenzcode sich ändern, kann dieserüber einen Klick auf das (grüne) Schloss eingeben werden.

Häufige Fehlerursachen bei beiden Optionen

• Zu geringe Benutzerrechte - Sie müssen über ausreichend Nutzerrechte auf dem PCverfügen, um eine Lizenzierung durchführen zu können.

• Kein Internet - Damit der Lizenzschlüssel überprüft werden kann, muss eine einmaligeVerbindung zum Internet bestehen.

• Firewall o.Ä. blockiert die Kommunikation zum Server - Port 80 muss freigegebensein.

24.4.2 Update

Unter Windows einfach setup.exe ausführen und in das Verzeichnis der bestehenden Installationinstallieren/überschreiben. Individuelle Einstellungen (Benutzer, Serverliste, config, Studien, ...)bleiben erhalten.

24.5 Anforderungen für GESS Q. Desktop

Für GESS Q. Desktop gibt es keinen nennenswerten Anforderungen an CPU, Speicher oderFestplatte. Die einzige Voraussetzung ist die Installation von Java.

• Oracle Java 8

• Postgres 9.1 (falls Übersetzungstool lokal benötigt wird) - Anbindung siehe Abschnitt 24.2

GESS Q. (Stand: März 2018) 191

Page 204: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 24. Die lokale Installation - GESS Q. Desktop

• Firefox (für den Robot - Abschnitt 26.2)

GESS Q. (Stand: März 2018) 192

Page 205: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 25. Der Produktivbetrieb - GESS Q. Server

25 Der Produktivbetrieb - GESS Q. Server

25.1 Empfehlung für GESS Q. Webserver

Generell sind fast alle Punkte dieser Liste optional. Zwingend notwendig sind hingegen die miteinem Sternchen markierten Anforderungen.

• Mind. 2 virtuelle CPUs (schnelle Abarbeitung von Anfragen)

• Mind. 4 GB RAM (mehr parallele Interviews)

• Mind. 20 GB Plattenplatz

• Zugriff per SSH mit Root-Rechten zur Wartung von GESS Q.

• OS bevorzugt Ubuntu Linux 12.04 64bit

• Apache Tomcat 7 *

• Oracle Java 8 *

• Postgres 9.1 (Übersetzungstool)

• Mozilla Firefox (headless, lokal, keine GUI erforderlich - für den Robot)

• Xvfb (für den Robot)

In Ihrem Interesse sollte ein tägliches Backup und fortlaufendes Monitoring der Serviceverfügbar-keit eingerichtet sein.

GESS Q. (Stand: März 2018) 193

Page 206: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

26 Die Benutzeroberfläche

Auch wenn die Benutzeroberfläche grundsätzlich anstrebt selbsterklärend zu sein, erfordern einigeFunktionalitäten ein gewisses Maß an Hintergrundwissen, um verstehen zu können, was im Detailpassiert und welche Möglichkeiten sich einem bei der Arbeit bieten. Dieses Kapitel beschreibt dieBenutzeroberfläche mit ihren wesentlichen funktionellen Möglichkeiten und Hintergrundprozessen.

Abb. 26.1: GESS Q. Menü

Der Einfachheit halber folgt das Kapitel dem Aufbau der Benutzeroberfläche mit seinem inAbschnitte gegliederten Menü. Bei den Abschnitten links am Bildschirmrand handelt es sichum Surveys , Reporting und Main , wobei alles Wesentliche zum Thema Reporting sich imAbschnitt 26.3.10 befindet.

Die Einträge unter Surveys und Reporting beziehen sich ausschließlich auf die im Ausklappmenügewählte Studie. Das setzt natürlich voraus, das bereits eine Studie angelegt ist und man Zugriffauf diese hat. Sollte das nicht der Fall sein, erklärt Abschnitt 26.9.1 wie eine neue Studie angelegtwerden kann. Zur besseren Übersicht stellt das Ausklappmenü aktivierte und deaktivierte Studienin getrennten Blöcken dar. Die Projekte selbst sind je Nutzer in Reihenfolge der letzten Zugriffesortiert, so dass die aktuell bearbeiteten Studien stets oben stehen. Die Reihenfolge kann perKlick auf den angrenzenden Pfeil aber auch alphabetisch ab- oder aufsteigend sortiert werden.

Dem Gegenüber beziehen sich die Menü-Punkte unter Main auf die Funktionalität des Systemsinsgesamt als Server und Verwaltungsoberfläche.

26.1 Starten von Interviews

Interviews beginnen im Normalfall, wenn die Befragten die ihnen mitgeteilte URL ansteuern(reine Online-Befragung) oder das Tablet mit dem laufenden Fragebogen übergeben bekommen.

GESS Q. (Stand: März 2018) 194

Page 207: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

Für andere Szenarien hält die Web-Oberfläche von GESS Q. im Bereich Surveys mit dem PunktStart eine weitere Möglichkeit bereit. Da die Menü-Punkte im Bereich Surveys nur auf dieim Ausklappmenü gewählte Studie beziehen, sollte sicher gestellt sein, dass hier die richtigeausgewählt ist.

Abb. 26.2: Start interview

Die Maske kann für den Test beim Entwickeln des Fragebogens mit dem Klick auf Testmodedas Interview im Testmode starten. Für den Start des Interviews im Singlemode (jeder Befragtemeldet sich mit einer individuellen ID an) oder Multimode (mehrere Befragte verwenden einegemeinsame ID) muss die ID im entsprechenden Feld mitgegeben werden. Genaueres zu IDs folgtin Abschnitt 26.3.9. Außerdem können beim Start des Interviews noch eine oder mehrere Definesübergeben werden, wie sie in Abschnitt 2.3 erläutert sind.

26.2 Robot: Screenshots erstellen

Abb. 26.3: Starten des Robots

Das Startmenü in GESS Q. Desktop bietet neben den regulären Möglichkeiten, ein Interview zustarten auch die Option, einen Robot durch das Interview zu schicken. Der Robot verhält sich wieein Teilnehmer, der ohne Fragen zu beantworten immer nur den Weiterbutton betätigt und beijedem Screen einen Screenshot macht. Der Robot ist bei der Dokumentation von Studien hilfreichum den vollständigen Fragebogen auszudrucken. Außerdem kann er unter Data / Export ->Native Data verwendet werden, um Screenshots von einem konkreten Interview zu machen.

Der Robot ist noch experimenteller Natur und erweist sich als etwas störrisch. Er setzte bisher perFernsteuerung Browser wie z.B. den Firefox ein, der auf dem Betriebssystem installiert sein muss.Häufige Updates der Browser bedingen, dass der Robot ebenfalls aktualisiert werden musste.Aktuell wird daher der Internet Explorer 64bit (NICHT Edge) eingesetzt, da dieser offiziell keineUpdates mehr erhält. Gleichzeitig bedeutet dies jedoch auch, dass unser Robot auf WindowsBetriebssysteme beschränkt ist.

Die Maske der Benutzeroberfläche verlangt die Vorgabe einer Start-URL, mit der der Robot

GESS Q. (Stand: März 2018) 195

Page 208: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

beginnen soll. Optional kann die Fensterbreite des Browsers angegeben und eine Verzögerungeingestellt werden. Eine Verzögerung bedeutet die Wartezeit von Screenanzeige bis zum Erstellendes Screenshots. Eventuell bauen sich Fragen bewusst verzögert auf und sind nicht gleich aufAnhieb komplett zu sehen.

Sollte der Robot zum Beispiel wegen eines Eingabezwangs auf einem Screen stehen bleiben, brichter seine Ausführung an dieser Stelle ab. Er würde sonst endlos lange an dieser Stelle hängenbleiben. Damit er reibungslos durch den Fragebogen kommt, muss sichergestellt werden, dass ernirgends ausgebremst wird und ggf. filterlos jeden Screen vorgelegt bekommt. Hierzu gibt es 3Skriptparameter, die auch in Abschnitt 5.2 erläutert werden.ignoreFilter = yes;ignoreAssert = yes;ignoreNoMissing = yes;

Mit Q. Desktop kann man dem Robot im installierten Browser zugucken. Nach dem Durchgangbietet der Browser an, ein Zip-Archiv herunter zu laden, das die Screenshots als PNG-Dateienenthält.

26.3 Studienkonfiguration

Abb. 26.4: Studie konfigurieren

Unter dem Stichwort Configure hält die Web-Oberfläche eine ganze Reihe von Möglichkeitenbereit, an den Stellschrauben der Studie zu drehen. Bitte stellen Sie sicher, dass im Ausklappmenüdie richtige Studie ausgewählt ist. Der Name der Studie findet sich auch in Klammern in derÜberschrift wieder (im Bild: android). Außerdem wird hier auch die aktuelle Versionsnummerangezeigt.

26.3.1 General settings

In der linken Spalte der Tabelle können generelle Einstellungen, wie der Status, der Titel undder Ziel-Server angepasst werden.

GESS Q. (Stand: März 2018) 196

Page 209: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

Abb. 26.5: General settings

TitelDer Studientitel ist ein optionales Feld, in dem man zum Beispiel kurze Erklärung zum Namender Studie angeben kann (vgl. Abschnitt 26.9.5).

TagsUnter Tags können weitere Informationen zur Studie gespeichert werden, wie z. B. Besonderheitenim Skripting oder spezielle Einbindung von Tools. Das Abspeichern dieser Stichpunkte soll dabeihelfen, später Studien schneller wiederzufinden. Wurde beispielsweise in einer Studie ein MaxDiffverwendet, kann der Begriff als Tag verwenden werden und somit als Lösungsvorschlag fürzukünftige Studie dienen. Eine studienübergreifende Tag-Suche kann momentan unter allenarchivierten Studien durchgeführt werden. Weitere Informationen sind im Kapitel 26.9.3 zufinden.

Aktivieren / DeaktivierenZur Verfügung stehen nur aktive Studien. Deaktivierte Studien können von Teilnehmern nicht

mehr betreten werden. Sie sehen automatisch die im Skript definierte SurveyClosedMsg. DasDeaktivieren einer Studie im GESS Q. Server ist ebenfalls erforderlich, wenn ein Upload ausGESS Q. Desktop heraus stattfinden soll, um den Fragebogenstand zu aktualisieren oder um ggf.andere Wartungsarbeiten durchzuführen.

VersionDie Versionsnummer kann als eigene Kontroll-Kennung genutzt werden und muss manuellhochgezählt werden.

ServerAdministratoren können einen Server für den Upload aus der ausklappbaren Liste wählen. DenInhalt der Liste bestimmt die Datei server.lst im config-Verzeichnis (s. Abschnitt 24.2.6). Aufdem Zielsystem muss der Nutzer unter dem gleichen Login ebenfalls ein Konto haben, das dortmindestens über Zugriffsstufe Regular User verfügt. Der angegebene Zielserver wird nach demSpeichern in der config.json im Studienordner hinterlegt.

26.3.2 Survey access

In der rechten Spalte können weitere studienspezifische Zugänge eingestellt werden.

GESS Q. (Stand: März 2018) 197

Page 210: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

Abb. 26.6: Survey access

Test modeTest mode enabled legt fest, ob eine Studie auch im Testmodus aufgerufen werden kann.

Accept unknown IDsAccept unknown IDs ermöglicht es auch mit nicht hinterlegten Single-IDs Fragebögen zu starten.Dies wird in der Regel benötigt, wenn ein anzubindendes Panel dynamisch zur Laufzeit generierteIDs verwendet und diese entsprechend nicht im Vorfeld benennen kann.

Use CookiesUse cookies verhindert über Cookies, dass der selbe Fall gleichzeitig von zwei Endgerätenbetreten werden kann.

URL parameterMittels URL Parameter lässt sich festlegen, mit welchem Variablennamen Teilnehmer-IDs inder URL bezeichnet werden. Auch hier dient der Hauptverwendungszweck der Anbindung vonPanels, die dies nicht flexibel handhaben können. Auch wenn der Parameter an dieser Stelle freidefinierbar ist, wird innerhalb des GESS Q. Skripts immer mit _respid auf die ID zugegriffen.

26.3.3 Backups

In der Backup-Tabelle werden alle erstellten Sicherheitskopien nach Zeitpunkt aufgelistet undkönnen heruntergeladen werden. Backups können beim Reset der Studie erstellt werden (vgl.Abschnitt 26.3.6).

26.3.4 Studien exportieren

Bei einem Klick auf Export wird die vollständige Studie (Fragebogen- und Medienverzeichnis) ineiner .qp-Datei (GESS Q. Project) archiviert und zum Download angeboten. Dateien mit dieserEndung können über Survey Manager -> Import importiert werden. Technisch gesehen handeltes sich dabei um ein ZIP Archiv.

26.3.5 Studien archivieren

Wenn in der Konfigurationsdatei qonline.cfg (s. Abschnitt 24.2.1) der Parameter archivePathgesetzt ist (z. B. auf archive, dient das Verzeichnis archive in der Wurzel der GESS Q.-

GESS Q. (Stand: März 2018) 198

Page 211: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

Installation als Archiv. Wenn der Parameter nicht gesetzt ist, erscheint das Icon für Archivemit einem »Einfahrt verboten«-Schild und bleibt ohne Funktion.

Bei aktivierter Archiv-Funktion fasst GESS Q. den Studien- und den Medienordner in einemArchiv zusammen, komprimiert die Datei und legt sie unter dem Namen der Studie mit derEndung .qp im Archiv-Verzeichnis ab.Vorsicht: Zugleich mit dem Verschieben ins Archiv löscht GESS Q. die entsprechenden Verzeich-nisse der Studie im surveys- und im media-Ordner.

26.3.6 Studien resetten

Der Knopf Reset bereinigt das Studienverzeichnis und setzt die Studie auf den Ausgangspunktzurück. D.h. Protokoll-Dateien werden entfernt, ID-Listen und Quoten zurückgesetzt, auchlaufende Interviews werden gelöscht. In der Regel dürfte sich die Funktion als praktisch erweisen,wenn es darum geht, Testdaten zu beseitigen und die Studie für die eigentliche Befragung frei zuschalten. Wenn backupPath in qonline.cfg definiert ist (s. Abschnitt 24.2.1.), legt GESS Q. beimReset eine Sicherungskopie im dort festgelegten Verzeichnis ab. Nur Nutzer mit Admin-Zugriffhaben das Recht, die Backup-Funktion im PopUp-Menü auszustellen. Bei allen anderen Nutzern,wird automatisch mit Reset eine Sicherheitskopie erstellt, sofern der backupPath definiert ist.

26.3.7 Studien löschen

Löscht die Studie (Fragebogen- und Medienverzeichnis), wenn die dazu erneut abgefragtenAnmeldedaten korrekt eingegeben wurden. Wenn backupPath in qonline.cfg definiert ist (s. Ab-schnitt 24.2.1.), legt GESS Q. beim Löschen eine Sicherungskopie im dort festgelegten Verzeichnisab.

26.3.8 Überprüfung der Skriptsyntax (Scriptcheck)

Beim Skripten von Fragebögen gibt es verschiedene Möglichkeiten, sich bei der Fehlersuche zubehelfen. Neben der Ausgabe von Variablen in speziellen, zusätzlich eingefügten Debug-Fragen,leistet vor allem der Skriptcheck Hilfestellung. GESS Q. prüft das Skript auf syntaktischeKorrektheit und gibt entsprechende Fehlermeldungen aus bzw. warnt vor möglichen Fehler-quellen. Dazu gehören z. B. (sich überschreibende) Mehrfachzuweisungen von InitActionBlock,ResumeActionBlock, StartActionBlock, etc. oder im Skript definierte Fragen, die gar nicht odermehrfach im Befragungsablauf enthalten sind. Außerdem informiert der Skriptcheck über dieGesamtzahl der Screens und hilft damit beim Abgleich des Fortschrittsbalkens.

Änderungen am Skript können parallel vorgenommen und das Skript dann über den Knopferneut laden wieder überprüft werden.

Fehler weist das Programm oben in der Seite im Bereich der Zusammenfassung als Link indunkelrot aus. Der Link verweist auf die Fundstelle im darunter folgenden vollständigen Bericht.Eine konkrete Zeilenzahl zur Fundstelle des Fehlers kann GESS Q. nicht liefern, denn bevorGESS Q. das Skript abarbeitet, wird es aus den Einzelteilen, aus denen es bestehen kann,zusammengesetzt. Von daher muss man sich an dieser Stelle mit der ungefähren Fundstelle derFehlerquelle, etwa den Hinweisen auf die Frage davor und danach, begnügen.

GESS Q. (Stand: März 2018) 199

Page 212: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

Warnungen gibt das Programm in gelbgrün aus. Dabei kann es sich um Hinweise auf Bezeichnun-gen handeln, die in der Blacklist auftauchen oder um Fragen, die zwar geskriptet sind, aber inkeinem Block berücksichtigt werden. Das Programm warnt auch bei bestimmten Bedingungen,etwa Filter, die einen Array allgemein ansprechen und nicht einen konkreten Wert des Arrays. EinSkript, das Warnungen verursacht, ist lauffähig. Allerdings kann es, gerade bei lax formuliertenFiltern, Missverständnisse beinhalten, die zu Fehlern in der Befragung führen. Von daher ist einegrün unterlegte Bestätigung: Script check finished successfully! durchaus wünschenswert.

26.3.9 IDs konfigurieren

Unter ID Settings können die IDs eingesehen, hochgeladen (mit und ohne Preloads), anderweitiggeneriert oder gelöscht werden. Ferner lässt sich eine Prüfung auf inkonsistente Zustände ausführenund der Zustand einzelner IDs ändern.

Abb. 26.7: IDs managen

Hier werden die IDs übersichtlich in einer Tabellendarstellung aufgeführt. Falls vorhanden, werdenPreloads ebenfalls mit aufgeführt. Es kann gezielt nach IDs gesucht und die Ansicht mit Ein- bzw.Ausblenden der Häkchen auf Single- und Multi-IDs sowie nach ihrem Status gefiltert werden.fresh steht für noch nicht, active für gerade verwendete IDs, cancelled für abgebrochene undfinished für beendete Interviews.

Die einzelnen IDs können in der Bildschirmansicht bzgl. ihres Status geändert oder gelöschtwerden. Dies kann beispielsweise nötig werden, wenn IDs zu Testzwecken verwendet und einReset der Studie vergessen wurde – dann kann über diese Funktion auch nach Feldstart auf denStatus der einzelnen IDs zugegriffen und auf fresh gesetzt werden. Auch Probleme mit ,defekten‘Links (beispielsweise falls Serverprobleme o.Ä. zu inkonsistenten ID Stati geführt haben) könnenso behoben werden. Das Ändern eines ID Status beeinflusst in keiner Weise die Datensätze. Solleine ID komplett zur erneuten Benutzung zurückgesetzt werden, muss auch der zugehörigenDatensatz gelöscht werden ( Data / Export -> Native Data ).

AddUnter dem Punkt Add können neue IDs hinzugefügt werden. Duplikate zu bereits bestehendenIDs werden erkannt und ausgelassen. Dies ist auf verschiedenen Wegen möglich.

GESS Q. (Stand: März 2018) 200

Page 213: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

Abb. 26.8: Adding IDs

Per Zufallsgenerator lässt sich eine gewünschte Anzahl Nummern innerhalb einer vorgegebenenSpannweite erstellen. Hierbei ist auf einen ausreichend großen Wertebereich im Verhältnis zurgewünschten Anzahl zu achten, da die Software nach 100 zufällig generierten Duplikaten denVorgang beendet. Alternativ lassen sich Alphanumerische IDs generiert. Nach Eingabe dergewünschten Anzahl erstellt GESS Q. 32-stellige IDs aus Groß-, Kleinbuchstaben und Ziffernzwischen 0 und 9.

Außerdem können schon vorhandene ID-Listen in die dafür vorgesehenen Felder hineinkopiertoder als CSV-Dateien hochgeladen werden. Beim CSV-Upload können IDs und Preloads ineinem Zug behandelt werden. Das CSV-Format muss als UTF8 mit BOM kodiert sein. Es nutztdas Semikolon als Trennzeichen sowie doppelte Anführungsstriche als Textqualifizierer. Wie inAbbildung 26.9 zu sehen enthält die erste Spalte die eigentlichen IDs. In der zweiten Spalte istzu vermerken, ob es sich um eine Single- (S) oder Multi-ID (M) handelt.

Abb. 26.9: CSV-Upload von IDs

PreloadsDie Überschriften der Spalten werden erst ab Spalte 3 berücksichtigt. Alle Spalten ab hier werdenals Preloads interpretiert. In den Überschriften sind Namen der GESS Q. Variablen zu nennenund in den Zeilen die Werte, mit denen die Variable beim jedem Interviewstart belegt werdensoll. Die Variablen müssen im Skript definiert sein. Ein Verstoß wird auch vom Skript-Checkgemeldet.

Syntaktisch wird zwischen einfachen Zahlenvariablen, Multi-Zahlenvariablen und Texten un-terschieden. Die Werte von Multis werden mit Leerzeichen voneinander getrennt. Eine exakteTypüberprüfung findet nicht statt. Beim CSV-Upload von Duplikat-IDs werden Preloads injedem Fall ersetzt.

ValidateMit Validate kann überprüft werden, ob sich IDs in inkonsistenten Zuständen befinden. Sollte

GESS Q. (Stand: März 2018) 201

Page 214: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

es unerwartet zu unsauber unterbrochenen Fällen gekommen sein (Serverausfall etc), lässt sichim Ergebnis dieser Prüfung erkennen, ob der theoretische Status einer ID von der praktischenSicht des Servers abweicht.

DeleteMit Delete werden nach einer Sicherheitsabfrage des Benutzerlogins sämtliche hinterlegten IDsund Preloads entfernt (Datensätze sind hiervor jedoch nicht betroffen).

Single IDs und Multi IDsMit Klick auf die beiden Buttons Single IDs und Multi IDs werden die aktuellen ID-Informationen zum Download angeboten.

26.3.10 Reporting konfigurieren

Im Reporting setup können generelle Einstellungen für den Menübereich Reporting vorge-nommen werden. Sie werden in der reporting.json im Studienverzeichnis gespeichert. (AlteKonfigurationsdateien werden nur noch zum initialen Herleiten der neuen JSON Variante ver-wendet, sofern diese noch nicht existieren.)

Abb. 26.10: Studie konfigurieren: Reporting

In der ersten Tabelle können Übersichtsvariablen bearbeitet werden:

IgnoreIds: Unter IgnoreIds wird eine Liste der IDs hinterlegt, die beim Zählen der Statistikenignoriert werden sollen. Standardweise handelt es sich hierbei um Test-IDs oder ähnliches.

Total: Hier kann der angezeigte Text für die Summe aller Interviewkontakte geändert werden.

Current: Hier kann der angezeigte Text für die aktuellen Interviews bearbeitet werden.

Cancelled: Hier kann der angezeigte Text für die abgebrochenen Interviews geändert werden.

Finished: Hier kann der angezeigte Text, sowie der zugehörige exit-code für abgeschlosseneInterviews angepasst werden. Außerdem können bestehende Finished-Werte gelöscht undneue hinzugefügt werden.

In der zweiten Tabelle zeigt die GTC-Dateien aus dem zugehörigen Ordner an. Die Dateienkönnen hier bearbeitet, runter- und hochgeladen werden.

GESS Q. (Stand: März 2018) 202

Page 215: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

Unter Visibilities kann man pro (auf die Studie zugelassenen) Nutzer die Sichtbarkeit desReportings anpassen. Nähere Informationen zum Inhalt sind unter Abschnitt 26.6 zu finden.

Overview informiert in einer zeitlichen Verlaufsgrafik über laufende, beendete und abgebrocheneInterviews.

Statistics aktiviert den Menüpunkt Statistics, der grundlegende statistische Informationen zurUmfrage darstellt.

Tables zeigt die Tabellen, die GESStabs automatisch aus dem aktuellen Datenbestand produziert.

Tab-File zeigt an, aus welcher Datei die Tabellen gelesen werden sollen. Es können unterschied-liche Bände für die Nutzer definiert werden.

Quoten schaltet die Quotenansicht frei. Standardweise werden alle Quoten angezeigt.

Durch Klick auf das Werkzeug-Symbol kann man die Sichtbarkeiten pro Nutzer bearbeiten. Eserscheint folgender PopUp:

Abb. 26.11: Studie konfigurieren: Visibilities bearbeiten

Unter dem Quota-Bereich kann zwischen Show all und der offenen Angabe von Quoten entschie-den werden. In der offenen Angabe können die gewünschten Quoten untereinander aufgelistetwerden.

GESS Q. (Stand: März 2018) 203

Page 216: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

GESS Q. prüft außerdem auf die Existenz der angegebenen Quoten.

Abb. 26.12: Studie konfigurieren: Quotenprüfung

Bei einer Auflistung der Quoten wird hinterher in der Visibilities-Tabelle nur noch die Anzahlder zugelassenen Quoten angezeigt. Die Auflistung der zugewiesenen Quoten sind jedoch weiterhinunter dem Editier-PopUp zu finden. Wenn ein nicht existierendes Tab-File angegeben wird,erscheint bei der Visibilities-Tabelle ein gelbes Warnzeichen.

26.3.11 Quota

Abb. 26.13: Studie konfigurieren: Quoten

Zum Quoten-Management auf der Administrationsebene gehören neben dem Editieren der Quotenauch das Hinzufügen und Löschen. Hier angelegte Quoten sind nur studienglobale Zählerstände.Die Variablen selbst müssen im Skript als QuotaVar angelegt sein. Datensätze speichern diewährend des Ausfüllen eines Fragebogens gezählten Quoten. Auf Basis dessen lassen sich dieaktuellen Quotenstände mit Re-count neu zählen, falls die Quotenstände während der Feldzeitaufgrund manueller Eingriffe aus dem Ruder gelaufen sind. Neu hinzufüge Quoten oder geänderteQuotendefinitionen (Zählbedingungen) werden demnach nicht berücksichtigt.

GESS Q. (Stand: März 2018) 204

Page 217: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

26.3.12 Filesystem

Unter dem Punkt Filesystem gibt GESS Q. Auskunft über die Dateien und ihre Codierung imVerzeichnis text. Früher, langjährige Nutzer werden sich erinnern, bildete das Nebeneinandervon ASCII, DOS-Codepages und ISO-Kodierungen öfter ein Problem. Für GESS Q. stellenunterschiedliche Kodierungen kein Problem dar, sie werden automatisch erkannt. Die Ausgabevon GESS Q. erfolgt allerdings immer in UTF-8. Aus diesem Grund muss im Kopf des HTML-Templates zwingend die Zeile

<meta name="Content-Type" content="text/html; charset=utf-8"/>

erscheinen. Nur so ist gewährleistet, dass die Ausgabe im Browser mit unterschiedlichen Sprachenvon Englisch bis Chinesisch kein Problem hat. Außerdem exportiert GESS Q. auch die OPN-Dateien in UTF-8-Kodierung.

Alle Dateien der Liste bietet GESS Q. zum Download an (zweite Spalte), .q-Dateien bietet dieOberfläche über den Schraubenschlüssel auch zum Editieren an, d.h. die Dateien werden direktin dem Editor geöffnet, der als Standard für .q-Dateien festgelegt ist.

Abb. 26.14: Studie konfigurieren: Zeichencodierung

Falls es wider Erwarten doch ein Problem mit den Kodierungen geben sollte, kann die automatischeErkennung von GESS Q. mit dem Anlegen der Datei encoding.lst übergangen werden. DieDatei ordnet zeilenweise einer Datei eine Codierung zu in der Form:

Dateiname Zeichensatz

Nun gibt es zwar nicht so viele Zeichensätze wie Sand am Meer, aber die Tendenz geht dahinund nicht alle Zeichensätze werden zwangsläufig richtig behandelt. Die kurze Lösung wäre indem Fall, generell auf UTF-8 auszuweichen.

GESS Q. (Stand: März 2018) 205

Page 218: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

26.3.13 User assignment - Nutzerkonten

Unter User assignment erscheint eine Liste aller dem System bekannten Nutzer alphabetischsortiert, wobei Admins gesondert aufgeführt sind. Die bereits mit einem Haken versehenen Kontenhaben schon Zugriff auf die aktuelle Studie. Weitere Nutzer können der Studie zugeordnet werden,indem die Checkbox am Anfang der Zeile mit einem Haken versehen und die Liste über denKnopf Save gespeichert wird.

Auf diese Weise lassen sich die Einträge in der Datei access.lst verwalten.

Die Zugriffsrechte der Nutzer auf die Studie werden duch die in der Nutzerverwaltung (unter Main ,Menü-Punkt Users ) dem Konto zugeordneten Rechte bestimmt (zum Thema Zugriffsrechte s.Abschnitt 24.2.2).

26.3.14 Sprachmanagement

Eine Frage lässt sich als Datensatz verstehen, der verschiedene Felder beinhaltet: Text, Titel,Labels usw. Jedes dieser Felder hat einen eigenen Namen bestehend aus Fragename (z. B. f1)und Feldname (z. B. qqtext), so dass der Fragetext über das entsprechende Feld ( f1_qqtext)erreichbar ist. Übersetzungen arbeiten tabellenbasiert: Dem Feldnamen in der ersten Spalte istder Text in der zweiten Spalte zugeordnet. In welcher Sprache und mit welchem Alphabet derText verfasst ist, ist dabei unerheblich und so kann für jedes Interview die gewünschte Sprachefestgelegt werden, indem den Feldnamen die entsprechende Übersetzung zugeordnet wird.

Die Übersetzungstabelle mit einer Tabellenkalkulation zu erstellen, hat sich in der Vergangenheitzwar als machbar erwiesen, stellte aber auch eine Fehlerquelle dar: HTML-Formatierungen inden Texten gingen verloren, nicht alle Felder wurden übersetzt, weil viele mehrfach erscheinenusw. Daher bietet GESS Q. einen eigenen Ansatz, Übersetzungen zu erstellen und zu verwalten.Das Grundprinzip bleibt dabei erhalten: Den Feldnamen wird in einer Tabelle eine Übersetzungzugeordnet. Aber GESS Q. bringt darüber hinaus einige Besonderheiten mit, die das Übersetzenerleichtern.

Voraussetzung für das Sprachmanagement ist eine PostgreSQL-Datenbank. Auf welche DatenbankGESS Q. wie zugreifen soll, legen Parameter in der Datei qonline.cfg fest (zu Einzelheiten s.Abschnitt 24.2.1).

Abb. 26.15: Sprachmanagement

Der Kasten Native language erscheint im Screenshot (Abbildung 26.15) ausgefüllt, weil eineÜbersetzung bereits angelegt wurde. Wenn keine Übersetzung existiert, enthält der Kastennur ein warnendes Dreieck und den Schraubenschlüssel. Mit einem Klick auf den Schrauben-schlüssel erhalten wir die Möglichkeit, eine Übersetzungstabelle anzulegen. Mit dem Klick aufRebuild & Save erscheint eine Auswahl, mit der die im Skript verwendete Ausgangssprache

GESS Q. (Stand: März 2018) 206

Page 219: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

festgelegt werden kann. Wenn die Auswahl getroffen ist, generiert GESS Q. eine zweispaltigeÜbersicht: links die Feldnamen, rechts die Feldinhalte. Über den Download-Knopf kann dieTabelle heruntergeladen werden. Zurück in der Übersicht zum Sprachmanagement weist derKasten »Native language« jetzt die Ausgangssprache aus und zeigt das Datum, an dem dieAusgangstabelle angelegt wurde.

Im Kasten daneben können wir über den Knopf Add language Tabellen für die Übersetzunghinzufügen. Der Klick öffnet erneut die Sprachauswahl, mit der wir das Kürzel für die Ziel-sprache dieser Tabelle festlegen können. Anschließend weist die Übersicht die Sprachkennungund die Sprache aus sowie das Datum, an dem die Tabelle zuletzt verändert wurde. Über denSchraubenschlüssel öffnet sich die Tabelle für die Übersetzung (s. u.). Über das Pfeilsymbol unterImport können vorhandene Übersetzungsdateien (.lrs) beim Anlegen einer neuen Übersetzungals Grundstock in die Datenbank importiert werden. Auf diese Weise lassen sich Sprachvariantenhandhaben, wenn etwa eine vorhandene deutsche Übersetzung für die österreichische Varianteimportiert werden kann, bei der dann nur die Abweichungen korrigiert werden müssen.

Der Klick auf das Plus-Zeichen unter Assigned Translators erlaubt es, jeder Sprachtabelleeinen oder mehrere Übersetzer zuzuordnen. Der Klick auf das Plus-Zeichen öffnet die Auswahl fürdie Übersetzer und weist die Nutzernamen aus, die mit der Rolle Translator in der User-Tabelle(s. Abschnitt 26.10) eingetragen und über User Assignment (s. Abschnitt 26.3.13) der Studiezugeordnet sind. Mit einem Klick in das weiße Feld öffnet sich die Liste der Übersetzer. Ein Klickauf den Namen ordnet die Auswahl als Übersetzer zu. Aus der Liste lassen sich die einzelnenEinträge über das »x« wieder entfernen. Nach einem Klick auf das Diskettensymbol bietet GESSQ. an, die Übersetzungstabelle mit dem Dateinamen SPRACHE.lrs (für Französisch z. B, fr.lrs)zu speichern. Das System hinterlegt die Tabelle im Skript-Verzeichnis, und dann kann sie imSkript über die Anweisung readTextRessource (s. Abschnitt 13.2) eingelesen werden.

Bei einer Änderung der Übersetzung muss nur die Sprachtabelle erneut als als lrs-Datei erneutabgespeichert werden, damit sie beim nächsten Start eines Interviews eingelesen werden kann.Wenn dagegen der Fragebogen verändert wird, indem Fragen hinzukommen oder Fragenamenverändert werden, müssen wir die grundlegende Datenbanktabelle über den Schraubenschlüsselunter Native language durch einen Klick auf Rebuild & Save neu aufbauen. Ein Rebuild derSkriptsprache kann jederzeit vorgenommen werden. Neue Texte werden automatisch ergänzt,nicht mehr vorhandene entfernt (aber nicht aus der Datenbank gelöscht) und veränderte Textewerden orange gekennzeichnet. Ändert man also eine Frage von SingleQ zu SingleGridQ, dannbleiben Fragetext/-titel, Intervieweranweisungen etc erhalten solange der Fragename identischbleibt. Ändert man auch den Namen der Frage, muss man sie komplett neu übersetzen. Ändertman im Skript alles zum Ursprung zurück, tauchen auch die alten Übersetzungsinformationenwieder auf (orange).

GESS Q. (Stand: März 2018) 207

Page 220: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

dynamische SprachwechselDer dynamische Sprachwechsel (HTML-Switch) überschreibt den @language-Platzhalter in derTemplate (vgl. Kapitel 14.1.4). Für jede gespeicherte Sprache im Übersetzungstool wird hierautomatisch eine neue Zeile in der Tabelle hinzugefügt. Über den Schraubenschlüssel kann dieListe dann mit dem zugehörigen HTML-Switch ergänzt werden:

Abb. 26.16: HTML-Switch

Das Übersetzungswerkzeug

Abb. 26.17: Die Übersetzungstabelle

Die Abbildung 26.17 zeigt eine Tabelle mit Englisch als Ausgangssprache im Skript (en) undder Übersetzung ins Russische (ru). Sortiert ist die Tabelle nach den Feldnamen; dadurchlistet zeigt die Tabelle die Felder einer Frage in unmittelbarer Nachbarschaft. GESS Q. hat indem gezeigten Ausschnitt insgesamt 881 Felder identifiziert, die zu übersetzen sind. An 823existierenden Übersetzungen hat das System nichts auszusetzen (links grün unterlegt). Beiacht Übersetzungen warnt GESS Q. (gelb unterlegt), dass nach der Übersetzung der Quelltextnoch einmal verändert wurde. Um die Warnung zu entfernen, muss die Übersetzung korrigiertoder bestätigt werden. Rot unterlegt das System die Anzahl der Übersetzungen, die einenmöglichen Fehler enthalten, weil Elemente aus dem Quelltext (HTML-Formatierungen, GESSQ.-Anweisungen) nicht oder fehlerhaft in die Übersetzung übernommen wurden. 50 Felder (weißunterlegt) sind nicht übersetzt. Die Knöpfe mit der Anzahl der Felder funktionieren auch als Filter:ein Klick auf die gelb unterlegte acht zeigt in der Tabelle nur die acht noch zu überprüfendenÜbersetzungen an. Ein Klick auf die 881 hebt die Einschränkung wieder auf und zeigt die ersteSeite mit 250 Einträgen an.

Leer gelassene Übersetzungen, auch wenn diese zuvor schon einmal einen Inhalt hatten und

GESS Q. (Stand: März 2018) 208

Page 221: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

damit grün hinterlegt sind, werden grundsätzlich nicht in die Zielsprache übernommen. Solchefehlenden Textstellen werden von GESS Q. beim Laden ignoriert und der Originaltext bzw. zuvorgültige Text bleibt im Fragebogen.

Quelltexte aus dem GESS Q. Skript, die keinen zu übersetzenden Inhalt haben und nur ausSchlüsselwörtern wie @insert() oder HTML-Inhalten bestehen, werden grundsätzlich nichtberücksichtigt und gelangen automatisch unverändert in die Zielsprache. Diesen Effekt kann undsollte man bereits beim Verfassen des Skripts nutzen, um die zu übersetzenden Inhalte so einfachwie möglich zu halten und Layoutanweisungen oder Textersatz in eigenen Textbereichen kapseln.

Mit einem Eintrag im Suchfeld und dem Klick auf die Lupe wird die Anzeige auf die Einträgeeingeschränkt, die den Suchbegriff enthalten. Das gilt auch für die Feldnamen, so dass etwa dieSuche nach »f1_« alle Felder ausweist, die diese Zeichenkette enthalten. Auch hier arbeitendie Knöpfe als Filter, und wir können die Anzeige mit einem Klick auf den gelben Knopf aufdie Felder einschränken, deren Übersetzung sich noch geändert hat. Um die durch die Sucheeingeschränkte Anzeige aufzuheben, muss das Suchfeld geleert werden. Der Suchbegriff QSYNTAXliefert alle Texte mit syntaktischen Besonderheiten (z. B. HTML, GESS Q. Befehle) zurück.

Für die eigentliche Übersetzung müssen nur die leeren Felder in der rechten Spalte ausgefülltwerden. Dabei zeigen sich einige Besonderheiten: Wenn der Cursor im nächsten Feld platziert wird,überprüft das System die Eingabe. Handelt es sich um einen häufiger auftretenden Text bietet esan, wie Abbildung 26.18 zeigt, alle Vorkommnisse des Textes mit der gewählten Übersetzung zuversehen.

Abb. 26.18: Nachfrage: Alle Vorkommnisse übersetzen?

Zwischen dem Skript-Text und der Übersetzung bringt GESS Q. mit kleinen Markierungen nochzusätzliche Informationen unter:

• Ein grün unterlegter Haken bedeutet ok.

• Ein rot unterlegtes Ausrufezeichen zeigt ein Problem mit der Übersetzung an underläutert es, wenn der Mauszeiger darüber liegt.

• Das grau umrandete Uhrensymbol zeigt an, dass die Übersetzung geändert wurde. EinKlick auf das Symbol zeigt die bisherigen Versionen der Übersetzung an.

26.3.15 Feedback Tool

Das Feedback-Tool soll die Korrektur-Schleifen mit Kunden / Testern vereinfachen. Grundvor-aussetzung hierfür ist das Setzen des Parameters feedback im Skript:#ifdef testmodefeedback = yes;

GESS Q. (Stand: März 2018) 209

Page 222: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

#endif

Meistens bietet es sich an, die Option der Rückmeldung nur in Testfällen zuzulassen. Ist derSchalter aktiviert, erscheint auf jedem Screen im Fragebogen ein Feedback-Symbol unten links.Möchte man Feedback zu der Seite melden, öffnet sich beim Klick auf das Symbol ein PopUp.Hier kann beschrieben werden, was falsch aussieht bzw. was verändert werden sollte.

Abb. 26.19: Feedback-PopUp

Beim Klick auf "Send" gibt es eine kurze Rückmeldung, ob das Feedback erfolgreich gespeichertwurde oder nicht. Gleichzeitig wird - sofern vom Browser unterstützt - im Hintergrund einScreenshot von der Seite selbst gemacht und mit abgespeichert.

GESS Q. (Stand: März 2018) 210

Page 223: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

Das gesammelte Feedback kann unter Configure -> Feedback eingesehen und bearbeitet werden:

Abb. 26.20: Feedback-Übersicht

Jedes Feedback speichert auch das Datum inkl. Uhrzeit, den Screen, die _caseid, den Feedback-Text, sowie Browser-spezifische Informationen und ggf. den Screenshot. Die Tabelle kann nachden ersten vier Spalten sortiert werden. Rechts über der Tabelle kann man auch nach bestimmtenBegriffen suchen lassen. Jedes Feedback ist über das Werkzeug-Symbol editierbar:

Abb. 26.21: Feedback editieren

Hier können Kommentare eingefügt oder die Rückmeldung als erledigt gekennzeichnet werden.Über das Print-Symbol kann die bearbeitete Tabelle ausgedruckt oder abgespeichert und an den

GESS Q. (Stand: März 2018) 211

Page 224: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

Kunden zurück geschickt werden.

26.3.16 Print - Fragebogen drucken

Mit Print kann eine HTML Ausgabe für den geskripteten Fragebogen als PDF gespeichert odergedruckt werden. Hier werden alle Asserts, Filter, Labelattribute dargestellt. Dies ermöglichteine Überprüfen von Inhaltungen und Steuerungslogiken, ohne den Fragebogen im Browser Fragefür Frage beantworten zu müssen.

Bevor ein Fragebogen in eine druckbare Fassung gebracht wird, lässt sich generell einstellen, ober unter Verwendung bestimmter Sprachquellen, Defines oder Whitelists generiert werden soll,siehe 26.22.

Abb. 26.22: Print: Voreinstellungen

Anschließend kann in einem Dialog (26.23) ausgewählt werden, welche Inhalte in der Ausgabelanden sollen. So kann je nach Interesse auf Intervieweranweisungen, Frage- und Labelattribute,Plausibilitätsbedingungen und TextElements sowie Groups verzichtet werden.

Abb. 26.23: Print: Inhalte wählen

Das letztliche Ergebnis erscheint als HTML Seite und sähe beispielhaft so aus wie in Abbildung26.24. Aus dem Browser heraus kann die Ausgabe z.B. als PDF abgespeichert bzw. gedrucktwerden.

GESS Q. (Stand: März 2018) 212

Page 225: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

Abb. 26.24: Print: Ergebnis

26.3.17 Language Ressource

Um Studien in mehreren Sprachen durchzuführen, müssen die Texte, die einen Fragebogenausmachen, übersetzt werden. Dies lässt sich inzwischen komfortable über das Q. eigenen Über-setzungstool bewerkstelligen, siehe Kapitel 26.3.14. Sprachen werden technisch in sogenanntenLRS Dateien gepflegt, was letztlich einfache Textdateien sind, die Textidentifizierer und zugehörigeTexte enthalten.

Der Knopf Language ressource erstellt zum aktuellen Skriptstand (ohne Defines) eine pas-sende LRS Datei, die man theoretisch für manuelle Übersetzungen verwenden könnte. Diessollte man nur in Erwägung ziehen, wenn es trifftige Gründe gibt, die gegen den Einsatz desÜbersetzungstools sprechen. Vielmehr ist diese Datei sinnvoll, um sie in finalem Zustand zumLaden der Originalsprache zu verwenden, falls dies erforderlich sein sollte.

26.3.18 Expanded Script

Für die Fehlersuche kann es sinnvoll sein, sich das vollständige Skript anzusehen, so wie esGESS Q. abarbeitet. Das bedeutet, alle Trennungen in verschiedene Dateien, die über #include-Anweisungen zusammengeführt werden, alle Leerzeilen, die zur übersichtlichen Strukturierungim Skript eingefügt wurden, hebt GESS Q. auf und zudem werden alle Makros expandiert. Daskomplette Skript bietet GESS Q. dann unter dem Namen skript_expanded.q zum Download an.

GESS Q. (Stand: März 2018) 213

Page 226: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

26.3.19 Logfile

Im Fragebogenverzeichnis führt GESS Q. anhand der einzelnen Interviewer-IDs Protokoll darüber,wann und bei welcher Frage Interviews begonnen, beendet oder abgebrochen wurden. Dieentsprechende Datei surveylog.lst bietet der Knopf Logfile zum Download an.

26.4 Upload von Studien

Um einen Fragebogen vom Entwicklungssystem in die Testumgebung auf den Produktionsserveroder auf ein Android-Gerät zu kopieren, eignet sich der Menü-Punkt Upload .

26.4.1 Server upload

Links unter Target server steht der in Configure (siehe Abschnitt 26.3.1) zugewiesene Zielserver.Bei Klick auf Next wird der Upload vorbereitet.

Abb. 26.25: Print: Inhalte wählen

Falls die Studie bereits vorhanden ist, sie womöglich nur aktualisiert werden soll, muss sie vordem Upload auf dem Zielserver deaktiviert werden. Beim Upload auf den Server lassen sicheinzelne Bestandteile der Studie ausgewählen bzw. auslassen:

GTC folder Das Verzeichnis gtc mit den Anweisungen für das automatisierte Erstellen vonTabellen mittels GESStabs.

Text folder Das Verzeichnis text, in dem sich das Skript, Sprachquellen, sowie die Reporting-Einstellungen befinden.

Media folder Das Medienverzeichnis der Studie mit den grafischen Elementen, sowie eventuellzusätzlichen CSS- oder Javascript-Quellen.

Quoten Alle den Quoten zugehörigen Dateien mit Informationen über aktuellen Ständen, Ziel-werten und Beschreibungstexten.

IDs Die ID-Listen sowie zugehörige Preloads.

Countvars Angelegte Countvars sowie deren Stand.

Datasets Alle vorliegenden Rohdatensätze.

Config files Die Studieneinstellungen. Dies umfasst Titel, Zustand (de-/aktiviert), Zugriffsbe-rechtigungen für Nutzer, grundsätzliche ID Einstellungen (Gestatten des Testmodes oder

GESS Q. (Stand: März 2018) 214

Page 227: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

unbekannter IDs, sowie den Namen des ID URL Parameters) und HTML Schalter zumSprachwechsel.

Create backup on server legt bei Aktualisierungen fest, ob serverseitig zuvor ein Backup ange-legt wird.

26.4.2 Android upload

Wenn GESS Q. ein Android-Gerät am USB-Anschluss bemerkt, bietet es automatisch dieMöglichkeit, die Studie auf das Gerät zu kopieren. Im Gegensatz zu den verschiedenen Server-Optionen kann die Studie nur vollständig auf Android kopiert werden. Als Option bietet dasProgramm nur an, das Medienverzeichnis beim Kopieren auszulassen.

Ist der zu kopierende Fragebogen auf dem Gerät bereits vorhanden, wird er durch den Uploadnur aktualisiert, ansonsten wird die Studie neu angelegt. Der Unterschied macht sich auf Tabletsvor allem bei den Fallnummern bemerkbar: Die Aktualisierung belässt es bei der fortlaufendenZählung, bei neu angelegten Fragebögen beginnt die Zählung dagegen von vorn.

26.5 Daten und Export

Abb. 26.26: Daten und Exportoptionen

Bevor wir zum Thema Datenexport kommen, einige Informationen zu den Ausgangsdaten, densogenannten Rohdaten. Jedes Interview wird in einem eigenen Datensatz gespeichert. Zusätz-lich zu den eigentlichen Antwortdaten, enthält der Datensatz eine Vielzahl an System- undSteuervariablen.

Die Rohdaten werden unter den zur Zeit der Erhebung vergebenen Variablennamen gespei-chert. Das hat den enormen Vorteil, dass man sich im Vorfeld noch keine Gedanken über eineDatensatzstruktur oder eine eventuelle Bespaltung machen muss. Selbst wenn sich nach derHälfte der Feldzeit herausstellen sollte, dass der Kunde gerne noch eine Labelliste verlängert,

GESS Q. (Stand: März 2018) 215

Page 228: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

eine Frage ergänzt oder gelöscht haben möchte - alles kein Problem. Mit GESS Q. gehörenSpaltenverschiebungen und Spaltenpläne der Vergangenheit an.

Sehen wir uns nun einmal die Oberfläche für den Daten-Export an:

Abb. 26.27: Oberfläche für den Datenexport

In diesem Zustand sind noch keinerlei Merkmale für den Export eingerichtet. Aber schon Erzeugendes Variablenschemas (Colmap) werden alle weiteren Elemente der Oberfläche aktiv. Von diesemZeitpunkt an wird GESS Q. auch selbsttätig bei jedem Zugriff die hinterliegenden Exportformateauffrischen. Neue Rohdaten werden eingefügt, gelöschte entfernt und veränderte aktualisiert. Inden folgenden Kapiteln wird beschrieben welche Funktionalitäten sich in diesem Bereich befindenund wie sie genutzt werden.

26.5.1 Native Data - Rohdaten verwalten

Die Seite hinter Native Data gibt Aufschluss über die bis zum Zeitpunkt des Seitenaufrufsvorliegenden Datensätze. Die Tabelle weist mit der Flagge den Status aus (grün: beendet, gelb:nicht beendet), zeigt die vom System vergebene Fallnummer, die Teilnehmer-ID, das Datum, andem das Interview begonnen wurde, und die Anzahl der Unterbrechungen.

Abb. 26.28: Daten editieren

Die Icons am Ende der Zeile erlauben es, auf unterschiedliche Weise auf den jeweiligen Datensatzzuzugreifen: Ansehen ( Lupe ), Drucken ( Drucker ), Bearbeiten ( Schraubenschlüssel ), Löschen( Papierkorb ). Mit dem Zugriff über die Lupe wird nicht einfach der Datensatz angezeigt, sondernGESS Q. geht die einzelnen Screens durch, so wie der Befragt sie ausgefüllt hat. Hierbei wird das

GESS Q. (Stand: März 2018) 216

Page 229: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

Interview mit negativer Fallnummer gestartet wird und am Ende verworfen. Daher kann dieseAnsicht auch immer nur einmal zur Zeit gestartet werden. Erst nach Abschluss oder Timeoutdes Testfalls ist ein erneuter Aufruf möglich.

Über den Drucker bietet das System ein Zip-Archiv mit Screenshots der einzelnen ausgefülltenScreens an. GESS Q. verwendet hier den gleichen Mechanismus wie beim integrierten Robot fürScreenshots: das Interview wird mit negativer Fallnummer noch einmal gestartet und die Screensso ausgefüllt, wie es der Datensatz vorgibt (zu Einzelheiten siehe Abschnitt 26.2).

Der Schraubenschlüssel öffnet ein weiteres Auswahlfenster, in dem alle Variablen des Datensatzesaufgelistet sind und bearbeitet werden können, siehe Abbildung 26.29.

Abb. 26.29: Rohdaten ansehen und editieren

Der Schraubenschlüssel inter jeder Variable im Fenster Edit case ermöglicht es, den Wert derVariable zu ändern (beachten: GESS Q. prüft an dieser Stelle die Eingabe nicht, eine SingleQkönnte auf diesem Weg also auch einen alphabetischen Wert erhalten). Über den Papierkorbkann ein Datensatz gelöscht werden. Beim Löschen werden automatisch Quoten und Statistikenzurückgezählt sowie Logeinträge entfernt.

26.5.2 Exportvorgaben

Die Rohdaten von Einzelfällen selbst sind für die Auswertung mit weiterführenden Program-men wie GESStabs oder SPSS ungeeignet. Hier Bedarf es in der Regel eines kumulierten undstrukturierten Gesamtdatensatzes. Übliche Formate wären ASCII, CSV oder SPSS. Um dieseFormate zu generieren benötigt GESS Q. die sogenannte Colmap , die sich in der Benutzerober-fläche hinter Variables verbirgt. Sie definiert welche Variablen aus den Rohdaten verwendetwerden sollen. Speziell für das inzwischen veraltete, spaltenfixierte ASCII Format fungiert esauch als Bespaltungsplan. Daher kommt auch der Name Colmap zustande (Column Mapping =Bespaltungsplan).

Am Anfang des Datenexports werden Sie folgendes sehen:

Abb. 26.30: Erster Schritt zum Datenexport

GESS Q. (Stand: März 2018) 217

Page 230: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

Das heißt, dem System liegen noch keine Informationen vor, wie die verschiedenen Datensatz-formate aufgebaut werden sollen. Wenn Sie den Schraubenschlüssel unter Variables drücken,gelangen Sie zur Ansicht der Colmap, siehe Abbildung 26.31. An dieser Stelle können Sie auto-matisch eine Colmap generieren oder selbst erzeugte hochladen. Beschränken wir uns an dieserStelle einmal auf Rebuild & Save , der automatischen Methode, die in aller Regel ausreichendeDienste leistet. Dabei erzeugt GESS Q. eine Liste aller enthaltenen Variablen und legt für dasASCII Format auch jeweils eine Spaltenposition aus Anfangsspalte, Spaltenbreite und Anzahlenthaltener Werte fest.

Abb. 26.31: Datenexport: Colmap erzeugen

Sollten Sie einmal Ihr Skript verändern müssen, weil Sie vielleicht die erwähnten Fragen 2aund 2b mit aufnehmen möchten, müssen Sie anschließend auch eine neue Colmap erzeugen.Dabei zeigt sich die Stärke des individuellen Datensatzes für jeden Befragten. Für die bereitserhobenen Daten gab es die Fragen 2a und 2b noch nicht. Die Variablen tauchen in dem jeweiligenRohdatensatz also nicht auf. Diese neuen Fragen bleiben für diese Befragten im Gesamtdatensatzeinfach leer, da die Zuordnung innerhalb des Datensatzes über den Variablennamen und nichtüber eine feste Bespaltung vorgenommen wird.

Sie sollten es allerdings vermeiden, während der Feldzeit den Variablentyp zu ändern. Dadurchkann es zu unerwünschten Seiteneffekten kommen, z. B. wenn Sie aus einer MultiQ eine NumQmachen. Damit würde sich auch der Variablenname von z. B. F2 zu F2.1 ändern. Aus einerSingleQ eine MultiQ zu machen, funktioniert dagegen gefahrlos, in die andere Richtung wird esaber ebenfalls schief gehen.

Nach dem Erzeugen der Colmap sehen wir Folgendes:

Abb. 26.32: Inhalt der Colmap

Im linken Teil sehen Sie den Inhalt der Colmap (eine Reihe der in Kapitel 9 angesprochenen

GESS Q. (Stand: März 2018) 218

Page 231: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

internen Variablen schreibt GESS Q. an den Anfang der Tabelle). Die drei Knöpfe rechtssind selbsterklärend: Mit Rebuild & Save wird die Colmap neu aus dem jeweils aktuellenBefragungsskript erzeugt, mit Download können Sie die Colmap herunterladen, bearbeiten, umeventuell bestimmte Variablen nicht mit in den Gesamtdatensatz zu übernehmen und mit Uploadkönnen Sie diese wieder hochladen und für den weiteren Datenexport nutzen.

Beachten Sie, dass bei jedem Generieren der Colmap automatisch auch die in nächsten Teilbeschriebene GESStabs var.inc und die aus den Rohdaten erzeugten Exportformate vollständigneu aufgebaut werden. Enthält das Projekt bereits viele Datensätze kann dieser Prozess auchetwas länger dauern. Sollten Ihnen hier oder beim Aufruf der Übersichtsseite des Datenexportseine Fehlermeldung (Column Boundary Violation) vorgelegt, dann gibt es in Ihrem Datenbestandeine oder mehrere Variablen in konkreten Rohdatensätzen, deren Werte mehr Platz in Anspruchnehmen, als laut aktuellem Skript zulässig wäre. Angenommen Sie hatten eine Labelliste mitLabelwerten von 1 bis 100 und diese auf 1 bis 99 reduziert, dann würde die Colmap fürneuen Wert 2 Spalten vorsehen. Sollte es nun jedoch alte Datensätze geben, die den Wert100 enthalten, passt dies nicht mehr in den vorgesehenen Raum. Diese Fehlermeldung ist alsozwingend nachzuvollziehen.

26.5.3 GESStabs var.inc

Zurück auf der Übersichtsseite (nach dem Erzeugen der Colmap) des Datenexports sehenSie im linken Kästchen, wann die Colmap erzeugt wurde. Sehen wir uns nun einmal denSchraubenschlüssel im mittleren Kästchen an. Er führt uns zum Herzstück des Datenexports,der GESStabs Variablendefinition (var.inc). Sie kann nicht nur von GESStabs Tabellierern zurWeiterverarbeitung verwendet werden, sondern wird auch intern von GESS Q. benutzt, um imHintergrund mit GESStabs live Tabellen für das Reporting bereitzustellen und SPSS Dateienzu generieren. In beiden Fällen wird die var.inc verwendet, um alle enthaltenen Variablen undTexte für GESStabs zugänglich zu machen.

Abb. 26.33: Übersicht des Datenexports mit Colmap

Hier sehen Sie einen Ausschnitt aus der var.inc. Es handelt sich um eine vollständige undgebrauchsfertige Variablendefinition in GESStabs Syntax inklusiver aller Fragetexte, -titel undAntworten, sowie allen relevanten GESS Q. Systemvariablen.

GESS Q. (Stand: März 2018) 219

Page 232: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

Abb. 26.34: Die GESStabs var.inc

Mit Download können Sie diese Variablendefinitionen herunterladen. Rebuild & Save öffnet einFenster, in dem Sie die Variablendefinitionen noch an Ihre Bedürfnisse anpassen können.

Abb. 26.35: Optionen beim Speichern der GESStabs var.inc

Über den Punkt Language können Sie die Sprache wählen, in der die Variablendefinitionausgegeben werden soll. Haben Sie z. B. eine Internationale Studie in mehreren Sprachen (.lrs-Dateien), können Sie an dieser Stelle angeben, ob Ihr SPSS-Datensatz in der Native-Language,also der Sprache in der geskriptet wurde, ausgegeben wird oder in einer anderen Sprache, die indieser Studie genutzt wurde.

Mit dem voreingestellten LEGACY bei Type bekommen Sie mit der var.inc eine reine filterloseBeschreibung aller Variablen. Fortgeschritte Anwender, die sich gut mit GESStabs auskennenkönnen auch NORMAL wählen. Die var.inc wird hier um Filtersyntax ergänzt, die von Haus ausallerdings nicht 100% kompatibel GESStabs ist und damit ohne Nachbearbeitung fehlerhaft seinkann.

Da GESS Q. es erlaubt HTML spezifische Inhalte und Formatierungen in die Texte einzubinden,diese aber nicht von jeder Software für die Weiterverarbeitung genutzt werden können, haben Siehier die Möglichkeit HTML Inhalte entfernen zu lassen. Das Gleiche gilt für Systemkommentare.

Die in der var.inc verwendeten Variablennamen werden aus GESS Q. heraus generiert und sindüber den Skriptbefehl ExportMapping optional änderbar, siehe Kapitel 5.2.

GESS Q. (Stand: März 2018) 220

Page 233: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

26.5.4 Exportformate: ASCII, OPN, CSV, SPSS

Abb. 26.36: Exportformate

Bleibt nun noch das rechte Kästchen. Hier werden Ihnen die verschiedenen Exportformategetrennt für abgeschlossene und unterbrochene Fälle zum direkten Download angeboten. AlleFälle, die noch fortgesetzt werden könnten werden hier als abgebrochen verstanden. Zielgruppen-oder quotenbedingte Abbrüche (Screenout und Quotaout) sind im Verständnis von GESS Q.abgeschlossen. Aktive Fälle sind nicht oder, falls vorhanden, mit dem Datenstand zum Zeitpunktihrer letzten Unterbrechung enthalten.

Das ASCII Format entspricht der Definition in der Colmap und wird in der ZeichencodierungANSI ausgeliefert. Es enthält jedoch keine offenen Nennungen. Diese können separat über denButton OPN bezogen werden, der im Folgenden noch eingehender behandelt wird.

Aus Gründen der Kompatibilität zu GESStabs entspricht das CSV Format der Definition desCSVINFILE und wird mit der Zeichencodierung UTF-8 (ohne BOM) ausgeliefert. Hier seiauf die ausführliche Dokumentation von GESStabs verwiesen. Es entspricht letztlich einemgängigen CSV Format mit dem Semikolon als Trennzeichen und sollte daher auch problemlosvon zahlreichen anderen Statistikprogrammen eingelesen werden können. Die im CSVINFILEverwendeten Variablennamen werden aus GESS Q. heraus generiert und sind über den SkriptbefehlExportMapping optional änderbar, siehe Kapitel 5.2.

Per Klick auf den SPSS Button wird aus den aktuellen Datenbeständen eine SPSS-SAV Dateimit allen Fragetexten und Antwortlabels erzeugt. Dies erledigt GESStabs durch Ausführung desTabellierskripts exportspss.tab. Man hat hier die Möglichkeit in die Erstellung der SAV Dateieinzugreifen und Änderungen vorzunehmen. Legt man kein eigenes exportspss.tab im Unterordnergtc der Studie bereit, so wird eine Standarddatei aus dem GESS Q. Konfigurationsordner anseine Stelle kopiert.

Etwas komplexer ist, was sich hinter dem Button OPN findet. Er befasst sich ausschließlich mitden offenen Nennungen der Studie. Hier tauchen auch Bilder und Audioaufnahmen auf, die mitGESS Q. Android gemacht wurden. Nach Betätigung des OPN-Buttons sehen wir folgendes:

GESS Q. (Stand: März 2018) 221

Page 234: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

Abb. 26.37: Offene Nennungen speichern

Hier können Sie die wörtlichen Nennungen entweder als .opn-Datei abspeichern, die von GESStabsdirekt weiter verwendet werden kann oder als CSV um sie z. B. mit Excel weiter zu verarbeiten.Alle Formate, die sich über dieses Fenster exportieren lassen, werden in Zeichencodierung UTF-8ausgeliefert. Zusätzlich haben Sie die Möglichkeit, diese Dateien um weitere Variable zu ergänzen,z. B. bei der Nachfrage zur Präferenz können Sie den Codern noch die Variable mitgeben, in derdas präferierte Produkt abgelegt ist.

Sollte es für eine Studie Foto-, Audio-, Videodateien oder anderweitige Uploads geben, werdendiese übersichtlich für jeden Befragten als Links in einer Excel-Datei verwaltet, aus der dieseDateien direkt aufgerufen werden können. GESS Q. sieht in dieser Excel-Datei neben den Linkszu den Multimedia-Dateien auch Felder vor, in denen z. B. Transkriptionen oder Vercodungeneingetragen werden können.

Mit dem Häkchen Remember cases for future exclusions lassen Sie GESS Q. einen Stempelsetzen, der alle in dem durchzuführenden OPN Export Nennungen enthält, um sie dann beizukünftigen weiteren Exports ausschließen zu können. Geben Sie hierbei eine Notiz ein, umden Stempel nachher möglichst einfach wieder zu identifizieren. Vorhandene Stempel könnenzum Ausschluss im mittleren Feld selektiert werden. Dies ist in der Praxis erforderlich, wennSie Ihren Mitarbeitern aus der Vercodung schon während der Feldzeit einen ersten Abzug deroffenen Nennungen zukommen lassen wollen. Beim zweiten Abzug sollen alle Nennungen derersten Lieferung natürlich nicht mehr enthalten sein. Und so weiter...

26.6 Reporting

Die unter dem Menüpunkt Reporting angezeigten Punkte können weitesgehend unter Configurebearbeitet und/ oder erstellt werden (siehe Abschnitt 26.3.10 und Abschnitt 26.3.11).

GESS Q. (Stand: März 2018) 222

Page 235: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

26.6.1 Overview

Overview informiert in einer zeitlichen Verlaufsgrafik über laufende, beendete und abgebrocheneInterviews. Der rechte Rand der Grafik ist der aktuelle Zeitpunkt und von rechts nach linksgeht es dann in die Vergangenheit. Mit den einstellbaren Parametern Hours und Steps lässtsich einstellen wie weit und in welcher Schrittgröße man den zeitlichen Verlauf rückwirkendbetrachten möchte. Mit Hours:24 und Steps:7 würde die Grafik 7 Punkte im zeitlichen Verlaufdarstellen, die jeweils einen Zeitraum von 24 Stunden kumulieren.

26.6.2 Quota

Unter Quota kann der Nutzer sich alle (für ihn zugelassene) Quoten ansehen. Die Tabelle zeigtden Namen der Quoten, die zugehörige nähere Beschreibung, die aktuelle Anzahl der Fälle unddas Ziel. In der letzten Spalte befindet sich ein kleiner Fortschrittsbalken, der prozentual denFüllstand der jeweiligen Quote anzeigt.

Abb. 26.38: Quotenüberblick

Wenn er das Recht Quota-Edit bekommen hat, besteht hier zusätzlich die Möglichkeit Quotenzielezu ändern die Beschreibung zu überarbeiten. Quoten löschen, ist nur über die Reporting-Konfiguration möglich (vgl. Abschnitt 26.3.11).

26.6.3 Statistics

Der Menüpunkt Statistics stellt grundlegende statistische Informationen zur Umfrage dar:Kontakte insgesamt, Abbrüche, Erfolgreiche, wo abgebrochen, wo beendet usw. Die Informationenillustriert GESS Q. mittels Tortengrafiken.

GESS Q. (Stand: März 2018) 223

Page 236: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

Abb. 26.39: Beispiel Statistics

26.6.4 GESStabs Tables

Hier sind die Tabellen angezeigt, die GESStabs automatisch aus dem aktuellen Datenbestandproduziert. GESStabs muss dafür installiert sein. Wie die GESStabs Tabellen aussehen sollen,lässt sich über ein GESStabs Tabellierskript bestimmen. Üblicherweise nennen wir sie .tab-Dateien. Sie können über den Upload-Mechanismus GTC files auf den Server kopiert werden.Auf Wunsch kann auch jedes Nutzerkonto ein eigenes Tabellierskript bekommen ( vgl. Abschnitt26.3.10).

GESStabs TabellenDieses Kapitel erklärt die Integration von GESStabs zu Zwecken des Onlinereportings als flexible

Kundenschnittstelle. Folgende Arbeitsschritte sind nötig, um GESStabs studienbegleitend zurTabellierung des Ist Datenbestands einer Studie einzusetzen:

1. Einrichtung von GESStabs auf dem Befragungsserver (einmalig)

2. Definition der Tabellen

3. Kundenspezifische Tabellierjobs

Integration von GESStabsAusgehend von einer vorhandenen GESStabs Installation (für Informationen hierzu sei auf dieGESStabs Dokumentation verwiesen) sind im GESS Q. Konfigurationsfile zwei Angaben zumachen: Der Pfad zum Studienverzeichnis gtcSurveyDir, der Pfad zur ausführbaren GESStabsApplikation gtcApp. Das Beispiel zeigt eine denkbare Konfiguration:

gtcSurveyDir=/home/gessuser/surveysgtcApp=/home/gessuser/gtc/gtc

GESS Q. (Stand: März 2018) 224

Page 237: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

Definition der TabellenJede Tabellierung in GESStabs startet mit der Ausführung eines .tab-Files, das sich im Stu-dienordner im Unterordner gtc befinden muss. Erfolgt keine explizit andere Zuweisung (s.Abschnitt 26.6.4) heißt das .tab-File per Default a.tab. GESS Q. stellt für jede TabellieranfrageKopien der automatisch gepflegten CSV Datensätze bereit, siehe Abschnitt 26.5. Zusammen miteiner Kopie der dort ebenfalls zu findenden Variablendefinition (var.inc) stellen diese Dateiendie Datenbasis für GESStabs dar:

cmpl_tabs.csv CSVINFILE der Completes

brk_tabs.csv CSVINFILE der unvollständigen Fälle

var_tabs.inc Variablendefinition

Alternativ kann man hier auch mit ASCII (cmpl_tabs.dat, brk_tabs.dat) und OPN (cmpl_tabs.opn, brk_tabs.opn) zurückgreifen. Wir raten aber davon ab, da die stetige Bereitstellung dieserDateien zur Performancesteigerung in naher Zukunft eingestellt wird.

Die a.tab-Datei mit den Tabellieranweisungen kann mit diesen Daten frei definiert werden. Wennsie nicht vorhanden sein sollte, hilft sich GESS Q. indem es eine Standardvorlage der a.tab-Dateiaus /CONFIG/gtc/ an seine Stelle kopiert und verwendet. Üblicherweise druckt dieser Standardfalleine einfache Auszählung über alle enthaltenen Variablen der Completes (s.u.). Wie der Standardaussehen soll, lässt sich ebenfalls frei definieren. Im einfachsten Fall einer Auszählung über alleVariablen sähe das a.tab wie folgt aus:splitchar = ~;stylefile = style.css;trimstrings = yes;citefirstvar = TOPTEXT yvalid;

#define USECSVINFILEENCODING CSVINFILE = UTF8BOM;CSVINFILE = brk_tabs.csv;CSVINFILE = cmpl_tabs.csv;

include = var_tabs.inc;html = htmltabs;codebook;end;

An dieser Stelle empfehlen wir Ihnen unser Basic-Tutorial für die Tabellierung, das Sie ebenfallsauf unserer Homepage finden1.

Kundenspezifische TabellenFür verschiedene Kunden bzw. deren Logins können spezifische Tabellen hinterlegt werden. Dieslässt sich mit mehreren Tabellierdateien realisieren, die sich den Login IDs zuordnen lassen.Logins ohne explizite Zuordnung bekommen per Default das a.tab. Die Zuordnung ist optionalund kann über die Benutzeroberfläche in der Studienkonfiguration vorgenommen werden.

1https://www.gessgroup.de

GESS Q. (Stand: März 2018) 225

Page 238: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

26.7 Main - Overview

Im Bereich Main informiert GESS Q. unter dem Punkt Overview mit Verlaufsgrafiken überlaufende, beendete und abgebrochene Interviews zu jeder aktiven Studie.

26.8 Android Manager

Über den Menü-Punkt Android-Manager kann ein per USB angeschlossenes Android-Gerätverwaltet werden. GESS Q. informiert über Software und Lizenz auf dem Gerät, erlaubt das Her-unterladen von Interviews und bietet mit Net-Block und App-Block an, zwei sicherheitsrelevanteAspekte von GESS Q. auf dem Gerät zu steuern.

Die Oberfläche steuert die Google-Software adb (Android Debug Bridge), die zusammen mitGESS Q. installiert wurde. Unter Windows wird das Programm adb.exe direkt aufgerufen. UnterLinux kann das Programm adb.exe im Verzeichnis config/adb/ durch einen Link auf das in derRegel systemweit installierte Programm /usr/bin/adb ersetzt werden:cd config/adbln -sf /usr/bin/adb adb.exe

Damit Android von GESS Q. über USB angesprochen werden kann, muss auf dem Gerät inden Entwickleroptionen der Punkt USB Debugging aktiviert sein. Die Entwickleroptionen sindnormalerweise nicht sichtbar. Man kann sie einblenden indem man unter -> Einstellungen ->Über das <Gerät> sieben Mal hintereinander auf das Feld Build Nummer tippt.

Abb. 26.40: Android Manager: angeschlossenes Gerät

Unter Connected Device informiert GESS Q. über das Gerät, die Software-Versionen und er-möglicht es, über das Schlüssel-Symbol das Gerät mit einer Lizenznummer zu lizenzieren. DerReset -Knopf setzt das Gerät zurück auf Werkseinstellungen. Damit gehen auch die Lizenzie-rungsinformationen verloren.

Abb. 26.41: Android Manager: Blocker

GESS Q. (Stand: März 2018) 226

Page 239: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

Net-Block blockiert Wlan, Bluetooth und Infrarot, unterbindet also jede Netzwerkverbindung.App-Block beschränkt den Betrieb auf dem Gerät auf GESS Q. Android, andere Apps (etwa dieKamera) können nicht gestartet werden. Grüne Icons melden, dass die jeweilige Blockade aktiv istbzw. die Dienste automatisch gestartet werden. Sowohl Net-Block als auch App-Block bleibenaktiv, auch wenn das Gerät neu gestartet wird. Die beiden Dienste signalisieren den Betriebauch auf dem Eingangsschirm von GESS Q. Android auf dem Gerät durch grüne (eingeschaltet)oder rote Icons (aus).

Abb. 26.42: Android Manager: Surveys

In der Fragebogenübersicht gibt das Programm Auskunft, welche Fragebögen auf dem Gerätvorhanden sind. Jeder Fragebogen wird mit Name und Titel und der access.lst (wer hatZugriff auf die Studie) ausgewiesen. Unter Completed und Cancelled wird die Anzahl dervollständigen und abgebrochenen Interviews angezeigt. Sollten Mediendateien beim Interviewentstehen, etwa durch Audio-Aufnahmen, erscheint hier eine dritte Spalte, in der die Anzahl derMediendateien angegeben ist. Wenn Interviews oder Mediendateien vorliegen, erscheint nebender Zahl ein anklickbarer Pfeil, über den sich die Dateien auf den Rechner kopieren lassen. Überdas Icon am Ende der Zeile kann der Fragebogen vom Gerät gelöscht werden. Bitte beachten:Interviews auf den Geräten erhalten fortlaufende Fallnummern (Geräte-Id + Fallnummer). Wirdein Fragebogen gelöscht und erneut aufgespielt, beginnt die Zählung der Fallnummern von vorn.Beim Aktualisieren des Fragebogens über Upload bleibt die Zählung erhalten und wird weitergeführt (s. Abschnitt 26.4.2).

26.9 Survey Manager

26.9.1 Anlegen neuer Studien

Über die lokale Web-Oberfläche lassen sich auch neue Studien anlegen. Im Abschnitt Mainkann über den Menü-Punkt Survey Manager unter dem Reiter New eine neue Studie mitNamen (dem Verzeichnisnamen) und einem Titel versehen werden. Der Name darf dabei, wiealle Variablennamen in GESS Q., nur aus den Buchstaben a bis z, A bis Z, Zahlen und demUnterstrich bestehen. Wenn vorhanden, kann der Studie über das Ausklappmenü Use modelzusätzlich eine Vorlage für die Gestaltung des Fragebogens mitgegeben werden. (Der Menü-Eintrag Survey Manager steht auf Server-Installationen nicht zur Verfügung, da lokal erstellteStudien per Upload auf den Server kopiert werden können, s. Abschnitt 26.4.1)

Mit dem Klick auf Create legt GESS Q. ein Verzeichnis mit dem gewünschten Namen unterhalbdes surveyPath an und eines unterhalb von mediaRoot (die beiden Variablen enthalten die beider Installation eingestellten Pfade, s. Abschnitt 24.2.1). Ins Media-Verzeichnis kopiert GESSQ. die grafischen Bestandteile der ausgewählten Vorlage, ins Fragebogenverzeichnis eine ganzeReihe von Dateien, deren Funktion erläutert werden soll.

Bei der Auswahl der Vorlage greift GESS Q. auf Vorlagen zurück, die es in CONFIG/modelsfindet und illustriert sie mit Vorschaubildern aus SERVER-ROOT/model_previews. Die Auswahl der

GESS Q. (Stand: März 2018) 227

Page 240: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

Vorlagen lässt sich natürlich auch erweitern.

26.9.2 Import bestehender Studien

Unter dem Reiter Import bietet GESS Q. die Möglichkeit, eine GESS Q.-Projektdatei zuimportieren, so wie sie unter Configure über den Button Export exportiert wurde. Aus Sicher-heitsgründen schlägt der Import fehl, wenn im Studien- oder im Archiv-Ordner ein Verzeichnismit dem Namen der Studie bereits existiert.

26.9.3 Archiv-Übersicht

Hier werden alle archivierten Studien von GESS Q. angezeigt, die im Ordner archive enthaltensind. Wie man Studien archivieren kann, steht im Abschnitt 26.3.5.

Sind Studien archiviert, erscheint eine Übersichtstabelle. Hier werden der Name der Studie, derTitel sowie das Datum des Archivierens dargestellt. Außerdem ist eine Übersicht aller verwendetenTags zu sehen (vgl. Abschnitt 26.3.1). Ein Klick auf das Download-Symbol lädt die gewünschteStudie herunter.

26.9.4 Backup-Übersicht

Hier werden alle Sicherheitskopien von Studien angezeigt, die im Ordner backup enthalten sind.Wann ein Backup durchgeführt werden kann, steht im Abschnitt 26.3.6.

Sind Sicherheitskopien erstellt, erscheint eine Übersichtstabelle, in der nach Studienname undDatum des Backups sortiert ist. Jedes Backup kann heruntergeladen werden.

26.9.5 Konfigurationsdateien im Fragebogenverzeichnis

access.lst Die Datei enthält die IDs der Nutzer, die auf die Studie zugreifen können sollen. DieDatei ist Teil der gewählten Vorlage.

active.cfg In der Datei selbst steht schlicht »dummy«, da sie nur als Schalter dient, der demServer anzeigt, ob die Studie aktiv ist oder nicht. Wenn die Datei nicht vorhanden ist, beantwortetder Server den Aufruf des Fragebogens mit der Meldung »The survey is currently inactive«,ansonsten erscheint der Fragebogen. Die Datei kann im Abschnitt Surveys unter dem Menü-Eintrag Configure mittels der Veränderung des Status angelegt ( Activate ) oder gelöschtwerden ( Deactivate ).

idproperties.cfg Die Datei legt anhand von Schlüsselworten fest, ob Teilnehmer eine ID benöti-gen, und wie der Variablenname für eine ID lautet:

• acceptUnknown=[yes|no] Sollen Teilnehmer mit unbekannter ID auf den Fragebogen zu-greifen dürfen? Voreinstellung: yes.

GESS Q. (Stand: März 2018) 228

Page 241: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

• testMode=[yes|no] Soll der Fragebogen auch im Testmodus erreichbar sein? Voreinstellung:yes.

• urlName=[zeichenkette] In der URL, mit der Teilnehmer auf den Fragebogen zugreifen,erhält ihre ID einen Variablennamen (z. B. respid=12345). Panels etwa haben höchstunterschiedliche Vorstellungen wie die Variable heißen sollte. Voreinstellung: respid (fürrespondent id).

title.txt Die Datei enthält den Titel der Studie, wie er beim Anlegen des Fragebogens überden Survey Manager im Feld »Title« eingetragen wurde.

26.9.6 Dateivorlagen im Fragebogenverzeichnis unter text

skript.q Für GESS Q. bildet die Datei skript.q im Textverzeichnis eines Fragebogens immerden Ausgangspunkt. Über die gewählte Vorlage wird ein Beispiel, das als Ausgangspunkt dienenkann, in das text-Verzeichnis kopiert.

Abb. 26.43: Beispiel skript.q

settings.q wird über den include-Mechanismus in der Datei skript.q in das Skript eingebunden.Hier werden grundlegende Einstellungen definiert, wie zum Beispiel das Missing-Verhalten oderDataWriteCondition. Sie ist kein Zwang, dient jedoch der Übersichtlichkeit.

GESS Q. (Stand: März 2018) 229

Page 242: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

Abb. 26.44: Beispiel settings.q

finished.msg Diese Datei definiert den letzten Screen (finished-Screen) vom Fragebogen ganzam Ende des Interviews. Hier wird standardweise der Abschiedstext aus der grp_finished, die inder skript.q-Vorlage enthalten ist, dargestellt. Alternativ ist die Eingabe von Freitext natürlichauch möglich. Die finished.msg wird immer angesteuert und kann nicht durch andere Dateienersetzt werden. Sie bietet jedoch die Möglichkeit zur visuellen Gestaltung mittels CSS-Klassenund HTML.// Beispiel einer grp_finished aus der skript.q:group grp_finished;labels=1 "Vielen Dank für Ihre Teilnahme an dieser Umfrage." (_finished eq 1)2 "Vielen Dank für Ihr Interesse. Leider passen Sie nicht zu unserer Zielgruppe." (

GESS Q. (Stand: März 2018) 230

Page 243: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

_finished eq 2)3 "Vielen Dank für Ihr Interesse. Leider haben bereits ausreichend Personen mit IhremProfil an dieser Befragung teilgenommen." (_finished eq 3);

// Beispiel einer finished.msg:<div class="qtext">

@insert(grp_finished)<br><img src="./MEDIAPFAD/firmen_logo.png"><br>Auf Wiedersehen!

</div><style type="text/css">

.navigation{ display:none; }</style>

26.10 Users - Benutzerverwaltung

Im Bereich Main erhalten wir über den Menüpunkt Users eine Übersicht aller Nutzer mit seinenLogininformationen und seine Berechtigungsstufe. Die hier dargestellten Inhalte entsprechen derDatei users.lst des Konfigurationsverzeichnisses.

company Die Firma, der ein Nutzer angehört.

name Der Login-Name für den Nutzer.

password Das Login-Passwort für diesen Nutzer. Wurde das Passwort über die Benutzeroberflächevergeben, wird es in verschlüsselter Form gespeichert und mit Sternchen dargestellt. Manuellin der users.lst eingetragenen Passwörter werden im Klartext dargestellt.

id Ein eindeutiger Schlüssel zur Identifizierung eines Nutzers. Wenn nicht anders angegeben wirddie ID per Default aus einer Verkettung von company und name erzeugt.

access Die Berechtigungsstufe des Nutzers, siehe auch Abschnitt 24.2.2.

Das Ende der Tabelle bilden drei Knöpfe, mit denen die Konten auf dem System verwaltet werdenkönnen:

New user Nach dem Klick erscheint eine Eingabemaske, die Felder für Company, Login-Name,Passwort und ID bereithält. Die Einträge dürfen nur aus alphanumerischen Zeichen bestehen:a-z A-Z 0-9. Company, Name und Passwort müssen vorgegeben werden, wie das Sternchen esandeutet, die ID wird gegebenfalls aus den Feldern Company und Name zusammengesetzt.Die ID des Kontos muss eindeutig sein.

Remove user Der über den Radio-Button am Anfang der Zeile markierte Nutzer wird mit demKlick auf den Knopf entfernt.

Edit user Der über den Radio-Button am Anfang der Zeile markierte Nutzer kann mit demKlick auf den Knopf geändert werden.

GESS Q. (Stand: März 2018) 231

Page 244: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 26. Die Benutzeroberfläche

26.11 Help - Hinweise auf weitere Informationsquellen

Unter dem Punkt Help finden sich Links zu den kontinuierlich fortgeschriebenen Hinweisen zuneuen Entwicklungen im Readme und zur Präsenz von GESS GmbH und GESS Q. bei Youtube,Facebook und Google+.

26.12 Server Status

Der Server status gibt in vielerlei Hinsicht Auskünfte über den aktuellen Zustand der GESSQ. Version, siehe Abbildung 26.45. Von oben nach unten sind folgende Informationen aufgeführt.Date / Time stellt den aktuellen, auf dem ausführenden Computer eingestellten Zeitpunkt mitDatum und Uhrzeit inkl. Zeitzone dar. Das MESZ in der Abbildung steht für die Mitteleuropäi-sche Sommerzeit. Questionnaires opened gibt an, wie häufig Fragebögen seit Programmstartgeöffnet wurden, während Timeout / Interval (in s) für die Konfiguration steht, in welchenZeitabständen GESS Q. auf inaktive Fälle prüft und nach welcher Inaktivitätsdauer ein Fallaus dem Arbeitsspeicher genommen und in Abbruchzustand versetzt wird. Software Versionenthält das Veröffentlichungsdatum und die Nummer der eingesetzten Version.

Anschließend visualisieren zwei farbige Balken den verfügbaren Arbeitsspeicher, die Festplatten-kapazität sowie deren beider aktuelle Auslastung. Während es beim Festplattenspeicher lediglichdie Farben grün (freier Speicher) und rot (belegter Speicher) gibt, taucht beim Arbeitsspeicherauch die Farbe gelb (reservierter Speicher), sowie ein kleiner schwarzer Strich auf. Der Strich mar-kiert die laut Konfiguration vorgegebene maximale Auslastungsgrenze, bei deren Überschreitungangefragte Interviews abgelehnt werden.

Abb. 26.45: Server status

Außerdem verrät das Programm, welche Fragebögen aktuell ausgefüllt werden, wieviele Interviewsgerade stattfinden und welche Frage die Interviewten gerade beantworten. Des Weiteren kannman über die Lupe einem aktiven Fall im Zuschauermodus beitreten. Ein Haken bei Auto reloadsorgt dafür, dass alle dargestellten Informationen im 2 Sekunden Takt aktualisiert werden. Überden Knopf Freeze interviews können laufende Interviews, die in der Liste markiert wurden,angehalten bzw. in den Abbruchzustand versetzt werden. Auto reload sollte für die Auswahlder anzuhaltenden Interviews abgeschaltet werden.

GESS Q. (Stand: März 2018) 232

Page 245: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 27. Fehlersuche

27 Fehlersuche

Keine Software ist fehlerlos. Dafür gibt es viele Gründe und bislang waren die Versuche in derGeschichte der Softwareentwicklung, Fehler und Fehlerquellen im Vorwege auszuschließen, nichtsehr erfolgreich. Programmierte Fragebögen stellen selbst Software dar, daher ergibt sich häufigerdie Situation, Fehler im Skript suchen zu müssen. Dieses Kapitel soll Ansatzpunkte geben, wieman Fehlerquellen systematisch aufspührt und behebt.

27.1 Skriptcheck

Den ersten Anlaufpunkt bietet der Skriptcheck in der grafischen Oberfläche im Bereich Sur-veys unter Configure (GESS Q. Desktop oder GESS Q. Server). Die Prüfung liefert keinezeilengenauen Hinweise auf die Fehler, weist aber durch den Kontext auf die Frage, in derenZusammenhang ein Fehler auftritt. Der Skript-Check berücksichtigt verschiedene Fehlerquellen.und weist auf Syntaxfehler wie unzulässige Zeichen in Variablennamen oder ein falsch definiertesOpennumformat hin, berücksichtigt aber auch den Ablauf und warnt etwa bei Fragen, die nichtim Interview-Ablauf enthalten sind,

Das geschriebene Skript unterscheidet sich vom ausgeführten Skript, weil GESS Q. die einzelnenDateien, aus denen das Skript womöglich besteht, erst einmal zusammenführt und sämtlichePlatzhalter und Makros durch die eigentlichen Werte ersetzt. Daher kann es insbesondere bei Ma-kros helfen, auch das expandierte Skript im Auge zu behalten, wie es sich über Expanded scriptherunter laden lässt (ebenfalls unter Configure zu finden).

Unter Umständen kommt ein Fehler auch erst später zum Tragen und tritt nicht an der Quelleauf. Hier kann es helfen, Teile des Skripts nach und nach auszukommentieren, um die Fehlerquellezu isolieren.

27.2 Variablenwerte überprüfen

Ein anderes Vorgehen besteht darin, die Werte zu untersuchen, die Variablen annehmen. Daslässt sich am einfachsten über den @insert()-Mechanismus erreichen.TextQ debug;text="1: @insert(nq.1) <br />2: @insert(nq.2) <br />3: @insert(nq.3) <br />numq: @insert(nq)";

Das Beispiel gibt die verschiedenen Werte einer NumQ aus, jeweils einzeln an den bezeichnetenStellen des Arrays und zum Schluss den Array insgesamt. @insert() funktioniert ausschließlichin echten Textbereichen wie text="" , title="" , etc... Variablen können in einem Skript aberauch an anderen Stellen auftauchen oder ihre Werte während Berechnungslogiken zwischen

GESS Q. (Stand: März 2018) 233

Page 246: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 27. Fehlersuche

Screendarstellung vielfach ändern. Deshalb lässt sich die gleiche Auskunft auch mit dem Print-Befehl in Actionblöcken erreichen.ContinueActionBlock={

print(nq.1);print(nq.2);print(nq.3);print(nq);printText("Am Ende angekommen");

};

Durch den Print-Befehl werden die Werte in eine Datei namens actionlog.txt im text-Verzeichnisgeschrieben. PrintText hingegeben druckt schlichtweg statische Texte mit in die Datei.

27.3 HTML-Ausgabe prüfen

Fehler, die bei der Darstellung des Fragebogens im Browser auftreten, werden mit großerWahrscheinlichkeit nicht durch das Skript selbst verursacht, sondern durch mitgegebene CSS-oder Javascript-Anweisungen, die nicht nur in den Skript-Dateien sondern auch im Templatestecken können. Die meisten Browser stellen heute eine Möglichkeit bereit, die von GESS Q.generierte HTML-Seite in allen Einzelheiten zu untersuchen (-> Rechtsklick auf ein Element in derSeite -> Element untersuchen). Für Firefox etwa existiert mit Firebug ein altgedientes Plugin, dasverschiedene Sichtweisen auf eine HTML-Seite ermöglicht, vom HTML-Code über Einzelheitender CSS-Datei bis hin zur Darstellung der Struktur oder dem Blick auf den Javascript-Code.

GESS Q. (Stand: März 2018) 234

Page 247: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 28. Häufig gestellte Fragen

28 Häufig gestellte Fragen

In diesem Kapitel werden Antworten auf häufig gestellte Fragen und Lösung für in der Praxisgestellte Aufgaben vorgestellt.

28.1 Informationen aus dem Startlink lesen

Sollten die integrierten Methoden zur Übergabe externer Parameter und die Anpassung des URLParameternamens des Teilnehmercodes nicht ausreichen, bleibt nur das manuelle Lesen beliebigerParameter aus der URL per Javascript. Ein gelesener Wert kann z.B. in eine für den Teilnehmerunsichtbare OpenQ gespeichert werden:OpenQ P_0001; noMissing = no; // Ohne EingabezwangOpenQ P_0002; noMissing = no;

TextQ welcome;text="Herzlich Willkommen...";javascript = "

$(document).ready(function(){ // ... wenn Seite fertig geladen...var P1 = $.getUrlParam(window.location.href, 'P_0001'); // Hole P_0001 aus URLvar P2 = $.getUrlParam(window.location.href, 'P_0002');// Prüfe auf exakt 1 Vorkommnis in URL: wenn ja, Übernahme in OpenQ P_0001if(P1.length == 1){ $('.P_0001 .qopenfield').val(P1[0]); };if(P2.length == 1){ $('.P_0002 .qopenfield').val(P2[0]); };// Am Ende des Prozederes den Weiterbutton sichtbar machen$('#continuebutton').css('visibility', 'visible');

});";// OpenQs und Weiterbutton initial versteckencss = "

.P_0001, .P_0002{ display:none; }#continuebutton{ visibility:hidden; }

";// Prüfe, ob Parameter angekommen, sonst Fehlermeldungassert (num(P_0001) gt 0) "Fehler: Ungültiger Link (1).";assert (num(P_0002) gt 0) "Fehler: Ungültiger Link (2).";

screen scr_welcome = column( welcome P_0001 P_0002 );

28.2 Externe Befragungsteile: Hin und Zurück

Während Kapitel 29.7.11 ausführlich beschreibt, wie man innerhalb von GESS Q. Android aufexterne Webinhalte verweist und von denen zur App-Befragung zurückkehrt, stellt sich dieseFrage auch im Rahmen von Onlinebefragungen. Das folgende Beispiel verdeutlicht, wie manvon einem Screen aus per Javascript automatisch auf eine externe URL umleitet. Aus Sicht vonGESS Q. bleibt der Teilnehmer auf diesem Screen stehen. Ein erneuter Aufruf des Startlinkswürde erneut zu diesem Screen führen und die Weiterleitung vollziehen. Ruft man den Startlinkallerdings mit dem Parameter &forward ergänzt auf, wird die Befragung in GESS Q. fortgesetzt.

GESS Q. (Stand: März 2018) 235

Page 248: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 28. Häufig gestellte Fragen

TextQ t1;text="

Diese Seite bleibt stehen, bis man den Startlinkmit '&forward' am Ende der URL aufruft.

";javascript = "

$(document).ready(function(){if(window.location.href.endsWith('&forward')){

submitForm(document.forms[0]);}else{

// Hier Weiterleitung auf externen Befragungsteilwindow.location.href = 'http://www.gessgroup.de';

}});

";css = "#continuebutton{ display:none; }";

GESS Q. (Stand: März 2018) 236

Page 249: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 29. Die Android App - GESS Q. Android

29 Die Android App - GESS Q. Android

29.1 Allgemeines

Neben Standard PCs und Servern kann GESS Q. auch auf Geräten betrieben werden, die mit demBetriebssystem Android ausgestattet sind. Mit der App GESS Q. Android können geskripteteFragebögen beliebig oft offline ausgefüllt werden. Die produzierten Daten lassen sich zu einemspäteren Zeitpunkt einfach per USB oder WLAN an GESS Q. Desktop oder über das Internetan GESS Q. Server senden. Abbildung 29.1 veranschaulicht das Zusammenspiel der App mit denanderen GESS Q. Produkten.

Abb. 29.1: GESS Q. Android Übersicht

In diesem Kapitel werden besondere Features der GESS Q. Android App vorgestellt und erklärtwie sie verwendet werden. Ehe es aber zu den eigentlichen Features von GESS Q. Android geht,ist es sinnvoll sich zuerst einen groben Überblick über die Menüführung und den organisatorischenAufbau der App zu verschaffen.

29.2 Menüführung und Sprache

GESS Q. Android verfügt über Benutzeroberflächen in Deutsch, Englisch und Französisch. Dieverwendete Sprache richtet sich nach der Spracheinstellung des Android Betriebssystems. Istdort eine andere Sprache als die vorhandenen eingestellt, dient Englisch als Default.

Abbildung 29.2 stellt dar, wie die Bedienseiten innerhalb der App angeordnet sind. Jede Seite

GESS Q. (Stand: März 2018) 237

Page 250: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 29. Die Android App - GESS Q. Android

verfügt neben den sichtbaren Inhalten über ein Menü, das zusätzliche Funktionen erreichbarmacht. Dieses Menü ist über die Menü-Taste des jeweiligen Gerätes erreichbar und kann je nachHersteller und Android-Version unterschiedlich aussehen.

Abb. 29.2: Die Benutzeroberflächen

Die Startseite ist die erste Seite, die beim Starten der App dargestellt wird. Sie enthält zweiAnmeldebuttons sowie die Menüpunkte Info , Lizenzieren und Beenden . Dazu wird dargestelltob und für wen die App lizenziert ist. Lizenzierte Apps versuchen beim Anzeigen der Startseite undmit bestehender Internetverbindung grundsätzlich die Lizenzinformationen online abzugleichen,so dass Lizenzverlängerungen vollautomatisch und ohne Anwenderinteraktion greifen. Außerdemgibt es 4 rote bzw grüne Symbole, die die Bereitschaft einer USB Verbindung bzw. den Statusder Zusatzdienste App-Block und Net-Block kenntlich machen. Das letzte Symbol gibt es nur aufGeräte mit mindestens der Android Version 5. Ab dieser Version kann der App ein Sonderrechteingeräumt werden, siehe auch Abschnitt 29.6.

Die Anmeldung als Interviewer stellt eine Liste der auf dem Gerät verfügbaren Fragebögen dar.Die Auswahl einer Studie wiederum führt zum Studienhauptmenü , von dem aus neue Interviewsgestartet, abgebrochene Fälle wiederaufgenommen bzw.gelöscht oder Datensätze (wahlweise auchabgebrochene) bei vorhandener Internetverbindung zu einem konfigurierten Server übertragenwerden können.

Die Anmeldung am Webserver führt hingegen zu einer GESS Q. typischen Authentifizierungsauf-forderung mit den Eingaben von Firma, Name und Passwort. Bereits auf dieser Anmeldeseitekann über die Menüfunktionen konfiguriert werden, mit welchem GESS Q. Server die Appgrundsätzlich kommunizieren und welche Anmeldedaten (Passwort ausgenommen) voreingestelltsein sollen. Diese Daten können manuell oder durch Scannen eines QR Codes mit folgendemFormat eingegeben werden:

/*** Beispielcodierung: QR-Code mit Serverdaten ***/https://android.q-dot.de/q1/SurveyServlet;GESS;demo

Ist dies soweit eingestellt, lässt sich über den Login eine Verbindung zu diesem Server herstellen.Man gelangt nun zu einer Liste der Studien des GESS Q. Servers, auf die der jeweilige Login eineZugangsberechtigung besitzt und kann an dieser Stelle nach Belieben Studien in die App ladenoder vorhandene Studien aktualisieren. Bei Aktualisierungen bleiben bereits vorhandene Fälle,sowie die aktuelle Fallnummer erhalten. Löscht man Studien zuvor explizit ist dies nicht der Fall.

GESS Q. (Stand: März 2018) 238

Page 251: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 29. Die Android App - GESS Q. Android

29.3 Installation und Updates

Die aktuelle Version von GESS Q. Android ist nicht im Google Play Store verfügbar, kann aberstets von der GESS Homepage1 heruntergeladen werden. Die App steht als .apk-Datei zur Verfü-gung. Es handelt sich dabei um eine Installationsdatei, die von allen Android Betriebssystemenausgeführt werden kann. Um die App installieren zu können, muss in den Geräteeinstellung(üblicherweise unter dem Menüpunkt Sicherheit) zuvor ein Häkchen gesetzt werden, das dieInstallation von Apps mit unbekannter Herkunft erlaubt. Die .apk-Datei bekommt man ambesten auf ein Android-Gerät, indem man sie direkt mit dem Gerät von der Homepage herunter-lädt oder eine USB Datenverbindung nutzt, um sie von einem PC zu kopieren. Der eigentlicheInstallationsvorgang ist selbsterklärend. Nach der Installation startet GESS Q. beim Einschaltendes Geräts automatisch.

In der Vergangenheit wurde beobachtet, dass es in der App zu fehlerhaften Verhaltensweisenkommt, wenn man sie direkt am Ende der Installation über den angebotenen Dialog öffnet undverwendet. Es empfiehlt sich daher die Geräte nach der Installation sicherheitshalber einmal neuzu starten.

Um den vollen Funktionumfang nutzen zu können, benötigt GESS Q. Android mehrere Berech-tigungen auf dem Tablet, wie z.B. Zugriff auf Kamera und Mikrofon. Vor Android 6 wurdenalle benötigten Rechte einmalig bei der Installation bestätigt. Auf neueren Geräten muss beiZugriff jedoch explizit durch den Anwender bestätigt werden. GESS Q. Android fragt ggf. direktbeim Starten der App einmal Berechtigungen ab, ohne die eine praktische Anwendung unmöglichist. Wird ein Zugriffsrecht abgewiesen, beendet sich die App. Um nicht bei jedem Programm-start wieder bestätigen zu müssen, empfehlen wir das Häkchen zu setzen, zukünftige Anfragenautomatisch zu erlauben.

Das Aktualisieren der App geht genau so von statten wie die Erstinstallation. GESS Q. Androidmuss und sollte bei Updates zuvor nicht installiert werden, denn so bleiben alle Daten undLizenzinformationen erhalten.

29.4 Lizenzierung und Fallnummern

Eine frisch installierte App befindet sich zunächst im Demomodus, und das Programm weistdarauf auch regelmäßig hin. Demomodus heißt, dass die App voll funktionsfähig ist, aber keineDaten produziert. Um die App freizuschalten, bedarf es eines Lizenzcodes, der jederzeit - auchkurzfristig - von GESS bereitgestellt werden kann. Lizenzcodes sind auf eine bestimmte AnzahlGeräte limitiert und zeitlich beschränkt, wobei ein Gerät beliebig oft mit dem gleichen Lizenzcodeneu lizenziert werden kann.

Ein Lizenzcode kann unter dem Menüpunkt Lizenzierung auf der Startseite eingegeben werden.Bei vorhandener Internetverbindung nimmt die App Kontakt zum GESS Lizenzserver auf, der dasGerät freischaltet, wenn die Lizenzbedingungen erfüllt sind. Alle zuvor sichtbaren (roten) Hinweiseauf den Demomodus wechseln nun zu (grünen) Hinweisen über die verbleibende Lizenzdauer. Beivielen Geräten kann sich das manuelle Eintippen des Lizenzcodes als recht zeitaufwändig erweisen.Aus diesem Grund kann ein Lizenzschüssel auch als QR-Code eingescannt werden. Sollte dasGerät keine Kamera haben, oder die Kamera versiegelt sein, funktioniert die Lizenzierung auch

1https://www.gessgroup.de

GESS Q. (Stand: März 2018) 239

Page 252: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 29. Die Android App - GESS Q. Android

über die USB Steuerung der App. Mehr dazu in Abschnitt 29.5.

Wenn mehrere Geräte mit GESS Q. Android bei einer Befragung im Einsatz sind, muss GESSQ. trotzdem für einzigartige Fallnummern sorgen. Um Überschneidungen auszuschließen, erhältdaher jedes Gerät beim Lizenzierungsvorgang einen eindeutigen Bereich von 10000 Fallnummernzugewiesen. Da der Lizenzserver das Gerät wieder erkennt, bekommt es auch immer wieder dengleichen Bereich.

Ein Einschub am Rande: Die Situation, was Android selbst angeht, aber auch, was die Her-steller betrifft, ist uneinheitlich. Insbesondere bei billigen Tablets oder bei gerooteten Geräten(eventuell auch mit anderer Firmware ausgestattet) kann die Situation eintreten, dass demLizenzserver Informationen fehlen, um Tablets auseinander zu halten. Die Software versucht,für die Unterscheidung verschiedene Merkmale heranzuziehen. Dazu gehören die Android-ID,die pro Gerät eindeutig sein soll, die Hardware-Adressen der Wlan- und Bluetooth-Adapter, dieAndroid-Version usw. Wenn mehrere Tablets des gleichen Herstellers z. B. nun eine ungültigeAndroid-ID liefern und keinerlei Informationen zu den Netzwerk-Adaptern bereit stellen, kannder Lizenz-Server die Geräte nicht unterscheiden und vergibt immer die gleiche Geräte-ID undin der Folge auch die gleichen Fallnummern. Die Probleme beginnen dann schon beim Versuch,Interviews mit den gleichen Fallnummern auf den Server zu kopieren. Hier sollte im Vorfeld sichergestellt werden, dass alle Tablets mit einer jeweils eindeutigen ID versehen sind.

29.5 Datenaustausch über USB

Mit Hilfe von GESS Q. Desktop für Standard Windows-PCs bzw. Linux können GESS Q. AndroidApps über eine USB Verbindung verwaltet werden. Damit dies funktioniert ist ein wenig Vorarbeitvon Nöten. Erst zusammengefasst, dann im Detail:

1. USB Debugging auf Android-Gerät aktivieren

2. ADB Treiber für Android-Gerät auf dem Windows-PC installieren bzw. adb für die jeweiligeLinux-Distribution installieren z. B. android-tools-adb (Debian/Ubuntu) und einen Linksetzen (s.u.)

3. GESS Q. Android App starten

4. GESS Q. Desktop leitet Kommunikationen ein

Der USB Datenaustausch erfolgt über einen Kommunikationskanal, der typischerweise für Ent-wicklungszwecke vorgesehen ist. Damit das Android-Gerät für diese Art von Kommunikationbereit ist, muss in den Geräteeinstellungen das USB Debugging aktiviert sein. Das entsprechen-de Häkchen findet sich meistens unter den Entwickleroptionen. Fehlen die Entwickleroptionen,lassen sich diese durch mehrmaliges Klicken auf die Build-Nummer in den Geräteinformationensichtbar machen. Ist die Einstellung vorgenommen, installiert Windows beim erneuten Anschlussüber USB spezielle ADB Gerätetreiber. Im Geräte-Manager der Windows Systemsteuerung solltedas angeschlossene Gerät als ADB-Device o.ä. zu finden sein. Ist dies nicht der Fall, müssengegebenenfalls manuell andere Treiber für das Gerät ausgewählt (häufig USB Verbundgerät bzw.USB Composite Device) oder spezielle ADB Treiber vom Hersteller installiert werden.

Bei neueren Android Versionen ist der PC Zugriff an dieser Stelle teilweise über ein sich öffnendesDialogfenster auf dem Gerät zu bestätigen. Sollte ein Häkchen dafür in dem Fenster vorhanden

GESS Q. (Stand: März 2018) 240

Page 253: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 29. Die Android App - GESS Q. Android

sein, empfehlen wir den Zugriff auch direkt für zukünftige Verbindungen zuzulassen. Zu beachtenist, dass App-Block das Öffnen dieses Dialogs verhindern kann.

Unter Linux muss das Programm adb.exe im Verzeichnis config/adb/ durch einen Link auf dasin der Regel systemweit installierte Programm /usr/bin/adb ersetzt werden:

cd config/adbln -sf /usr/bin/adb adb.exe

Nach Anschluss über USB dauert es für gewöhnlich einige Sekunden, bis der PC das angeschlosseneGerät korrekt erkannt hat. Insbesondere wenn noch Treiber installiert werden. Hierbei ist zubeachten, dass manche Windows-Versionen jedes Gerät anhand ihrer Seriennummer unterscheidenund ggf. für jedes neu angeschlossene Gerät, trotz gleichen Typs, einmal Treiber installiert werden.

In der Benutzeroberfläche von GESS Q. Desktop findet sich der Menüpunkt Android Manager .Nach Auswahl dieses Menüpunktes sucht GESS Q. Desktop nach per USB angeschlossenen GESSQ. Android Apps. Es kann immer nur eine App zur Zeit administriert werden. Damit eine Appgrundsätzlich auf Anfragen via USB reagieren kann, muss die App auf dem angeschlossenenAndroid Gerät auch ausgeführt werden. Idealerweise sorgt man dafür, dass irgendeine Bedienseiteder App aktuell auf dem Gerät zu sehen ist.

Wird das angeschlossene Android-Gerät schließlich erfolgreich von GESS Q. Desktop erkannt, stelltder Android Manager Informationen zum Gerät bereit und bietet einige Interaktionsmöglichkeiten,siehe Abbildung 29.3.

Abb. 29.3: Der Android USB Manager

Im Bereich Connected device findet sich wieder, welche Version der App auf dem angeschlos-senen Gerät installiert, ob sie, wie lange und mit welchem Bereich laufender Nummern lizenziertist. Das Gerät in der Abbildung ist z. B. mit App-Version 2.2 r1000 ausgestattet, bis zum28.02.2015 lizenziert und verwendet laufende Nummern im Bereich von 1200000 - 1209999. DasSchlüsselsymbol öffnet einen Dialog, der die Eingabe eines Lizenzschlüssels erwartet um die App

GESS Q. (Stand: März 2018) 241

Page 254: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 29. Die Android App - GESS Q. Android

an dieser Stelle zu lizenzieren. Reset App setzt die App vollständig in den Auslieferungszustandzurück (inkl. Entfernen der Lizenz).

Desweiteren gibt eine Studienliste darüber Aufschluss, welche Fragebögen aktuell in der Appverfügbar sind, welche Nutzer (Interviewernamen) darauf Zugriff haben und ob Datensätzevorliegen. Die Flächen mit den Pfeilsymbolen dienen zum Importieren der jeweiligen Datenund das Mülleimer-Symbol am Ende jeder Zeile zum Entfernen der Studie samt Daten.

Zuletzt gibt der Bereich für App-Block und Net-Block Auskunft, ob die Dienste ausgeführtwerden oder nicht. Ein jeweils grünes Symbol bedeutet, dass der Dienst ausgeführt wird. Mit demnebenstehenden Button können die Dienste einzeln gestartet und wieder angehalten werden. Diezusätzliche Autostart-Einstellung steuert, ob die Dienste beim Starten der App kontrolliertund ggf. immer automatisch mitgestartet werden sollen. Was genau die Dienste tun, wird inAbschnitt 29.6 beschrieben.

Die zweite Hauptfunktionalität neben dem Datenimport ist der Upload einer Studie auf dasangeschlossene Gerät. Diese Funktion findet sich nicht direkt im Android Manager wieder, sondernim Rahmen der Upload Funktion. Anstelle eines Webservers bietet die Benutzeroberfläche vonGESS Q. Desktop es auch an, ein erkanntes Android Gerät als Ziel für den Upload auszuwählen.Da die zu übertragenden Datenmengen für USB Übertragungsraten vernachlässigbar klein sind,werden die Studien in diesem Fall immer vollständig (exklusive Datensätzen) übertragen.

29.6 Dienste App-Block und Net-Block

App-Block und Net-Block sind zwei unabhängige in der App enthaltene Dienste, die mit der Appgestartet werden können. Die Symbole auf der Startseite geben darüber Auskunft, in welchemZustand sie sich jeweils befinden.

Der Dienst Net-Block unterbindet jegliche Form von Drahtloskommunikation. In aktiviertemZustand versetzt es das Gerät in den Flugzeugmodus und deaktiviert sämtliche Drahtloskommuni-kation via WLAN, Bluetooth und Infrarot. Ferner wird der Zustand der genannten Verbindungs-arten kontinuierlich überwacht und dafür gesorgt, dass sie nicht wieder aktiviert werden können.Er lässt sich über das GESS Q. Skript während der Befragung mit den JavascriptfunktionenstartNetBlockService() und stopNetBlockService() beliebig starten und anhalten.

App-Block überwacht in aktiviertem Zustand kontinuierlich, ob Apps oder andere Gerätefunk-tionen als die von GESS Q. Android gestartet werden. Ist dies der Fall wird unverzüglich einSperrbildschirm vorgelegt. Bei Geräten mit Android 5 lässt sich GESS Q. Android über die USBVerbindung mit einem Sonderrecht zum Device Admin ernennen. Dies geht allerdings nur auffrisch aufgesetzten Geräten, die mit keinem Googlekonto verknüpft sind. App-Block erwirkt danneinen echten Kiosk Modus, so dass das Verlassen der App ganz und gar unmöglich wird. Es istzu beachten, dass die App nicht deinstalliert werden kann, solange das Sonderrecht aktiv ist. DieRücknahme ist lediglich über die USB Verbindung von GESS Q. Desktop aus möglich.

GESS Q. (Stand: März 2018) 242

Page 255: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 29. Die Android App - GESS Q. Android

29.7 Besonderheiten und Javascript Funktionen

In diesem Kapitel werden alle Besonderheiten rund um die App aufgelistet und beschrieben.

29.7.1 Startdefines

Jedes Interview, das von GESS Q. Android aus gestartet wird, verwendet automatisch:#define android

29.7.2 Abbruch-/Wiederaufnahme von Interviews

Während einer Befragung besteht jederzeit die Möglichkeit über das Menü das Interview ab-zubrechen. Sofern die App lizenziert ist und die datawritecondition bedingt, dass auch Da-tensätze geschrieben werden sollen, wird in diesem Fall ein Abbruchdatensatz gespeichert. ImStudienhauptmenü gibt es eine Liste mit abgebrochenen Fällen, die mit ihrem jeweiligenAbbruchzeitpunkt und der Fallnummer wiedererkennt und fortgesetzt werden können.

29.7.3 writerescuedata

Bei Befragungen mit GESS Q. Android sollte der Skriptparameter writerescuedata grundsätzlichimmer gesetzt sein, siehe auch Abschnitt 5.2. Sollte die App oder das gesamte Gerät unerwartetabstürzen, sind die letzten Eingaben so stets gesichert und es besteht die Möglichkeit derWiederaufnahme des Interviews im Studienhauptmenü. Rescue Datensätze sind in der Listeder abgebrochenen Fälle mit einem "r" gekennzeichnet.

29.7.4 QR-Code Scanner

Mit der GESS Q. App können innerhalb der Befragung QR-Codes gelesen werden. Voraussetzunghierfür ist eine Kamera, auf die GESS Q. Android zugreifen kann. Der Scanner lässt sich überdie Javascriptfunktion openBarcodeScanner aufrufen, die den Namen einer OpenQ als Parametererwartet, in der der gelesene Code gespeichert wird. Ein Beispiel:OpenQ barcode;Text="Die Kamera lässt sich auch nutzen, um Barcodes oder QR-Codes zu scannen.";Title = "<input type='button' value='Barcode scannen' onclick=\"openBarcodeScanner('barcode');\">";

Je nach Bedarf lässt sich der Scanner, wie im Beispielskript, per Knopfdruck oder auch sofortstarten. Die Sichtbarkeit des Eingabefelds der OpenQ könnte auch mit CSS versteckt und dergelesenen Werte in Actionblöcken überprüft werden.

GESS Q. (Stand: März 2018) 243

Page 256: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 29. Die Android App - GESS Q. Android

29.7.5 Audio (MP3) im Hintergrund aufnehmen

Mit Android Geräten, die über ein Mikrophon verfügen (intern oder extern), können Sprachauf-zeichnungen durchgeführt werden. Anfang und Ende der Aufzeichnung sind flexibel wählbar undüber Javascript Funktionen anzustoßen. Dies kann z. B. beim Klick auf einen Knopf passierenoder automatisch mit dem Anzeigen einer Seite des Fragebogens. Die Aufnahme kann sich auchüber mehrere Seiten erstrecken und wird durch einen entsprechenden Schriftzug am oberen Randdes Displays visualisiert.

startBackgroundAudioRecording("FILENAME")

Startet eine Audioaufzeichnung. Die Audiodatei wird mit dem Namen FILENAME abgelegt,sobald die Aufnahme beendet wurde. Wurde bereits eine Aufzeichnung gestartet, bleiben weitereAufrufe dieses Befehls funktionslos.

stopAudioRecording()

Beendet die aktuell laufende Audioaufzeichnung.// Beispiel:TextQ audiorec2;text="Die Aufnahme läuft und endet mit Ihrem Klick auf weiter.";javascript="

startBackgroundAudioRecording('rec_@insert(_caseid)');QDot.onSubmit = function(){

if(window.Android != undefined) {Android.stopRecording();

}};

";

Abschließend überprüft GESS Q. Android die Aufnahme: Wurde sehr wenig bzw. sehr leiseaufgenommen, erscheint ein symbolischer Warnhinweis (Kopf mit Fragezeichen).

29.7.6 Audio (MP3) punktuell via Recorder aufnehmen

Alternativ zur Aufnahme im Hintergrund lässt sich punktuell auch ein Recorder Menü öffnen.Es visualisiert den Aufnahmepegel und macht so erkennbar, ob auch tatsächlich Ton bei GESSQ. Android ankommt. Aufnahmen können anschließend wieder abgespielt oder gelöscht underneut aufgenommen werden. Eine maximale Aufnahmedauer lässt sich in Sekunden angeben. DerRecorder wird immer an eine OpenQ gekoppelt, in der der Dateiname der MP3 Datei gespeichertwird. Versteckt man das Eingabefeld der OpenQ via CSS, lässt sich so auch ein Aufnahmezwangrealisieren.

showAudiorecorder("OPENQNAME", SECONDS, [QTEXT])

Der Aufruf öffnet das Menü des Audiorecorders.

GESS Q. (Stand: März 2018) 244

Page 257: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 29. Die Android App - GESS Q. Android

OPENQNAME Name der OpenQ, die mit im Screen vorhanden sein muss

SECONDS Maximale Aufnahmedauer in Sekunden

QTEXT Optionaler Fragetext im Recorder Per Default wird der Fragetext der OpenQ übernommen// Beispiel:OpenQ audiorec3;text="Welches Buch Ihrer Zeitung interessiert Sie am meisten?";title="

<input type='button' value='Aufnehmen'onclick=\"showAudiorecorder('audiorec3', 20, 'Nennen Sie uns bitte die Gründe

für Ihr Interesse.');\">";css="

.qtitle{ text-align:center; }

.qopenfield{ display:none; }";

Abb. 29.4: GESS Q. Android: Audio aufnehmen

29.7.7 Fotos aufnehmen

Mit Android Geräten, die über eine Kamera verfügen, können im Rahmen eines Interviews Fotosaufgenommen werden, die sich anschließend auch wieder in den Befragungsablauf integrierenlassen. Die Aufnahme eines Fotos wird im Skript immer zusammen mit einer OpenQ vollzogen, dieim Anschluss den automatisch generierten Namen der Bilddatei enthält. Der eigentliche Aufrufder Kamera erfolgt mit der Javascript Funktion openCamera.

openCamera("NAME")

Startet die Kamera und referenziert die OpenQ mit dem Namen NAME, die auf dem selbenangezeigten Screen vorhanden sein muss. Der Dateiname des aufgenommenen Fotos wird inNAME als Text gespeichert.// Beispiel:OpenQ cam;text = "Bitte klicken Sie auf den Button, um ein Foto aufzunehmen.";title = "<input type='button' value='Kamera' onclick=\"openCamera('cam');\">";css = ".qopenfield{display:none;}"; // versteckt das Eingabefeld der OpenQ

GESS Q. (Stand: März 2018) 245

Page 258: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 29. Die Android App - GESS Q. Android

assert (num(cam) gt 0) "Sie müssen erst ein Foto aufnehmen.";

OpenQ cam_pic;text = "Warum haben Sie gerade dieses Bild fotografiert?";title = "<img width='500px' src='./media/@insert(_surveyname)/@insert(cam)'>";

29.7.8 Net-Block starten/stoppen

Der in Abschnitt 29.6 beschriebene Dienst Net-Block lässt sich im Skript beliebig mit Javascript-Funktionen starten und stoppen. Dies kann z. B. beim Klick auf einen Knopf passieren oderautomatisch mit dem Anzeigen einer Seite des Fragebogens. Muss im Rahmen der Befragungauf eine externe Ressource zugegriffen werden (z. B. ein Bild oder externes Conjoint), kannNet-Block an der entsprechenden Stelle abgestellt werden, so dass sich das Android-Gerät miteinem zuvor konfigurierten, lokalen WLAN verbinden kann und im Anschluss wieder gestartetwerden. Zu beachten ist hierbei, dass die Drahtlosnetzwerke einige Sekunden benötigen, um sichwieder zu verbinden.

Net-Block starten und beenden:startNetBlockService();stopNetBlockService();

29.7.9 Systemstart

Die GESS Q. Android App startet seit Version r843 automatisch mit dem Android-Systemstart.

29.7.10 Videos abspielen

Zur Wiedergabe von Videos nutzt GESS Q. Android einen internen Mediaplayer. Er kann mittelsJavascript gestartet werden, beginnt sofort ein Video im Vollbild abzuspielen und beendet sich(nur) von selbst, sobald das Video zu Ende ist.

playVideo(PATH_TO_VIDEO)

// Beispiel:TextQ video1;text="Videoplayer";javascript="playVideo('/media/@insert(_surveyname)/nilpferd.mp4');";

29.7.11 Webbrowsing

Verzweigt eine Befragung auf externe HTML-Inhalte, so werden diese innerhalb des Befragungs-fensters von GESS Q. Android dargestellt, ohne dass sich eine zusätzliche Browser App öffnet.

GESS Q. (Stand: März 2018) 246

Page 259: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 29. Die Android App - GESS Q. Android

Zusammen mit der Javascript Funktion Android.reload() lassen sich externe Inhalte ohne auf-wändigen Systemwechsel harmonisch einbinden. Das Konzept wird im Folgenden erläutert. Eserfordert einige Kenntnisse in Javascript. Bei einer konkreten Umsetzung helfen wir Ihnen gerne.

Android.reload("JAVASCRIPT")

Lädt den aktuellen Screen der Befragung erneut. Anstelle von JAVASCRIPT können JavascriptBefehle notiert werden, die am Ende des Screens eingefügt werden.

Integration von externen Befragungsmodulen (Javascript)

1. Screen A enthält Javascript Variable X mit dem initialen Wert 1

2. Screen A prüft Xwenn X eq 1: Springe zu externem Befragungsmodul MODwenn X eq 2: Gehe weiter zu Screen B

3. MOD wird aufgerufen

4. Am Ende von MOD wird Android.reload("X = 2;") ausgeführt

5. Screen A lädt erneut und springt nun zu Screen B

Praktisch sieht dies innerhalb von GESS Q. aus:TextQ A;text="Weitere Fragen über einen externen Link";css = "#continuebutton{visibility:hidden;}";javascript = "

var java_X = 1;$(document).ready(function(){

if(java_X == 2){$('#continuebutton').click();

}else{// -> Seite öffnenwindow.location.href = 'https://www.gessgroup.de';

}});

";

Und am Ende des externen Moduls so:// Beispiel über HTML-Timeout nach 5 Sekunden:<script type="text/javascript">

setTimeout(function(){Android.reload("java_X = 2;");

}, 5000);</script>

29.7.12 Zahlentastatur

Sofern NumQInputType = "number"; gesetzt ist, öffnet das Android Betriebssystem bei Eingabenvon NumQs automatisch die Zahlentastatur. Vorsicht ist allerdings geboten, wenn Eingaben mit

GESS Q. (Stand: März 2018) 247

Page 260: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 29. Die Android App - GESS Q. Android

Nachkommastellen gewünscht sind. Die Darstellung des Fragebogens erfolgt in GESS Q. Androidebenfalls in einem systeminternen Webbrowser. Die Hersteller meinen es beim numerischen Inputteilweise zu gut und validieren die Eingaben noch ehe eine Software sie überhaupt zu fassenbekommt. Abhängig von Spracheinstellungen des Browsers kann es hier bei der Interpretationeines vermeindlichen Dezimaltrennzeichens zu ungewollten Effekten kommen.

29.8 Kurzer Durchgang: GESS Q. Android auf dem Tablet

Beim Durchführen von Befragungen haben sich vor allem zwei Szenarien herauskristallisiert: Imersten Fall sollen die Android-Geräte so abgesichert wie möglich arbeiten und deswegen auch (soweit es geht) auf eine Netzverbindung verzichten (Standard z. B. bei Carclinics). Die Verwaltungder Android-Geräte erfolgt dabei über den Android-Manager (s. Abschnitt 26.8) per USB undeinen PC oder Laptop vor Ort. Vom Rechner wird zu Beginn die Studie auf jedes Gerät kopiert.Nach erfolgtem Interview(s) werden die Daten dann wieder auf den Rechner gezogen.

Im zweiten Fall dürfen die Android-Geräte ins Netz und können nach der Anmeldung an einemvoreingestellten Server den Fragebogen von dort herunter laden. Die Daten der Interviews könnensie über den gleichen Weg auf den Server kopieren. Die Oberfläche gibt sich da sehr sparsam undübersichtlich:

Abb. 29.5: GESS Q. Android: Startbildschirm

Die Auswahl Anmeldung als Interviewer verlangt die Anmeldung und führt zur Auswahl derauf dem Gerät vorhandenen Fragebögen.

Abb. 29.6: GESS Q. Android: Anmeldung als Interviewer

GESS Q. (Stand: März 2018) 248

Page 261: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 29. Die Android App - GESS Q. Android

Nach der Auswahl der Studie erscheint das Hauptmenü. Der ausgewählte Fragebogen kannüber Befragung starten gestartet werden. Ein Haken bei Testmodus sorgt dafür, dass keineDaten abgelegt werden. Interviews, die abgebrochen wurden, listet das Programm auf, damit siegegebenenfalls fortgesetzt werden können (intern werden abgebrochene Interviews in den Ordnerdeleted_data verschoben). Die Daten der Interviews können über Upload auf den voreingestelltenServer kopiert werden.

Abb. 29.7: GESS Q. Android: Hauptmenü

Fragebögen unterscheiden sich kaum von ihrer Online-Fassung, solange das Android-Gerät etwadurch die Größe des Bildschirms keine Grenzen setzt. Das Standard-Menü des Geräts (meistensHome, Menü, Zurück) bleibt in der Regel während des Interviews erhalten und erscheint unteroder auch neben dem Fragebogen. Der Zurück-Knopf wird durch GESS Q. Android stillgelegt,damit die Befragten nicht zurück gehen können (in den meisten Fällen unerwünscht). Der Menü-Knopf bietet darüber aber die Funktion, das Interview abzubrechen, bzw. aus dem Hauptmenüwieder auf den Ausgangsschirm zurück zu kommen.

Abb. 29.8: GESS Q. Android: Fragebogen

Die Anmeldung am Webserver erfordert aus Sicherheitsgründen mehr Einträge als die Anmeldungals Interviewer beim Android-Gerät:

GESS Q. (Stand: März 2018) 249

Page 262: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 29. Die Android App - GESS Q. Android

Abb. 29.9: GESS Q. Android: Anmeldung am Server

Nach der Auswahl einer Studie kann das Menü neben dem Download der Studie auf das Android-Gerät auch einen Eintrag zum Reporting anbieten:

Abb. 29.10: GESS Q. Android: Reporting als Übersicht

Die Steuerung erfolgt über die Einträge im Kopf der Seite und kann auch das automatischeErstellen von Tabellen auslösen, die den aktuellen Stand der Befragung zusammenfassen:

Abb. 29.11: GESS Q. Android: Reporting tabellarisch

Zum Screen, der die Anmeldung am Web-Server bietet, gehört auch ein Menü (eventuell über dieMenü-Taste erreichbar) oder ein Eintrag (meist oben rechts, das hängt etwas von der Android-Version ab), über den die Einstellungen zugänglich sind.

GESS Q. (Stand: März 2018) 250

Page 263: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 29. Die Android App - GESS Q. Android

Abb. 29.12: GESS Q. Android: Einstellungen

Es handelt sich um drei Einstellungen. Server URL nimmt die Adresse des Q-Servers auf, mitdem sich die App verbinden soll. Firma und Name geben die Einträge für das Login vor, sodass nur noch das Passwort eingetragen werden muss.

Nach dem Starten von GESS Q. auf dem Android-Gerät ruft die Menütaste Einträge im Fuß derSeite auf:

• Info zeigt die Versionsnummer der Software an.

• Lizenzieren ermöglicht das Lizenzieren der Software.

• Update prüft, ob auf dem voreingestellten Server eine neue Version der Software vorhandenist.

• Beenden bietet die einzige Möglichkeit, das Programm regulär zu beenden.

Abb. 29.13: GESS Q. Android: zusätzliche Funktionen

Zu beachten: GESS Q. als App für Android richtet sich nach den Spezifikationen, die Googlefür Android festgelegt hat. Es gibt mittlerweile eine unüberschaubare Vielfalt von Android-Geräten und gerade im Billigsegment weichen die Anbieter öfter von Googles Spezifikationenab. Das kann zu Problemen führen. Wir empfehlen daher, GESS Q. auf einem dem Standardgenügenden Android einzusetzen. Im Zweifel ließe sich die Kompatibilität auch überprüfen:http://source.android.com/compatibility/cts-intro.html

GESS Q. (Stand: März 2018) 251

Page 264: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 29. Die Android App - GESS Q. Android

29.9 Fehlersuche

Wenn die App unerwartet reagiert, kann das verschiedene Gründe haben. Es kann helfen,systematisch folgende Punkte zu überprüfen:

• Ist die URL des Servers korrekt in der App eingetragen? Anmeldung am Webserver ->Menü -> Einstellungen

• Ist das Gerät wirklich online oder nur in einem lokalen (offline) WLAN angemeldet?Auskunft gibt der Browser, wenn man testweise versucht, externe Web-Seiten zu öffnen.

• Kann die App die Studie vom Server herunterladen? -> Anmeldung am Webserver

• Welche laufende Nummer hat die App beim Lizenzieren bekommen und um welche AppVersion handelt es sich? Anmelde-Bildschirm -> Menü -> Info (s. die im Abschnitt 29.4angesprochenen Probleme mit nicht Standard-konformen Android-Versionen und Billig-Tablets).

• Liegen die Fälle womöglich bereits auf dem Server und wurden in der App nicht korrektbeiseite geräumt? Bereits auf dem Server vorhandene Fallnummern werden abgelehnt undkönnen nicht erneut hochgeladen werden.

• Für die Fehlersuche ist es immer hilfreich, eine konkrete, fehlschlagende Fallnummer vonder Interviewerin genannt zu bekommen - sprich: der Fehler sollte in einem konkretenBeispiel reproduzierbar sein.

GESS Q. (Stand: März 2018) 252

Page 265: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 30. GESS Q. im GESS Cati

30 GESS Q. im GESS Cati

Die Entwicklung des GESS Cati läuft auf Hochtouren und hier findet GESS Q. ein weiteresEinsatzgebiet, indem es vollintegriert für die Erstellung und Abwicklung der Fragebögen zumEinsatz kommt. Ein Telefonstudie bringt allerdings Besonderheiten mit sich, die zu neuenAnforderungen und Schnittstellen in GESS Q. führen. Dieses Kapitel erklärt welche es gibt undwie die Umsetzungen in der Praxis aussehen.

Damit überhaupt Informationen aus dem GESS Cati Kontext beziehbar sind, müssen Authentifi-zierungsdaten bekannt sein. Hierzu gibt es drei neue Einträge in der GESS Q. Konfigurationsdatei:catiCust=Kunde1catiUser=BenutzercatiPass=Passwort

30.1 Interview Stammdaten

Es kann während der Laufzeit eines Interviews nötig sein auf Stammdaten des konkreten Telefonatszurück zu greifen und Filterungen oder Steuerungen vorzunehmen. Neben Systemvariablen zujedem GESS Cati Interview, die Auskunft über Rahmenbedingungen geben, gibt es in den meistenFällen Adressdaten zu jeder Person die angerufen wird.

Systemvariablen

Die GESS Cati Version von GESS Q. verfügt stets über zusätzliches Set an Systemvariablen. Siewerden bei jedem Start eines Interviews aus dem GESS Cati Kontext heraus übergeben (Ausnahme:cati.customer stammt aus der Konfigurationsdatei), in der Regel nur intern verwendet und sindnicht änderbar.textq welcome;text = "

cati.study: @insert(cati.study)<br>cati.case: @insert(cati.case)<br>cati.server.url: @insert(cati.server.url)<br>cati.customer: @insert(cati.customer)<br>cati.terminal: @insert(cati.terminal)<br>cati.user: @insert(cati.user)<br>cati.userid: @insert(cati.userid)<br>cati.aqmid: @insert(cati.aqmid)<br>cati.queueid: @insert(cati.queueid)

";

Adressdaten

In den meisten Fällen basieren GESS Cati Projekte auf Adressbeständen mit potentiellen Ziel-personen, die viele Informationen zu den Personen enthalten. Dies ist nützlich, um bestimmte

GESS Q. (Stand: März 2018) 253

Page 266: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 30. GESS Q. im GESS Cati

Zielgruppen so gut wie möglich im Vorfeld zu selektieren, wird aber auch verwendet, um Fragebo-genfilterungen zu definieren. Welche Informationen konkret existieren ist von Adressbestand zuAdressbestand variabel. Die zu einem Interview gehörende Adresse wird beim Start vom GESSCati Kontext an GESS Q. übergeben. Da sich die enthaltenen Variablen von Projekt zu Projektändern können, müssen Variablen mit denen im Skript gearbeitet werden soll, dort innerhalb derspeziell dafür vorgesehenen CatiAddressData Struktur angelegt werden. Um Namenskonflikte zuvermeiden, werden Adressdaten intern grundsätzlich mit dem Präfix cati.address. versehen.CatiAddressData begin;

TextElement exampledata1;TextElement exampledata2;Compute exampledata3 = 0;TextElement vorname;TextElement name;TextElement strasse;

CatiAddressData end;

textq welcome;text = "

cati.address.exampledata1: @insert(cati.address.exampledata1)<br>cati.address.exampledata2: @insert(cati.address.exampledata2)<br>cati.address.exampledata3: @insert(cati.address.exampledata3)<br>cati.address.vorname: @insert(cati.address.vorname)<br>cati.address.name: @insert(cati.address.name)<br>cati.address.strasse: @insert(cati.address.strasse)

";

30.2 PreQuoten

PreQuoten sind Quoten, die in der Regel bereits bei der Ziehung einer Adresse ausgewertetwerden. Es kann aber auch möglich sein, dass Stände von PreQuoten sich auf einen Befragungs-verlauf auswirken. Dementsprechend ist ein Zugriff auf Stände und Zielvorgaben der PreQuotenerforderlich. Dank der GESS Cati Systemvariablen hat GESS Q. bei einem bestimmten Fall allenotwendigen Informationen über diese, um unsichtbar im Hintergrund Abfragen an den GESSCati Server zu stellen und entsprechende Werte abzufragen. PreQuoten werden im Skript alsPreQuotaVar mit einem Namen und der jeweiligen Ausprägung angelegt. Im weiteren Verlaufist die Abfrage von Ist- und Sollstand in gleicher Weise möglich, wie es auch bei der normalenQuotaVar der Fall ist.PreQuotaVar bundesland.16;

textq welcome;text = "

bundesland.16: @insert(bundesland.16) / @insert(target(bundesland.16))";

30.3 Besondere Funktionen

... TODO

GESS Q. (Stand: März 2018) 254

Page 267: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Kapitel 30. GESS Q. im GESS Cati

Nachbearbeitung von Screens

Insbesondere bei offenen Fragen werden die Antworten des Gesprächspartners vom Interviewer ausZeitgründen häufig nur stichpunktartig eingegeben und nach Ende des Telefonats nachbearbeitet.Dies jedoch nicht immer und auch nicht pauschal für bestimmte Fragen(-typen) gewünscht. GESSQ. führt daher einen neuen Skriptparameter postedit und ein neues Frageattribut posteditableein. Je nach Einstellung werden am Ende des Interviews bestimmte Screens sowie in jedem Falldiejenigen, die Fragen mit Frageattribut enthalten, zur optionalen Nachbearbeitung vorgelegt.postedit = opens; // [all|none|opens]

OpenQ ox;text = "Fällt Ihnen sonst noch etwas ein?";posteditable;

Wiedergabe von Audiodateien

Die Actionbefehle dialerPlaybackOn und dialerPlaybackOff starten bzw. stoppen eine Wieder-gabe von Audiodateien. Beim Starten wird der Name einer Audiodatei angegeben, die abgespieltwerden soll.ActionBlock ab = {

dialerPlaybackOn("FILENAME");// dialerPlaybackOff();

};

Mitschneiden von Gesprächen

Die Actionbefehle dialerRecordOn und dialerRecordOff starten bzw. stoppen das Mitschneidenvon Gesprächsverläufen. Beim Starten wird ein Dateiname vergeben unter dem die Aufnahmegespeichert werden soll.ActionBlock ab = {

dialerRecordOn("FILENAME");// dialerRecordOff();

};

GESS Q. (Stand: März 2018) 255

Page 268: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Stichwortverzeichnis

Stichwortverzeichnis

(de-)aktivieren, 197/* */, 7//, 7@back, 115@body, 115@cancel, 115@dummy, 115@error, 115@form, 115@forward, 115, 181@header, 115@htmllabels, 115@input, 20, 33, 115@insert, 57@insert(), 181@javascript, 115@language, 115@open, 20, 33@pbar, 115@posthelptext, 115@prehelptext, 115@qtext, 115@src, 61@src1 ... @src4, 115@submit, 115@surveyname, 115@target, 152@tt1 ... @tt8, 115#define, 8#else, 8#endif, 8#endmacro, 8#ifdef, 8#ifndef, 8#include, 7#macro, 8$surveyname, 114, 115_breakcount, 73_browser, 74_cancel, 75_caseid, 75_currentScreen, 73_currentdate, 73_currentmillis, 73_currenttime, 73_duration, 73_encryptedcaseid, 75

_finishdate, 73_finished, 75, 86, 181_finishtime, 73_idmode, 74_languages, 73_missing, 74_os, 74_randomid, 74_respid, 75, 177, 181, 198_resume, 76_revision, 73_startdate, 73_startdayofweek, 73_starttime, 73_surveyname, 73_useragent, 743DRotationViewer, 173

a.tab, 224Abbruchbutton, 132Abbruchcode, 75access.lst, 189, 206, 228Action-Befehl, 98Action-Block, 98active.cfg, 228ADb Treiber, 240adbApp, 185Add, 100Adressdaten, 253aesRandomKey, 100Always, 26, 30AnchorText, 22, 23Antwortlabel, 29Antwortreihenfolge, 119APK File, 239App-Block, 242AppendText, 70, 100archivePath, 185Array, 70ArrayInitMode, 41, 101ArraySortOrder, 91ASCII, 205, 221Assert, 75, 86Attempts, 86Audioaufnahme, 221Audioeinbindung, 160AutoChangePBar, 41, 117

GESS Q. (Stand: März 2018) 256

Page 269: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Stichwortverzeichnis

BackActionBlock, 99BackButton, 49BackButtonCnd, 50BackButtonSrc, 50, 133BackButtonText, 50backupPath, 186Bedingungen, 78Bespaltungsvorgabe, 217Bilder, 221Bipolar, bipolare Skalen, 24Blacklist, 189Block, 37block_, 69Blockzähler, 69brk_tabs.csv, 224brk_tabs.dat, 224brk_tabs.opn, 224BrowserNavigationMessage, 50button_checked (HTML Properties), 120button_inactive (HTML Properties), 120button_preview (HTML Properties), 122button_unchecked (HTML Properties), 120

CancelButton, 50, 75CancelButtonCnd, 51CancelButtonSrc, 51, 133CancelButtonText, 51Cancelled, 202CancelMenu, 75CancelMenuDefault, 75CancelMenuErrorMsg, 76case2json, 100CaseInUseMsg, 41cati.address.*, 253cati.aqmid, 253cati.case, 253cati.customer, 253cati.queueid, 253cati.server.url, 253cati.study, 253cati.terminal, 253cati.user, 253cati.userid, 253CatiAddressData, 253catiCust, 253catiPass, 253catiUser, 253ChangeLanguageActionBlock, 98ChangePBar, 83, 101, 117Clear, 101clearScreen, 101

ClearScreenOnBack, 41cmpl_tabs.csv, 224cmpl_tabs.dat, 224cmpl_tabs.opn, 224CmplActionBlock, 98Codieren, 222Colmap, 217colspan, 60Column, 38, 59Column Boundary Violation, 219CompletedExitCode, 42Compute, 65, 98Config files, 214ContainsText, 79ContinueActionBlock, 99ContinueButton, 51ContinueButtonCnd, 51ContinueButtonSrc, 51, 133ContinueButtonText, 51Cookies, 198Coordinates, 167Count, 80count_block, 69Countvars, 214Create backup on server, 214CreateDefaultSortId, 42, 93CreateLabelOpenValidation, 42CSS

keyboard-focus, 155keyboard-input-info, 155Textbereich, 12, 128

CSS Classcheckable, 132numinput, 140numq, 140qanchortext, 125qbuttoncell, 125qcolseparator, 126qerror, 125, 140qgriderrorcell, 126qgridheader, 125qgridspacing, 125qhighlight, 126, 132qitemtextcell, 125qlabelopen, 125qlabeltextcell, 125, 140qopencell, 125qrightitemtextcell, 126qrowclass, 126qscreencell, 126

GESS Q. (Stand: März 2018) 257

Page 270: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Stichwortverzeichnis

qslidercell, 140qsliderleftlabelcell, 140qslidermoved, 141qsliderrest, 140qsliderrightlabelcell, 140qslidersum, 140qsliderunspecifybuttoncell, 140qsliderunspecifytextcell, 140qslidervaluecell, 140qtable, 125qtext, 125, 140qtextitemcell, 125qtextlabelcell, 125, 140qtitle, 125, 140qvlabelcell, 125rotationViewer, 174

CSS media queries, 130CssLayout, 127CssLayout (HTML-Parameter), 51CSV, 221CSVINFILE, 221Current, 94, 202

Dataexport, 215Datalist, 146

Parameter, 148Datasets, 214DataWriteCondition, 42, 229Datum, 73Dec, 101DecimalFormat, 58, 109DecisionVar, 68DefaultNoMissing, 43, 136, 229Define, 8, 243Delete, 202Demoversion, 3DialerPlaybackOff, 255DialerPlaybackOn, 255DialerRecordOff, 255DialerRecordOn, 255DictFileVar, 68Directionals, 24DisableExitOnAssert, 43docPath, 186documentRoot, 186Dynamische Inhalte, 64

Einladungslinks, 178Else, 8, 67EnableKeyboard, 43, 155EnableTextReplace, 43

Encoding, 205Endfilter, 86EndIf, 8eq, 78ErrorPostText, 52ErrorPreText, 52Exists, 80Exit, 86, 101Exit-Code, 75Export, 65ExportLabel, 30ExportMapping, 44, 220, 221ExportText, 13ExportTitle, 13ext, 74Extensions, 27

Fallnummer, 75Feedback Tool, 209FileViolation, 27Filter, 78Filtertexte, 85FindMaxValIndex, 101FindMinValIndex, 101Finished, 202finished.msg, 182, 230FinishForward, 181Flt, 30, 38, 82For, 111Funktionen in Bedingungen, 79

ge, 79GESS Cati, 253GESS Javascript Bibliothek, 119GESS Q. Android, 1, 237

Abbruch-/Wiederaufnahme von Inter-views, 243

Audio-Aufnahme, 244Fotos aufnehmen, 245punktuelle-Audio-Aufnahme, 244WriteRescueData, 243

GESS Q. CAPI, 1GESS Q. Desktop, 1

Konfiguration, 185GESS Q. Server, 1GESStabs, 219, 224GESStabs Tabellen, 224GESStabs Tables, 203, 224GetCountValue, 102getRemoteContentByURL, 175getStatus, 175

GESS Q. (Stand: März 2018) 258

Page 271: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Stichwortverzeichnis

GNumQ, 21Grid-Frage, 22

transponiert, 22GridErrorType, 44gridHighlighting (HTML Properties), 123GridItemRestrict, 26GridItems, 22GridItems copy, 33GridLabelFooter, 25GridLabelHeader, 22, 23GridLabelRestrict, 25GridLabels, 22GridLabels copy, 33GridOpenNoMissing, 44Groß- und Kleinschreibung, 6Group, 28, 57, 65, 92

Filter, 84Textersatz, 84

gt, 79GTC folder, 214gtcApp, 186, 224gtcSurveyDir, 186, 224

HasDuplicateValues, 80HasLabel, 80HasMediaUpload, 80HeatPlotter, 166HTML, 220HTML einbinden, 61HTML Properties

JavascriptSingleMode, 123pg_corpus, 151pg_corpus_padding, 151pg_fading, 151pg_group_names, 152pg_grouping, 151pg_height, 151pg_orientation, 151pg_visibility, 151pg_visibility_menu, 152pg_visibility_orientation, 152pg_width, 151sl_barColor, 137sl_barColorLeft, 137sl_barHeight, 137sl_barImage, 137sl_barImageLeft, 137sl_barWidth, 137sl_color, 137sl_image, 137sl_ImageHeight, 137

sl_ImageWidth, 137sl_maxSum, 138sl_mode, 138sl_showValues, 138sl_startValues, 138sl_stepSize, 138sl_unspecified_button_checked, 138sl_unspecified_button_unchecked, 138sl_visibility, 138

HTML-Label, 62HtmlPostLabels, 62HtmlPostText, 11, 13HtmlPreLabels, 62HtmlPreText, 11, 13http, 178https, 178

IdClosedMsg, 44idmode, 177idproperties.cfg, 228IDs, 177, 214If, 111IfDef, 8IfNDef, 8IgnoreAssert, 45IgnoreFilter, 45IgnoreIDs, 202IgnoreNoMissing, 45ImageMap, 170in, 79Inc, 100, 102Include, 7IncQuota, 95, 102InitActionBlock, 99Input, 52Input (HTML-Parameter), 131Insert, 66InsertLabels, 35, 102Interne Variablen, 73Intervieweinstellungen, 40IntRandom, 69InvalidIdMsg, 45InvalidSingleMsg, 45ISO-8859-1, 205ItemMissingText, 46

Javascript, 12, 64addImage(), 158addTachisto2(), 165addTachistoCode(), 164bbIaImg, 133

GESS Q. (Stand: März 2018) 259

Page 272: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Stichwortverzeichnis

bbId, 133bbImg, 133bbOmoImg, 133cbIaImg, 133cbId, 133cbImg, 133cbOmoImg, 133ccIaImg, 133ccId, 133ccImg, 133ccOmoImg, 133gesstmpl.js, 119hide_labels, 164hide_labels(), 165hideq(), 162insertLayer(), 158

JavascriptSingleMode, 52, 123jdbcDriver, 186jdbcDropAndCreateTables, 186jdbcPassword, 186jdbcUrl, 186jdbcUser, 186JsHandler, 64JSON, 110

Klickreihenfolge, 119Kodierung, 205Kommentar, 7Konfiguration, 253Kontrollstrukturen, 111

Label, 28Labelgruppe, 23Labellist, 12LabelOpenErrorMessage, 46LabelRepeat, 25Labels copy, 33Lalign, 103Layout-Bereiche, 127le, 79LEGACY, 220Load, 103lrs Datei, 220lrs-Dateien, Übersetzungen, 207lrs-Dateien, Sprachen, 213lt, 79

Mailbox, 72, 108main, 37Makro, 8MaxFileSize, 27

maxIdleSeconds, 186MaxLabelsPerCol, 52maxMemoryLoad, 186maxNumAnswers (HTML Properties), 122maxNumBackups, 187Media folder, 214media queries, 130mediaRoot, 187minNumAnswers (HTML Properties), 122MissingText, 46modelPath, 187mouse_event (HTML Properties), 122multi_button_checked (HTML Properties),

120multi_button_inactive (HTML Properties),

120multi_button_unchecked (HTML Proper-

ties), 120MultiExportLimit, 18, 46MultiGridQ, 26MultiGridQClass, 53, 120Multimode, 177MultiQ, 18MultiQClass, 53, 120MultiQTextInsert, 57

NAME, 12Native Data, 216Navigationsbuttons, 132ne, 78Net-Block, 242Net-Block starten/stoppen, 246NoAnswerLabel, 47Noexport, 86NoMissing, 15NORMAL, 220Num, 80NumCoords, 167NumQ, 19NumQClass, 53NumQInputType, 53

onSubmit, 175Open, 20, 30openBarcodeScanner, 243OpenNumFormat, 19, 136, 137OpenQ, 19OPN, 221OversizeArray, 102Overview, 203, 222

Panelanbindung, 180

GESS Q. (Stand: März 2018) 260

Page 273: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Stichwortverzeichnis

PasswdQ, 19PBarMax, 47PBarWidth, 54PerformHttpRequest, 103Plausibilitätsbedingungen, 86Postedit, 255Posteditable, 255PostHelpText, 11, 13PostInterviewerHelpText, 11, 14Pow, 104Präprozessordirektiven, 7Prüfung bei Arrays und Multivariablen, 79PreAssertionActionBlock, 99PreHelpText, 11, 13PreInterviewerHelpText, 11, 14Preloads, 74, 177, 201PreQuotaVar, 254PreQuoten, 254presetDataPath, 187Print, 104PrintText, 104proxyIp, 187proxyPort, 187

QDot.heatplotter.create, 168qlabel, 172qonline.cfg, 224QR Code, 238QR-Code Scanner, 243QSortable NumQ, 142Quota, 204, 223QuotaGroup, 95QuotaVar, 94QuotaWriteCondition, 47Quoten, 94, 203, 214

Ralign, 104Random, 30–32, 38ReadDataFile, 104ReadRawJsonDataFile, 105ReadTextRessource, 106Rechenoperatoren, 65Regexp, 81reload, 246Remove, 106RemoveDuplicates, 106RepeatGridAnchor, 25ReplaceAll, 107Reporting, 222Responsive Design, 130

Zoom-Faktor, 130

Restrict, 28, 35, 67RestrictVar, 71ResumeActionBlock, 98Robot, 217robot, 195Rohdaten, 215RotateLeft, 107Round, 107Row, 38, 59rowspan, 60rsaEncrypt, 106

same origin policy, 175SAV Datei, 221SaveIP, 47SaveOnBack, 47Screens, 37, 59Screenshots, 195Screentext, 19Script, 107SendMail, 72, 108Server, 197Server Monitoring, 175server.lst, 189Set, 75, 108SetCurrentScreen, 108SetDecimalSeparator, 109Setfilter, 86SetGroupingSeparator, 109SetNextScreen, 109SetProperty, 54, 120SetText, 70, 116settings.q, 229ShareLabels, 35ShowAllErros, 22ShowHelptext, 48ShowIndividualErrors, 54ShowInterviewerHelptext, 48ShowLabelValues, 54ShowMaxLabels, 14ShowQuestionName, 54Shuffle, 109Single, 26, 30, 33Single IDs und Multi IDs, 202SingleGridQ, 22SingleGridQClass, 55, 120Singlemode, 177SingleQ, 15SingleQAutoSubmit, 55SingleQClass, 55, 120SingleQFormat, 15, 55

GESS Q. (Stand: März 2018) 261

Page 274: GESSQ. · GESSQ. Anwenderhandbuch ManuelTrittel,PatrickGoltzsch,SelineGünther Stand:März2018 GESSGesellschaftfürSoftwareinderSozialforschungmbH Waterloohain6-8

Stichwortverzeichnis

SingleQTableLabelsFirst, 55skript.q, 229slider_rest, 138slider_sum, 138SortID, 11, 12, 88

automatisch, 93Sortieren, 88SplitColumn, 28Sprachen, 220SPSS, 221StartActionBlock, 74, 98Startlinks, 178Statistics, 203, 223Strcmp, 82StrCutLeft, 110StrCutRight, 110Studientitel, 197Submit-Event, 175SurveyClosedMsg, 48surveyPath, 187SyncSort, 110Systemstart, 246

Tags, 197, 228Target, 94, 254Tastatureingabe, 155Teilnehmer-IDs, 177Template, 119template1 ... template8, 73, 115Testmode, 177testmode, 198Text, 12, 31Text folder, 214TextAreaCols (HTML-Parameter), 19TextAreaRows (HTML-Parameter), 19TextArray, 71TextElement, 70Textersatz, 57Textlabel, 28TextQ, 19Thumbnails, 157TimeoutActionBlock, 98timeOutCheckInterval, 187TimesSent, 82Title, 12, 37title.txt, 229to, 59ToMillis, 82Total, 202Transpose, 22

Uhrzeit, 73Unknown IDs, 198unspecified_button_checked, 21unspecified_button_unchecked, 21Update, 3UploadQ, 27URL-Parameter, 74URLName, 188USB Debugging, 240users.lst, 188UTF-8, 205

Validate, 201var.inc, 219var_tabs.inc, 224VarArray, 71Variablennamen, 5Vercodung, 222Version, 3, 197Videoeinbindung, 158Videos abspielen, 246Vollversion, 3

Webbrowsing, 246Weiterbutton, 132While, 111Whitelist, 39Wiederaufnahme von Interviews, 76WriteJsonToSurvey, 110WritePostText, 56WritePreText, 56WriteQText, 56WriteRescueData, 48WriteTitle, 56WriteViewingTime, 49

XCoord, 168

YCoord, 168

Zahlentastatur, 247Zahlenwerte, 58Zeichenkodierung, 205Zeichensatz, 205Zufallsgenerator, 200Zufallszahlen, 69Zugangscode, 75Zurückbutton, 132

GESS Q. (Stand: März 2018) 262