Welcome to the LimeSurvey Community Forum

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

Bedingungen zu bestehenden Bedingungen mit einer und-Beziehung hinzufügen ...

  • Asteroid
  • Asteroid's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
6 months 2 days ago #263497 by Asteroid
Bitte helfen Sie uns, Ihnen zu helfen und füllen Sie folgende Felder aus:
Ihre LimeSurvey-Version: [ LimeSurvey Community Edition Version 6.5.1+240320]
Eigener Server oder LimeSurvey-Cloud: vermutlich eigener Server, da firmenintern
Genutzte Designvorlage: ebenfalls firmenintern - ich konnte diese nicht auswählen
==================
[Liebes Forum,

ich habe eine Umfrage erstellt, kann aber keine Bedingung hinzufügen, ohne, dass die bestehende Umfrage nicht mehr funktioniert.

Beispiel: 
G1Q1 Verfügt Ihre Einrichtung über eigene Dienstfahrzeuge? Y/N - bei Y weiter mit s.u.
G1Q2 Bitte Anzahl der Dienstfahrzeuge eintragen: [max. 2 Ziffern]
G1Q3 Verfügt Ihre Einrichtung über Dienstfahrzeuge mit sauberen Antrieben? Y/N - bei Y weiter s.u.
G1Q4 Bitte Anzahl der Dienstfahrzeuge mit sauberen Antrieben eintragen: [Diese Zahl darf nur =< G1Q2 sein]

Leider bekomme ich das im Bedingungsdesigner nicht umgesetzt. Wer kann mir hier helfen. 

Aktuelle Formel bei G1Q4: 
Fragengruppen:   (ID:26540)
Code:  G1Q4 : (Optionale Frage)
Frage:  Bitte Anzahl der Dienstfahrzeuge mit sauberen Antrieben [DFSA] eintragen < max. 2 Ziffern >
Hilfetext:  
Typ:  Zahleneingabe (Type: N)
Pflichtangabe:  Nein
Verschlüsselt:  Nein
Bedingung:  (( G1Q3.NAOK == "Y"))
Gruppenrelevanz:  1
Texteingabeboxbreite:  1
Maximale Zeichen:  2
Minimalwert:  1
Nur ganze Zahlen:  1

Jetzt muss hier noch die Bedingung hinzugefügt werden, dass die Antwort von G1Q4 <= G1Q2 sein kann. 

Das funktioniert nicht, da bei mir immer zwischen den zwei Bedingungen ein oder steht - außerdem bin ich mir bei der Formel auch nicht sicher und würde mich freuen, wenn jemand die Formel dazu angeben könnte. Vielen Dank.

Viele Grüße
Asteroid

 

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
6 months 2 days ago #263510 by Joffm
Hallo,
zunächst das Wichtige:
Du willst und kannst doch diese Bedingung gar nicht hinzufügen.
Das würde ja bedeuten, Du zeigst eine Frage an (oder nicht), je nach dem Ergebnis in dieser Frage.
Du willst doch nur den Wert der Eingabe beschränken.
Den Min.Wert hast Du ja gesetzt (1)
Dann setzt Du auch den Max.Wert, nämlich mit ExpressionScript {G1Q2}, also die Antwort auf die Frage G1Q2.

Jetzt etwas Grundsätzliches:
Du arbeitest also mit diesem "Steinzeit"-Gerät namens "Bedingungs-Designer".

da bei mir immer zwischen den zwei Bedingungen ein oder steht


Wie im Handbuch steht, (hier steht noch "conditions" für diesen Designer und "relevance" für ExpressionScript)
[url] www.limesurvey.org/manual/ExpressionScri...itions_and_Relevance ?[/url]
er kann eben nur simple Bedingungen (für ein einfaches UND müsstest Du schon ein neues Szenario anlegen)

Schmeiß ihn weg. Heute benutzen wir ExpressionScript; flexibler, mächtiger, und auch schneller.
Damit kannst Du dann ganz easy Bedingungen anlegen wie
(Q1a==1 OR (Q1a==4 AND Q1b_SQ001==“Y“)) AND (Q1c>29 AND Q1c<60)

Das ist ein Beispiel aus meinem "Tutorial 4: Gleichungen, Zufall,...", wo ich am Anfang kurz auf die Benutzung von ExpressionScript für Bedingungen eingehe (Kap. 1.2.)
Findest Du hier im deutschen Teil, irgendwo auf den folgenden Seiten (7, 8, 9,...). Einfach gucken.

Joffm

P.S.
Ist dieses Ganze nicht etwas umständlich?
Nur als Idee: Würde nicht auch eine Frage (mehrfach numerisch) genügen?





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

Please Log in to join the conversation.

  • Asteroid
  • Asteroid's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
6 months 2 days ago #263536 by Asteroid
Lieber Joffm,
vielen Dank für Deine Rückmeldung. Ich habe bisher noch nie mit einem Umfragetool gearbeitet und kann das nicht ganz nachvollziehen. Dein Hinweis mit der direkten Frage ist komplett nachvollziehbar, so fing ich ja an, aber dann müsste ich ja die Bedingung einbauen, wenn Antwort=0 dann weiter mit G4 ansonsten weiter mit G1Q2. Und das habe ich ja nicht hinbekommen. Gibt es irgendwo eine Anleitung, wie das mit ExpressionSkript aufgebaut werden kann. Ich wollte die Umfrage eigentlich am Mittwoch versenden ... . Ansonsten passt alles - aber ich habe auch keine Lust ggf. Quatscheingaben zu erhalten. Sorry - aber ich bin blutiger Anfänger und bräuchte eine Schritt für Schritt Anleitung ... . Könntest Du ggf. weiterhin versuchen mir zu helfen, oder eine Empfehlung/Link geben, wo ich nachsuchen kann. Vielen Dank.
Viele Grüße
Asteroid
Attachments:

Please Log in to join the conversation.

  • Asteroid
  • Asteroid's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
6 months 2 days ago #263538 by Asteroid
... wie lautet dann die Formel wenn G1Q4 <= G1Q2 sein darf?
Das habe ich in Deinem Skript unter 1.2 nicht gefunden. Die Eingabe der 1. Antwort ist ja eine Variable ...

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
6 months 2 days ago #263539 by Joffm
Nun ja, ich habe ja eine "mehrfache numerische Eingabe" vorgeschlagen mit den beiden Teilfragen.
Und die zweite wird nur angezeigt (mit Teilfragenrelevanz), wenn der Eintrag in der ersten Teilfrage größer 0 ist.

Ich kann nur rmpfehlen:
Lies das Handbuch; eben über ExpressionScript,
Studiere die Beispielstudien, die ja ebenfalls in diesem Bereich zu finden und herunterzuladen sind.
Hast Du im Tutorial das Kapitel gelesen?
Desweiteren gibt es von unserem Partner Paul Borsdorf viele kurze Youtube Videos, die immer rin bestimmtes Thema beleuchten.

Im Grunde benutzt Du ExpressionScript für Bedingungen wie Du es sprichst ( mit Erinnerung an die Schulzeit "Aussagenlogik")

Z.B. In Q3
Q1==3 and Q2==4
Frage wird nur gezeigt, wenn Frage Q1 mit Code 3 UND Frage Q2 mit Code 4 beantwortet wurde.

Q1>2 and Q2_SQ002!="Y"
Frage wird gezeigt, wenn Frage Q1 mit einen Code größer als 2 (geht nat. nur mit numerischen Codes, die sowieso vorzuziehen sind) UND die Teilfrage SQ002 der Frage Q2 nicht gewählt wurde.

Joffm 

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

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
6 months 2 days ago - 6 months 2 days ago #263540 by Joffm

wie lautet dann die Formel wenn G1Q4 <= G1Q2 sein darf?

Geht es da wieder um den Max.Wert, der ja keine Bedingung ist, sondern eine Einstellung?
Habe ich doch oben geschrieben: {G1Q2}

Wenn Du aber die Lösung mit der "mehrfachen numerischen Eingabe" meinst:
Hier musst Du die Frage validieren, also "Frage-Validierungsgleichung"
Und hier schreibst Du genau das hin, was erfüllt sein muss, damit die Frage WAHR ist.
Also etwa: G1Q4.NAOK <= G1Q2.NAOK
Hier muss .NAOK genommen werden, da sonst ein Fehler angezeigt wird, wenn zwar die erste >Teilfrage, aber nicht die zweite beantwortet ist.
Siehe Handbuch
[url] www.limesurvey.org/manual/ExpressionScri...ion/en#Usage_of_NAOK [/url]
Und im Validierungshinweis die entsprechende Meldung. Diese wird dann rot angezeigt, wenn ein Fehler vorliegt.
Diese Meldung kann man auch mit IFs noch feiner gestalten.

Das habe ich in Deinem Skript unter 1.2 nicht gefunden

Das steht dort auch nicht. In diesem Kapitel geht es ja um einen ganz kurzen Abriss Bedingungen betreffend.
Ich will dort einfach die Angst vor dem Wort "ExpressionScript" nehmen und eben zeigen, dass es nichts anderes ist, als das, was wir im normalen Sprachgebrauch benutzen.
Wenn die Sonne scheint und das Auto mindestens drei Viertel vollgetankt ist, fahren wir zur Oma.
Könnte in LimeSurvey so aussehen:
Q1: Wie ist die Wetterlage (Einfachnennung)
1: Strahlender Sonnenschein
2: Wolkig
3: Bedeckt
4: Eine graue Suppe

Q2: Wie ist der Füllstand des Tanks in Prozent (numerische Frage)

Dann fahren wir also zur Oma, wenn
Q1==1 AND Q2>= 75
Genau das steht dann in der Bedingung für die Frage.
Ein simpler logischer Term, der WAHR oder FALSCH ist.
Ist er WAHR, wird die Frage angezeigt, ist er FALSCH, eben nicht.

Joffm



 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 6 months 2 days ago by Joffm.
The following user(s) said Thank You: Asteroid

Please Log in to join the conversation.

  • Asteroid
  • Asteroid's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
6 months 2 days ago #263542 by Asteroid
Vielen Dank aber der Maximalwert ist hier keine Einstellung, den habe ich ja bereits eingestellt. ich habe ja geschrieben, dass ich noch nicht damit gearbeitet habe. Ich versuche gerade nur dieses eine Problem zu lösen, ohne 5 neue erhalten zu müssen. Daher nochmal meine Frage. Gibt es eine Lösung für mein bisher einziges Problem dass die Frage G1Q4 nur gezeigt wird, wenn G1Q3 mit Ja beantwortet wird und dann die Eingabe aus G1Q4 <= G1Q2 sein kann. Diese Antwort kann ich mit keiner Zahl belegen, da ja jede Einrichtung unterschiedliche Zahlen eingeben kann, die eine Einrichtung verfügt über 5, die andere über 3 .... Fahrzeuge. Der Anteil der Fahrzeuge mit sauberen Antrieben darf dann bei der einen Einrichtung max. 5 und bei der anderen max. 3 Fahrzeuge betragen. Das kann ich ja nicht einstellen ... Die Antwort ist die Obergrenze und zwar individuell. Gibt es dafür eine Lösung?

p.S.: Ich habe jedes Mal Schwierigkeiten eine Antwort zu senden. Das letzte Mal Stunden dafür gebraucht. Jedes Mal eine Fehlermeldung. Woran kann das liegen? Jedenfalls nicht daran, dass ich die 2-4 Zahlen nicht berechnen kann ... . Jetzt bin ich auch schon ewig damit beschäftigt, diese Antwort zu senden ..... Das ist ja furchtbar. Sorry aber Sie können da nichts dafür - aber ich verzweifele hier langsam.

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
6 months 2 days ago - 6 months 2 days ago #263543 by Joffm

Die Antwort ist die Obergrenze und zwar individuell. Gibt es dafür eine Lösung?


Daher benutzt Du doch ExpressionScript.
Indem Du genau die Antwort von G1Q2 - egal wie groß sie ist - als Obergrenze von G1Q4 einträgst.
Schreib es doch einfach einmal in Max.Wert hinein.
Ist jetzt hier ein anderes Beispiel; daher der Code Q3_1.
Wie Du dort siehst, sind die geschweiften Klammern bereits angedeutet, dass Du sie selbst nicht mehr eintragen musst.


Und dann hast Du alles, was Du brauchst


Tja, Pech gehabt; die Zahl ist wohl etwas zu groß
 

P.S.
Dies ist auch eine wichtige Übersicht; damit Du siehst, welche Möglichkeiten es gibt auf Eigenschaften einer Variablen zuzugreifen.
[url] www.limesurvey.org/manual/ExpressionScri...#Access_to_variables [/url]

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 6 months 2 days ago by Joffm.
The following user(s) said Thank You: Asteroid

Please Log in to join the conversation.

Moderators: holchJoffmtpartner

Lime-years ahead

Online-surveys for every purse and purpose