Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Zusammenfassung der Antworten für den Teilnehmer

More
3 weeks 21 hours ago #271458 by Gelimed
Ihre LimeSurvey-Version: [siehe rechts unten auf Ihrem LimeSurvey-Verwaltungsbildschirm]
Eigener Server oder LimeSurvey-Cloud: LimeSurvey Cloud Version 6.15.9
Genutzte Designvorlage: eigene
==================
Hallo liebe Helfer,
da die druckbare Antwort-Datei bei der Umfrage unten für die Teilnehmer völlig unübersichtlich ist, habe ich erstmal vergeblich nach einem Plugin o.Ä. gesucht für eine hübsche Zusammenfassung und dann halt selbst was gebastelt, siehe Umfrage.
Fragen:
Gibt es da wirklich nichts Vorgefertigtes? Ein Code-Schnipselchen, in dem man nur die Fragencodes anpassen müsste?
Und, da das wieder mal ziemlich zeitaufwändig war: Ginge das auch irgendwie einfacher?

Herzlichen Dank im Voraus für jeden Hinweis!
Niklas

Please Log in to join the conversation.

More
3 weeks 16 hours ago - 3 weeks 14 hours ago #271461 by Joffm

Gibt es da wirklich nichts Vorgefertigtes?

Das war jetzt nicht ernst gemeint, oder?
Deine Umfrage gab es auch nicht vorgefertigt.

Nein, aber Du hast es Dir auch unnötigerweise selbst schwer gemacht.
Fängt mit dem inline css an. Dadurch kannst Du nicht einfach sagen
{G01Q03_SQ01.question}: {G01Q03_SQ01.shown}
sondern musst das verschachtelte IF benutzen
{if(G01Q03_SQ01.NAOK=='1',"geschlossen",if(G01Q03_SQ01.NAOK=='2',"nur mit Termin",if(G01Q03_SQ01.NAOK=='3',"einheitliche Öffnungszeiten")))}

Dann moppeltst Du oft doppelt:
Wozu dienen die vielen "if(!is_empty)"?
Du hast doch bereits in der Frage validiert, dass in einer Zeile immer mindestens ein Uhrzeitpärchen steht.
Dann ist dies wirklich zu lang
{if(!is_empty(G01Q04_Y01_V1.NAOK),"von: ","")}{if(!is_empty(G01Q04_Y01_V1.NAOK),G01Q04_Y01_V1.shown,"")} {if(!is_empty(G01Q04_Y01_V2.NAOK),"bis: ","")}{if(!is_empty(G01Q04_Y01_V2.NAOK),G01Q04_Y01_V2.shown,"")} {if(!is_empty(G01Q04_Y01_N1.NAOK),"und von: ","")}{if(!is_empty(G01Q04_Y01_N1.NAOK),G01Q04_Y01_N1.shown,"")} {if(!is_empty(G01Q04_Y01_N2.NAOK),"bis: ","")}{if(!is_empty(G01Q04_Y01_N2.NAOK),G01Q04_Y01_N2.shown,"")}

Wegen der Formulierung "und von" müsstest Du nun testen, ob wirklich auch am Vormittag geöffnet war.
Daher würde ich dies einfach ändern in (Du siehst die Verknüpfung)
{if(!is_empty(G01Q04_Y01_V1.NAOK),"vormittags: "+G01Q04_Y01_V1.shown+' - '+G01Q04_Y01_V2.shown+'        ',"")} {if(!is_empty(G01Q04_Y01_N1.NAOK),"nachmittags: "+G01Q04_Y01_N1.shown+' - '+G01Q04_Y01_N2.shown,"")}

Und - ich komme wieder darauf zurück:
Wenn Du einfach die Zeiten der 6 Tage abfragst, also ohne diese "festen Zeiten" hättest Du einfach sechs Zeilen ohne "!is_empty"
Und dann kannst Du eine Tabelle machen wie


Gut, jetzt ginge es auch irgendwie mit der Funktion "listifop()" um die Tage der "festen Zeiten" aufzulisten.
 
Geschlossene Tage haben dann einfach keine Werte.
Da muss man allerdings aufpassen, damit Tage nicht doppelt angezeigt werden.

Vielleicht aber doch besser, eine zusätzliche Spalte für den Status einzufügen

Ich meine, Du denkst Dir da etwas aus oder lässt Dir etwas aufdrücken, ohne an die Konsequenzen zu denken.

Jetzt noch die letzte Idee:
In einer Gleichung extrahiere diese "festen Zeiten" wieder auf die einzelnen Tage und zeige einfach die Tabelle mit allen Tagen an.
Dann brauchst Du weder IFs noch "is_empty".

Der gesamte Rest ist ja recht geradeaus. Hier würde ich auch mit bootstrap rows und columns, bzw. tables arbeiten.

Joffm
 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 3 weeks 14 hours ago by Joffm.

Please Log in to join the conversation.

More
2 weeks 6 days ago - 2 weeks 6 days ago #271466 by Joffm
Ich habe noch einmal etwas herumgedacht.
Mir ist eben nicht klar, wer das Ding ausfüllen soll und was dann geschieht.
Denn was bedeutet "Ich habe die Zusammenfassung gespeichert"?
Irgendjemand tippt die Daten von - sagen wir - fünf Ämtern ein - dann erscheint am Ende die Zusammenfassung.
Aber wie soll dies gespeichert werden?
Das verstehe ich nicht.
Daher schlage ich vor, das plugin "pdfReport" zu benutzen.
[url] gitlab.com/SondagesPro/ExportAndStats/pdfReport [/url]
Dann kann das pdf nach Absenden der Umfrage ausgedruckt werden und es ist im Datensatz enthalten.
 
Hier heißen sie alle sehr kreativ "aaa". Im Ernstfall würde man sicher den Code des jeweiligen Amtes inkludieren.

Hier einmal etwas Rohes, noch ohne viel Schönheit




Bei diesem zweiten habe ich das fest verdrahtete "<strong>" aus den Teilfragen herausgenommen, stattdessen mit css "gefettet" (und gleichzeitig, die Teilfragen linksbündig angeordnet)
Ansonsten wird ja bei Benutzung von ".question" immer fett dargestellt.
Einfach mit
Code:
<style type="text/css">
.ls-answers tbody .answertext {
  text-align: left;
  font-weight:bold;
  }
</style>


Das kann/muss man jetzt aufhübschen und erhält vielleicht pro Amt eine Seite.
Muss man einmal machen; danach ist es ja "Suchen&Ersetzen", da ja nur die Gruppenbezeichnung geändert werden muss.

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 2 weeks 6 days ago by Joffm.

Please Log in to join the conversation.

More
2 weeks 4 days ago - 2 weeks 4 days ago #271469 by Gelimed
Guten Morgen Joffm,

vielen Dank wieder für die verschiedenen Verbesserungs-Ideen!
Und vor allem wieder für die Hinweise auf unlogisches Denken - das hilft mir am Meisten weiter, auch wenn es schmerzt :-)...
Das "Speichern" ist halt wie oben drüber im Hinweis gemeint: Screenshot oder rauskopieren - bleibt aber damit ein unprofessionelles Gebastel, ist mir klar.
Ich arbeite mich durch deine Ansätze und melde mich dann wieder.

Viele Grüße,
Niklas
Last edit: 2 weeks 4 days ago by Gelimed.

Please Log in to join the conversation.

More
2 weeks 3 days ago #271471 by Joffm
Hallo, Niklas,
ich hatte vielleicht "zu mutig" gedacht.
Ihr arbeitet ja mit der Cloud-Version.
Da ist es nun per se nicht möglich, plugins zu installieren. Erst ab der Expert-Version bietet die LimeSurvey GmbH eine Installation gegen ein Salär an.
Damit entfällt also meine Idee mit "pdfReport"; es sei denn, aus dem Topf "IT-Initiative" des Landes (irgendsoetwas gibt es hier in Hessen) kann man die 500€ abzweigen.

Na gut, also ohne dies.
Da wäre es zumindest gut, das Ganze in die End-Nachricht zu packen, dort einen Button "Ausdruck" zu ersxtellen, der im Grunde nur "windows.print" aufruft.
Ist im Detail wohl etwas fitzelig, da man keinen Einfluss auf den "pagebreak" hat.
Dann gibt es natürlich die von Dir bisher verfolgte Lösung, jede Abteilung auf einer separaten Seite darzustellen; da kann man den Button ja auch einbauen.

Ich werde einmal ein Beispiel fabrizieren.

Aber mir ist gestern abend eine Unschönheit aufgefallen.
Bei der ersten Frage kann Frau Meier in verschiedenen Zeilen verschiedene Ämter auswählen; sie weiß ja, wann das Bauamt geöffnet hat, und auch, wann der Bürgermeister, usw)

Laut Text sollen aber wohl nur ein Amt, und dazu dann die verschiedenen Abteilung ausgewählt und ausgefüllt werden.

Sollte es in Ihrem Amt/Ihrer Dienststelle unterschiedliche Öffnungszeiten geben, haben Sie die Möglichkeit, Ihr Amt mehrfach zu erfassen:

Bitte wählen Sie über das DropDown-Menü Ihr Amt/Ihre Dienststelle aus und ergänzen dann jeweils die Abteilungen und Sachgebiete.

Sie können bis zu 10 unterschiedliche Abteilungen und/oder Sachgebiete erfassen.

Daher würde ich lieber zunächst eine Einfachnennungsfrage nach dem Amt stellen und dann in der Matrix dazu die Abteilungen und Sachgebiete erfragen.
Zum Beispiel:
 
 

Volunteers are not paid.
Not because they are worthless, but because they are priceless

Please Log in to join the conversation.

More
2 weeks 3 days ago #271472 by Gelimed
Hallo Joffm,

danke für den Hinweis auf die Einschränkung durch die Version - ich werde das mal mit den Kollegen dirkutieren.

Wenn ein Button zu schwierig ist oder meine Anpassungs-Fähigkeiten übersteigt, bleibt es halt beim Gebastel - Screenshots sind ja völlig in Ordnung, und wir sind ja in einer stadtinternen Umfrage "unter Kollegen"...

Die "Unschönheit" ist mir auch irgendwann klar geworden (ich dachte anfangs, ein Mitarbeite müsste auch für verschiedene Ämter eintragen) - ich hatte dann aber keine Zeit mehr für den Umbau. Es ist schon so extremt viel Zeit in diese "kleine" Abfrage geflossen, und sie soll eigentlich jetzt starten...mal schauen, ob ich mich noch damit beschäftigen kann - sonst halt vor dem nächsten Durchgang 26/27
Bis dahin muss Frau Meyer eben aufpassen bei der Auswahl des Amtes :-)

VG Niklas

Please Log in to join the conversation.

More
2 weeks 3 days ago - 2 weeks 3 days ago #271477 by Joffm
Hallo,
ich denke auch, dass Deine erste Lösung ja in Ordnung ist.
Es ist jaalles vorhanden, was benötigt wird

Und mit einem Tool wie "Snipping Tool", welches ja in Windows vorhanden ist, können die Leute sich doch gut die Dinger speichern.

Hier einmal etwas als Fingerübung mit bootstrap-Elementen; das ist schon recht umfangreich.
 
Andererseits muss man es ja nur einmal erstellen, sonst nur kopieren und die Gruppenbezeichnung ändern.

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 2 weeks 3 days ago by Joffm.

Please Log in to join the conversation.

More
2 weeks 3 days ago #271483 by Gelimed
...ja, bis auf den Fehler bei "und von" und die ganzen überflüssigen "if !is_empty" geht das schon - das habe ich jetzt mit deiner Hilfe verbessert / optimiert, danke nochmal!

Aber die Lösung mit bootstrap-Elementen ist schon hübsch übersichtlich - könntest du davon eine Datei hier reinstellen? Mir fehlt da das Vorstellungsvermögen, wie man sowas baut...

Und noch eine Kleinigkeit: Weißt du, wie ich diese eckigen Klammern wegbekomme? Dort steht ja sonst die Spaltenüberschrift drin, wenn man .question nutzt...

 
...hier der Teil des Codes:
{G01Q07_SQ01_X001.question}{if(is_empty(G01Q07_SQ01_X001.NAOK),"geschlossen",G01Q07_SQ01_X001.shown)}
{G01Q07_SQ02_X001.question}{if(is_empty(G01Q07_SQ02_X001.NAOK),"geschlossen",G01Q07_SQ02_X001.shown)}
{G01Q07_SQ03_X001.question}{if(is_empty(G01Q07_SQ03_X001.NAOK),"geschlossen",G01Q07_SQ03_X001.shown)}
{G01Q07_SQ04_X001.question}{if(is_empty(G01Q07_SQ04_X001.NAOK),"geschlossen",G01Q07_SQ04_X001.shown)}
{G01Q07_SQ05_X001.question}{if(is_empty(G01Q07_SQ05_X001.NAOK),"geschlossen",G01Q07_SQ05_X001.shown)}
{G01Q07_SQ06_X001.question}{if(is_empty(G01Q07_SQ06_X001.NAOK),"geschlossen",G01Q07_SQ06_X001.shown)}

Please Log in to join the conversation.

More
2 weeks 2 days ago - 2 weeks 2 days ago #271488 by Joffm
Ja, weiß ich.

Ich sage es auch.
Dies ist der Text der Teilfrage in der x-Achse.
Du hast ja dies: G01Q07_SQ01_X001.question; also wird angezeigt SQ01 UND X001. Und der Text von X001 in diesen eckigen Klammern.
Zwei Möglichkeiten:
1. Mit den Funktionen "subst()" und "strpos()"
{substr(G01Q07_SQ01_X001.question,0,strpos(G01Q07_SQ01_X001.question,'['))}
Das ist nur der Vollständigkeit halber. Ich halte es für wenig praktikabel

2. Schreibe die Tage einfach rein. Geht ja auch jetzt im Nachhinein superschnell mit "Schnell hinzufügen"

Ich hatte ja schon einmal erwähnt, dass ich es nicht so prickelnd fand, dass in den Teilfragen- und Antwortoptionstexten inline css verwendet wird.
Das schleppst Du ja immer mit, wenn du z.B. mit ".question" darauf referenzierst, später aber eben nicht fett anzeigen willst (oder was auch immer)
Besser fände ich es, einfachen Text zu schreiben und mit einem Stylesheet die Ausprägung zu machen.
 

So kann es dann aussehen.
 
Übrigens - wie Du siehst - habe ich die Feiertagsfrage auf normale Matrix umgebaut, wo die Vorgabe "geschlossen" mit einer Gleichung reingeschrieben wird,

Dann habe ich noch die Spaltenbreiten angepasst.
Ich fand, das Bild ist dann einheitlicher.

Die Feiertagsmatrix hat übrigens eigentlich drei Antwortoptionen; die dritte wurde aber mit javascript ausgeblendet.
Script zum Ausblenden der Radios
Code:
<script type="text/javascript" charset="utf-8">
     $(document).ready(function() {
    $('#question{QID} tr[id^="javatbd"]:eq(0) .radio-item:eq(2) *').remove();
    $('#question{QID} tr[id^="javatbd"]:eq(1) .radio-item:eq(2) *').remove();
    $('#question{QID} tr[id^="javatbd"]:eq(2) .radio-item:eq(2) *').remove();
    $('#question{QID} tr[id^="javatbd"]:eq(3) .radio-item:eq(2) *').remove();
    $('#question{QID} tr[id^="javatbd"]:eq(4) .radio-item:eq(2) *').remove();
    $('#question{QID} tr[id^="javatbd"]:eq(5) .radio-item:eq(2) *').remove();
  });
</script>


Script und css für die Anpassung der Spaltenbreiten
Code:
  $(document).on('ready pjax:scriptcomplete',function(){
    var thisQuestion = $('#question{QID}');
    // Add a question class
    thisQuestion.addClass('custom-array');
 
    // Column-specific classes
    $('table.subquestion-list tr', thisQuestion).each(function(i) {
      $('th, td', this).each(function(i) {
        $(this).addClass('column-'+i);
      });
    });
  });
</script>


Code:
<style type="text/css">
  .custom-array table.subquestion-list col {
    width: auto !important;
  }
  .custom-array table.subquestion-list thead .column-0 {  width: 16%; }
  .custom-array table.subquestion-list thead .column-1 {  width: 22%; }
  .custom-array table.subquestion-list thead .column-2 {  width: 22%; }
  .custom-array table.subquestion-list thead .column-3 {  width: 44%; background-color:#efefef;}

 .ft td.answer_cell_3 {
    background-color: #efefef !important;
}

Damit nur diese Matrix von der Vergrauung betroffen ist, habe ich zusätzlich eine css-Klasse "ft" (Feiertage) zugefügt.

Steht auch alles im Tutorial "Matrizen".

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 2 weeks 2 days ago by Joffm.

Please Log in to join the conversation.

More
2 weeks 20 hours ago #271888 by Gelimed
Vielen Dank Joffm, das sieht wieder mal viel besser aus als mein Gebastel.
Ich schaue mir das nächste Woche detailliert an und melde mich wieder.

Viele Grüße
Niklas

Please Log in to join the conversation.

More
1 week 3 days ago - 1 week 3 days ago #272468 by Gelimed
Hallo Joffm,
danke nochmal für die detaillierten Ausführungen!
Ich habe jetzt versucht, die Feiertagsfrage wie du mit Vorgabe "geschlossen" umzubauen. Ich konnte aber nicht herausfinden, wo genau du welche Gleichung reinschreibst, um die Vorgabe zu bewirken. Ich habe dann ein JS-Schnipsel gefunden, das das gleiche macht:
Code:
<script type="text/javascript">
    $(document).ready(function() {
        // Setze für alle Radio-Buttons mit dem Muster "665974X2226X41675SQ" den Wert "01" (geschlossen)
        $('input[type="radio"][name^="665974X2226X41675SQ"]').each(function() {
            if ($(this).val() === "01") {
                $(this).prop("checked", true);
            }
        });
    });
</script>
Den Input-Namen habe ich aus der Konsole ermittelt - funktioniert.
Aber ich wüsste doch gerne, wie du das gemacht hast! :-)
Viele Grüße
Niklas
Last edit: 1 week 3 days ago by Gelimed.

Please Log in to join the conversation.

More
1 week 3 days ago #272469 by Joffm

wo genau du welche Gleichung reinschreibst

Na, komm, das haben wir hier aber schon oft gemacht.
Am Anfang der Gruppe - oder auch schon vorher - eine Frage vom Typ "Gleichung" mit
Code:
{G01Q07_SQ01=if(is_empty(G01Q07_SQ01),2,G01Q07_SQ01)}
{G01Q07_SQ02=if(is_empty(G01Q07_SQ02),2,G01Q07_SQ02)}
{G01Q07_SQ03=if(is_empty(G01Q07_SQ03),2,G01Q07_SQ03)}
{G01Q07_SQ04=if(is_empty(G01Q07_SQ04),2,G01Q07_SQ04)}
{G01Q07_SQ05=if(is_empty(G01Q07_SQ05),2,G01Q07_SQ05)}
{G01Q07_SQ06=if(is_empty(G01Q07_SQ06),2,G01Q07_SQ06)}

Meine Codes sind hier:
1: geöffnet
2: geschlossen

Klar, das script funktioniert.
Allerdings sollte man nie mehr hart codierten SGQ-Code verwenden.
Dies war vielleicht nötig in Versionen vor 1.92, aber jetzt verwendet man besser die entsprechenden Variablen, wie
{SID}: SurveyID,
{GID}: GroupID,
{QID}: QuestionID,
{SGQ}: entspricht {SID}X{GID}X{QID}, fügt also die drei Werte wie oft benötigt zusammen.

In nahezu allen scripten siehst Du zum Beispiel diese Zeile
var thisQuestion = $('#question{QID}');
um auf die aktuelle Frage zu referenzieren.

Dann wird
Code:
$('input[type="radio"][name^="665974X2226X41675SQ"]').each(function() {
zu
Code:
$('input[type="radio"][name^="{SGQ}SQ"]').each(function() {
und ist universal gültig.

Im Moment ist es aber noch so, dass - falls bei den darüberliegenden Fragen eine Pflichteingabe vergessen wird - beim Absenden ja die Fehlermeldung aufploppt.
Danach sind aber alle Feiertageseinträge wieder auf dem Grundzustand; falls also irgendwann geöffnet war, ist jetzt wieder geschlossen.
Das solltest Du noch einbauen.

Aus diesem Grunde ist in der Gleichungsfrage ja dieselbe Konstruktion wie bei einer Zufallszahl; nämlich "nur, wenn sie leer ist", wird sie auf "2" gesetzt, sonst bleibt sie wie sie ist.

Joffm

 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The following user(s) said Thank You: Gelimed

Please Log in to join the conversation.

More
1 week 3 days ago #272470 by Gelimed
...vielen Dank für deine Geduld und die Erklärungen zum harten codieren, jetzt verstehe ich das endlich auch!

VG Niklas

Please Log in to join the conversation.

Moderators: holchJoffmtpartner

Lime-years ahead

Online-surveys for every purse and purpose