Welcome to the LimeSurvey Community Forum

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

queXML PDF

  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 year 11 months ago #228486 by holch
Replied by holch on topic queXML PDF
Bei manchen Fragen gibt es die Funktion die Frage anzuzeigen nicht. Soweit ich weiss, sind das die Fragen die Unterfragen haben.

Aber wo ist das Problem? Die Fragen kennst du ja, kannst den Text einfach so reinkopieren. Der Fragentext ändert sich ja (im Normalfall) nicht. Das dürfte das ganze auch beschleunigen, weil Limesurvey weniger Variablen auflösen muss und von der Arbeit her dürfte es eigentlich fast die gleiche sein, das so anzulegen.

I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 year 11 months ago #228507 by Joffm
Replied by Joffm on topic queXML PDF

dass mir ein Fehler angezeigt wird, wenn ich möchte, dass sie mir als Frage angezeigt werden und verstehe nicht, warum das so ist.

Wenn Du damit meinst, dass bei Fragen mit Teilfragen (Mehrfachnennung, Matrix, ...) der eigentliche Überfragentext nicht mittels der Property ".question" angezeigt wird, ist dies eben so.
Es wird im Grunde die Spaltenüberschrift der Datenbanktabelle angezeigt.
Denn im Grunde ist eine Mehrfach-Frage ja nichts anderes als eine Aneinanderkettung von Einfachfragen, die mit "gewählt" oder "nicht gewählt" beantwortet werden.

Wie @holch schon sagte, das wird hart gecodet. Oftmals steht ja in diesem Fragetext noch etwas "Schrott", den man gar nicht anzeigen möchte (irgendwelche Erklärungen, oder so)

Nun zum Ausblenden aufgrund einer Vorfrage.
Wie schon gesagt: Benutze nicht den HTML-Editor, sondern den Quelltext-Editor.
Dann könnte es so aussehen (ganz schnell und roh):
Code:
<p>Hallo,</p>
 
<p>hier sind die Antworten:</p>
 
<table border="1" cellpadding="1" cellspacing="1" style="width:500px;">
    <tbody>
        <tr>
            <td style="width:61%">{Q4_SQ001.question}</td>
            <td style="width:39%">{Q4_SQ001.shown}</td>
        </tr>
        <tr style="{if(Q1<25,'display:none','')}">
            <td style="width:61%">{Q4_SQ002.question}</td>
            <td style="width:39%">{Q4_SQ002.shown}</td>
        </tr>
    </tbody>
</table>
<p>
</p>
<p>
</p>
<table border="1" cellpadding="1" cellspacing="1" style="width:500px;">
    <thead>
        <tr>
            <th style="width:61%">Bewerten Sie einmal</th>
            <th style="width:13%">gut</th>
            <th style="width:13%">mittel</th>
            <th style="width:13%">schlecht</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td style="width:61%">{Q4_SQ001.question}</td>
            <td style="width:13%;text-align:center">{if(Q4_SQ001==1,"X","")}</td>
            <td style="width:13%;text-align:center">{if(Q4_SQ001==2,"X","")}</td>
            <td style="width:13%;text-align:center">{if(Q4_SQ001==3,"X","")}</td>
        </tr>
        <tr>
            <td style="width:61%">{Q4_SQ002.question}</td>
            <td style="width:13%;text-align:center">{if(Q4_SQ002==1,"X","")}</td>
            <td style="width:13%;text-align:center">{if(Q4_SQ002==2,"X","")}</td>
            <td style="width:13%;text-align:center">{if(Q4_SQ002==3,"X","")}</td>
        </tr>
    </tbody>
</table>
<p>
</p>
<p>
</p>
<table border="1" cellpadding="1" cellspacing="1" style="width:500px; {if(Q1<25,'display:none','')}">
    <tbody>
        <tr>
            <td style="width:80%">{Q1.question}</td>
            <td style="width:20%">{Q1.shown}</td>
        </tr>
        <tr style="">
            <td style="width:80%">{Q2.question}</td>
            <td style="width:20%">{Q2.shown}</td>
        </tr>
        <tr>
            <td style="width:80%">{Q3.question}</td>
            <td style="width:20%">{Q3.shown}</td>
        </tr>
    </tbody>
</table>

Du siehst diese Zeile
<tr style="display:{if(Q1<25,'display:none','')}">
Hier wird also ein IF benutzt, um bei Teilnehmern, die jünger als 25 sind diese Tabellenzeile auszublenden.

Genauso, um eine ganze Tabelle auszublenden
<table border="1" cellpadding="1" cellspacing="1" style="width:500px; {if(Q1<25,'display:none','')}">

Immer beachten Anführungszeichen müssen sich abwechseln.
Innerhalb von doppelten kommen einfache, und umgekehrt.

Jetzt zur Begründung, warum nicht der HTML-Editor.
Dieser meint, manches besser zu wissen, und ändert "<" und ">" Zeichen in die Entities "&lt;" und "&gt;". Damit kommt Expression Manager nicht zurecht.
Kann man umgehen, indem man die Synonyme "lt" und "gt", und auch "le" und "ge" benutzt.
Aber zusätzlich gibt es auch manchmal Probleme mit den Anführungszeichen. Da kommt dieser Editor ebenfalls von Zeit zu Zeit durcheinander.
Das macht dann viel Mühe und Ärger.

Joffm


 

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

Please Log in to join the conversation.

  • wiebkebärit
  • wiebkebärit's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
1 year 11 months ago #228647 by wiebkebärit
Replied by wiebkebärit on topic queXML PDF
Vielen Dank für eure Antworten, das hat mir sehr geholfen! Ich habe mittlerweile "nur" noch zwei Probleme.
Das erste tritt auf, wenn ich mir bei Teilfragen, die markiert wurden einen Text anzeigen lassen möchte (bei allen anderen Fragearten funktioniert es mit der Textanzeige). Ich habe es bisher nach dem Schema {if(A1_SQ001=="Y","Geschlecht","")} gemacht, da wird mir immer nur eine 1 angezeigt in der E-Mail Benachrichtigung. Muss ich für das Y etwas anderes einsetzen? Wenn ich nämlich bei Matrixfragen mit Antwortoptionen an der Stelle des Y beispielsweise A1 einsetze, funktioniert es ja.

Das zweite Problem ist immer noch das Anzeigen der Tabelle. Da bin ich mir unsicher, was ich im Quelltext-Editor eingeben muss.

<table border="1" style="width:500px; {if(Y2_SQ00F1=='N', 'display:none','')}">

habe es damit versucht, aber das hat leider nicht funktioniert, habt ihr Ideen woran das liegen kann? Ist es vielleicht ähnlich zu Problem 1 mit den Teilfragen? Also auch hier soll es so sein, dass bei einer bestimmten ausgewählten Antwort die Tabelle angezeigt werden soll.

Schon mal vielen Dank im Voraus!

Please Log in to join the conversation.

  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 year 11 months ago #228648 by holch
Replied by holch on topic queXML PDF
Es wundert nicht, dass nur eine angezeigt wird. Du fragst ja auch nur eine teilfrage ab, und zwar die SQ001 der Frage A1. Das musst du jetzt genauso für alle anderen Teil fragen mit A1_SQ002, etc machen...

Die Tabelle musst du halt wie eine Tabelle in HTML formatieren. Dazu gehört neben dem table Tag halt auch noch tr (table row) and td (für die Zellen). Das hat aber mit limesurvey selbst erstmal nicht zu tun. Da solltest du dir die basics für Tabellen in HTML mal ansehen. Auf dem Handy kann ich da schlecht links posten, das sollte aber sehr leicht zu Googlen sein.

I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 year 11 months ago - 1 year 11 months ago #228649 by Joffm
Replied by Joffm on topic queXML PDF
Naja, Du scheinst noch sehr auf dem Kriegsfuß mit den QCodes zu stehen.

Schau einmal hier
[url] manual.limesurvey.org/ExpressionScript_-...code_variable_naming [/url]
In der Tabelle stehen nun wirklich für alle möglichen Fragetypen Beispiele, was die Relevanz angeht.

Jetzt zu Deinen beiden Problemen:
1.  {if(A1_SQ001=="Y","Geschlecht","")}
Das würde also bedeuten,
  • es ist eine Frage vom Typ "Mehrfachnennung"
  • sie hat den Code "A1"
  • die Teilfrage mit dem Teilfragencode "SQ001" wurde ausgewählt
  • dort möchtest Du den Text "Geschlecht" anzeigen
Ich würde bei einer solchen Konstellation eher vermuten, dass man dann den Text der Teilfrage anzeigt; dies würde ja mit der Property ".shown" gemacht.
Siehe hier
[url] manual.limesurvey.org/ExpressionScript_-...#Access_to_variables [/url]

2. {if(Y2_SQ00F1=='N', 'display:none','')}
Dies würde nur funktionieren, wenn
a.
  • es eine Frage vom Typ "mehrfache kurze Texte" ist
  • sie den Fragecode "Y2" hat
  • eine Teilfrage mit dem Teilfragencode "SQ00F1" existiert
  • diese Teilfrage mit dem Text "N" beantwortet worden wäre.
b.
  • es eine Frage vom Typ "Matrix" ist
  • sie den Fragecode "Y2" hat
  • eine Teilfrage mit dem Teilfragencode "SQ00F1" existiert
  • die Antwortoptionen evtl. mit "A", "B", "M", "N", "P", "X" (oder irgendwie so) codiert sind
Ich glaube nicht, dass dies so ist. 

Aber Du hast ja auch nicht geschrieben, um welche Fragetypen a es sich handelt.

Daher - wie immer - mein Rat:
Aktiviere die Umfrage, gib ein paar wohl definierte Daten ein (schreibe also auf, was Du wo eingegeben hast) und schaue die Antworttabelle an.
Dann siehst Du, 

wie der QCode ist, wie die Antworten abgespeichert wurden, also was Du für Deine Bedingungen benutzen musst.

Und natürlich kannst Du auch eine Frage vom Typ "Textanzeige" anlegen, in welcher Du einfach einmal alle Properties der Fragen 
anzeigen lässt.
Zum Beispiel:
{F1}, {F1.Code}, {F1.shown}, {F1.question}, ...,  {F1.sgqa}
{F2_SQ001}, {F2_SQ001.shown}, {F2_SQ001.question}, ...,  {F2_SQ001.sgqa}
Alles, was Dir irgendwie interessant erscheint.

Joffm
 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 1 year 11 months ago by Joffm.

Please Log in to join the conversation.

  • wiebkebärit
  • wiebkebärit's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
1 year 11 months ago #228655 by wiebkebärit
Replied by wiebkebärit on topic queXML PDF
Hallo, vielen Dank für eure Tipps, das mit dem Ausprobieren hat mir tatsächlich bei der Lösung meines ersten Problems geholfen. Mein Problem ist immer noch die Tabelle (habe es versucht zu googlen, aber habe nicht das passende gefunden) und habe versucht mich an Joffms Beispiel zu orientieren. Leider klappt es immer noch nicht. In dem folgenden Beispiel ist Y2 eine Frage mit Mehrfachauswahl. Wenn dann die Antwortmöglichkeit SQ00F1 angeklickt wurde, soll die folgende Tabelle gezeigt werden, wenn sie nicht angeklickt wurde, dann nicht.

<table border="1" cellpadding="1" cellspacing="1" style="width:500px; {if(Y2_SQ00F1=='N','display:none','')}">
    <tbody>
        <tr>
            <td style="width:60%">Sportart</td>
            <td style="width:10%">täglich</td>
            <td style="width:10%">1-2 Mal pro Woche</td>
            <td style="width:10%">1-2 Mal pro Monat</td>
            <td style="width:10%">seltener</td>
        </tr>
        <tr>
            <td style="width:60%">{B2F1_SQ001.question}</td>
            <td style="width:10%">{if(B2F1_SQ001=="A1","X","")}</td>
            <td style="width:10%">{if(B2F1_SQ001=='A2',"X","")}</td>
            <td style="width:10%">{if(B2F1_SQ001=='A3',"X","")}</td>
            <td style="width:10%">{if(B2F1_SQ001=='A4',"X","")}</td>
        </tr>
        <tr>
            <td style="width:60%">{B2F1_SQ002.question}</td>
            <td style="width:10%">{if(B2F1_SQ002=="A1","X","")}</td>
            <td style="width:10%">{if(B2F1_SQ002=='A2',"X","")}</td>
            <td style="width:10%">{if(B2F1_SQ002=='A3',"X","")}</td>
            <td style="width:10%">{if(B2F1_SQ002=='A4',"X","")}</td>
        </tr>
        <tr>
            <td style="width:60%">{B2F1_SQ003.question}</td>
            <td style="width:10%">{if(B2F1_SQ003=="A1","X","")}</td>
            <td style="width:10%">{if(B2F1_SQ003=='A2',"X","")}</td>
            <td style="width:10%">{if(B2F1_SQ003=='A3',"X","")}</td>
            <td style="width:10%">{if(B2F1_SQ003=='A4',"X","")}</td>
        </tr>
    </tbody>
</table>

Falls ihr eine Lösung habt, wäre ich euch sehr dankbar!

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 year 11 months ago - 1 year 11 months ago #228664 by Joffm
Replied by Joffm on topic queXML PDF
Hallo, Wiebke,

 {if(Y2_SQ00F1=='N','display:none','')}">

Räusper, räusper. 
Deswegen habe ich
a. gesagt, bei welchen Fragetypen dieses nur funktionieren könnte
b. genau diesen Teil einer Antworttabelle genommen.

Bei einer Frage vom Typ "Mehrfachennung" geht das nicht.
Warum?
Bei einer Mehrfachnennung wird kein "N" gespeichert.
Es wird hier folgendermaßen gespeichert:
"Y": Item wurde gewählt
"": Item wurde nicht gewählt
Genau dies siehst Du in der Abbildung. "Y" oder eben leer.

Du könntest also diese beiden Möglichkeiten benutzen:

a. der gespeicherte Code ist leer {if(Y2_SQ00F1=='','display:none','')}">
b. der gespeicherte Code ist nicht "Y" {if(Y2_SQ00F1!='Y','display:none','')}">

Joffm

Und ansonsten?
Das sieht doch jetzt schon sehr schön aus.

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 1 year 11 months ago by Joffm.

Please Log in to join the conversation.

  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 year 11 months ago #228672 by holch
Replied by holch on topic queXML PDF
Was ich mich bei dieser Darstellung frage ist: Warum das ganze wieder wie eine Matrix darstellen und nicht einfach für jede Unterfrage in der zweiten Spalte dann die Antwort selbst eintragen?

Dass dann sowas da steht:
Fussball: 1-2 Mal pro Woche
Tennis: 1-2 Mal pro Monat

I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 year 11 months ago #228677 by Joffm
Replied by Joffm on topic queXML PDF
Das habe ich ja schon in meinem allerersten Screenshot gezeigt.

Und später noch einmal beide Möglichkeiten untereinander gezeigt.

Ich stelle mir vor,  damit soll an die Matrixdarstellung in der Umfrage erinnert werden.

Joffm
 

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

Please Log in to join the conversation.

  • wiebkebärit
  • wiebkebärit's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
1 year 11 months ago #228691 by wiebkebärit
Replied by wiebkebärit on topic queXML PDF
Vielen Dank! Jetzt hat es super funktioniert, genau das, was ich wollte! Joffm hat recht, es soll an die Umfrage erinnern.

Please Log in to join the conversation.

Moderators: Joffm

Lime-years ahead

Online-surveys for every purse and purpose