Berechnungen im Formular mit if...then...

8 Beiträge • 3 Abonnenten • 301 Ansichten
Daniel Ladenberger
 veröffentlicht letztes Jahr

Hallo zusammen

ich versuch gerade mich mit dem neuen Formulargenerator anzufreunden.

In der alten Version hatte ich etwas programmiert, damit dem Mitglied bei Ausfüllen des Formulars angezeigt wird, wie hoch sein Beitrag sein wird.

Dafür hatte ich im alten Formular ein Textfeld vom Typ "Info Text" ("Ihr Beitrag beim HC Maulburg") eingefügt und auf dem Textinhalt folgendes programmiert:


Das hat mich damals schon etwas Mühe gekostet.

Beim Neuen Formular bekomme ich das jetzt gar nicht hin...


Habt ihr mir einen Tipp:

  • was ich verwenden muss (ich probiere die ganze Zeit mit "Ausdruck (schreibgeschützt)")
  • wie dann die Syntax für so eine if...then...else if.... Anweisung wäre.


Oder falls ich komplett falsch liege: gerne ein Tipp wie ich das im neuen Formular hinbekommen könnte.


Danke, Daniel

Oliver
 veröffentlicht letztes Jahr

Hallo Daniel,
bei mir schaut das in einem Ausdruck (schreibgeschützt) so aus. Statt age() kann man auch Alter() verwenden.


(iif(({Abteilung} contains 'Mitgliedschaft') and (age({Geburtsdatum}) >= 18) and ({Student} != true),60,0)
+ iif(({Abteilung} contains 'Mitgliedschaft') and (age({Geburtsdatum}) >= 18) and ({Student} == true),50,0)
+ iif(({Abteilung} contains 'Mitgliedschaft') and (age({Geburtsdatum}) >= 14) and (age({Geburtsdatum}) < 18),50,0)
+ iif(({Abteilung} contains 'Mitgliedschaft') and (age({Geburtsdatum}) >= 7) and (age({Geburtsdatum}) < 14),44,0)
+ iif(({Abteilung} contains 'Mitgliedschaft') and (age({Geburtsdatum}) >= 1) and (age({Geburtsdatum}) < 7),29,0)
+ iif(({Abteilung} contains '10er-Block'),110,0)
+ iif(({Abteilung} contains 'Schweinehundpass') and (age({Geburtsdatum}) < 18),130,0)
+ iif(({Abteilung} contains 'Schweinehundpass') and (age({Geburtsdatum}) >= 18),170,0))* iif(({Familienrabatt} == true),0.8,1)


Weiter hab ich Währung "EUR" und Wertanzeigestil "Währung" eingestellt.

Wie du siehst, hab ich für Titel und Beschreibung die Ausdrücke anderer Fragen eingefügt. In dem Fall andere, unsichtbare, Ausdruck (schreibgeschützt) Felder, die folgenden Inhalt haben:

Dauer und Beschreibung:

iif(({Abteilung} = 'Mitgliedschaft'), 'Kosten der Mitgliedschaft pro Monat', '')
+ iif(({Abteilung} contains 'Schweinehund'), 'Kosten der Mitgliedschaft für 3 Monate', '')
+ iif(({Abteilung} contains '10er-Block'), 'Kosten für 10 Trainings', '')
iif(({Abteilung} contains 'Mitgliedschaft') and (age({Geburtsdatum}) >= 7), 'Die Mitgliedschaft dauert 6 Monate und wird dann, ohne Kündigung, automatisch verlängert', '')
+ iif(({Abteilung} contains 'Mitgliedschaft') and (age({Geburtsdatum}) >= 1) and (age({Geburtsdatum}) < 7), 'Die Mitgliedschaft dauert 1 Monate und wird dann, ohne Kündigung, automatisch verlängert. Ab dem 7. Geburtstag verlängert sich die Mitgliedsdauer auf 6 Monate.', '')
+ iif(({Abteilung} contains 'Schweinehund'), 'Die Bedingungen für den Schweinehundpass findest du auf https://www.shaolinsteyr.at/news/schweinehund-pass', '')
+ iif(({Abteilung} contains '10er-Block'), 'Der 10er-Block gilt für Qi Gong und Shaolin Fit', '')

Das Ergebnis schaut dann z.B. so aus:

Daniel Ladenberger
 veröffentlicht letztes Jahr

Perfekt!

VIELEN DANK!

Auf die Syntax wäre ich glaube ich nicht so einfach gekommen.

Daher die Frage: gibt es irgendwo eine Übersicht über die verwendbaren Befehle? Bzw. wie heisst diese Sprache (ich kenne mich nur in C aus...).

Viele Grüße, Daniel

Oliver
 veröffentlicht letztes Jahr

Hier in der Dokumentation unten bei Ausdruck (schreibgeschützt) findest du die Sachen zur Syntax, die du nicht im "Zauberstab" z.B. im Logic-Tab einer Frage findest.

https://community.campai.com/documentation/vereinssoftware/digitale-services/formulare-antrage/andere-blocke

Daniel Ladenberger
 veröffentlicht vor 12 Monaten

Hallo zusammen

ich habe mein Formular fast fertig. ABER an einem Punkt hänge ich noch:

in meinem ersten Screenshot ganz oben habe ich eine Funktion


(Geburtstag > Datum(1,11,Jahr - 8))


Damit prüfe ich, ob das Mitglied am 01.11. des Jahres älter als 8 Jahre ist. Hintergrund: Unser Jahresbeitrag ist altersabhängig, Stichtag 01.11.

Ich probier jetzt schon den ganzen Abend rum, wie ich das im neuen Formulardesigner umsetzen kann. Ich komm aber nicht drauf...!

Hat mir dazu noch jemand einen Tipp?


Danke, Daniel


Oliver
 veröffentlicht vor 12 Monaten

Hallo Daniel,

ja, das geht, aber nicht mehr so einfach. Ich werd aber ein Ticket erstellen, dass wir da wieder eine einfachere Möglichkeit bekommen.
Kannst du hier mal bisschen testen, ob die Ergebnisse immer richtig sind? https://form.campai.com/yLRujHqnfK-
Hier ist der Code dazu:

iif(
(iif(
month({Geburtstag})<11 and month(Heute())<11,
Alter({Geburtstag})+1,
Alter({Geburtstag}))) <8,
"unter 8 Jahre am 1.11.",
"8 Jahre am 1.11."
)
Daniel Ladenberger
 veröffentlicht vor 12 Monaten

Hallo Oliver


Danke mal wieder für die Hilfe!

Da ich auch noch prüfen muss, wer zwischen 8 und 21 ist oder über 21 habe ich mir eine Berechnungsfunktion "Alter 1_11" angelegt:


Und damit eine Beitragsberechnung erstellt:

Funktioniert TipTop!


STC RW Admin
 veröffentlicht vor 5 Monaten

Hallo Zusammen,

meine Frage passt hoffentlich in den den Chat mit rein.

Ich habe einen Mitgleiderantrag der für unterschiedliche Konstellationen ist. Es soll sich über den gleichen Antrag entweder ein neues Mitglied direkt anmelden, oder ein Antrag für eine anderer Person (z.B. Eltern für Ihr Kind) gestellt werden.

Nun habe ich zwei Emailadressen. Einmal die vom Kontakt (Elternteil) und die des Mitglieds.

Am Ende soll die Bestätigungsmail rausgehen, aber dort kann ich ja nur ein Emailfeld anwählen (Entweder vom Kontakt oder vom Mitglied). Damit ich ein Feld habe dachte ich an eine Funktionsfeld in das entweder die Email des Kontakts eingetragen wird, oder wenn die nicht vorhanden ist dann die des Mitglieds. Dazu habe ich folgende Formel verwendet.

IIF({Kontakt_Email} notempty,{Kontakt_Email},{E-Mail Adresse})

Aber vermutlich stimmt das mit dem notempty nicht.

  1. Kann mir jemand helfen wie die Formel aussehen müsste?
  2. Gibt es irgendwo auch eine Anleitung über alle Funktionen und die Nutzung der Ausdruck und Logik-Felder in Formularen?


Schon mal danke für eure Hilfe

Thomas

Oliver
 veröffentlicht vor 5 Monaten

Hallo Thomas,
deine Formel sollte klappen, wenn du statt IIF, iif schreibst.
Noch nicht alles, aber viel zu den Formeln findest du hier, wenn du runterscrollst:

https://community.campai.com/documentation/vereinssoftware/digitale-services/formulare-antrage/andere-blocke


lg

Oliver

Chatbot
Bot

Hallo! Wie kann ich dir heute helfen?