Berechnung aus mehreren Auswahlfeldern
Hallo,
Ich möchte gerne eine Berechnung aus mehreren Auswahlfeldern vornehmen. Ich habe drei Auswahlfelder mit jeweils 4 Auswahlmöglichkeiten (in Textform), jede Auswahlmöglichkeit soll verschieden viele Punkte geben. Beispiel: Auswahl 1 : 1 Punkt, Auswahl 2: 2 Punkte usw. Das ganze dann für insgesamt 3 Auswahlfelder. Am Ende soll dann die Gesamtpunktzahl berechnet und in einem Auswahlfeld angezeigt werden.
Danke im Vorraus
11 Antworten
-
Also, wenn ich es richtig verstehe und wenn es wirklich einfache Auswahlfelder sind (und nicht Mehrfachauswahlfelder), dann kann man gleich die numerischen Werte der Auswahloptionen einlesen und einfach addieren. Also, ein Funktionsfeld anlegen und dort folgende Formel einsetzen:
number(AUSWAHL1) + number(AUSWAHL2) + number(AUSWAHL3)
-
So sieht das ganze aus in den Klammern stehen die Punkte, die es für diese Auswahl geben soll. Dann haben ich die drei Auswahlfelder in denen es ähnlich Aussieht wie im geöffnetem. Im Feld Gesamtpunktzhal soll dan logisch die Gesamtpunktzahl stehen
-
Ach so ... Okay, wenn die Punktzahlen immer genau in dieser Form angegeben werden und immer einstellig sind, dann könnte man es so machen:
let Punkte1 := number(substr(text(Auswahl1), index(text(Auswahl1), "(") + 1, 1));
let Punkte2 := number(substr(text(Auswahl2), index(text(Auswahl2), "(") + 1, 1));
let Punkte3 := number(substr(text(Auswahl3), index(text(Auswahl3), "(") + 1, 1));
Punkte1 + Punkte2 + Punkte3Allerdings gehe ich wieder von einem Funktionsfeld aus, in das der obige Code geschrieben wird. Das Ergebnis dem Auswahlfeld namens 'Gesamtpunktzahl' hinzuzufügen, falls das angedacht war, ist leider nicht möglich. Es sei denn, in diesem Feld wären alle möglichen Ergebniswerte als Texteinträge vordefiniert, aber das wird ja kaum Sinn der Sache sein.
-
Doch, da 15 Punkte das maximum ist sind alle möglichen Werte im Auswahlfeld eingetragen.
-
Mir ist zwar überhaupt nicht klar, welchen Sinn es haben könnte, das Ergebnis einer mathematischen Berechnung in einem Auswahlfeld darzustellen, wo es durch eine andere Auswahl ja auch verfälscht werden kann, aber bitte sehr. Allerdings müsste man auch noch wissen, wie die Punktzahlen dort dargestellt werden. Nehmen wir einfach mal an, im "Ergebnisfeld" stünde als Text immer die Punktzahl + " Punkte", also "3 Punkte", "4 Punkte" usw., dann könnte man obige die Berechnung in jedes der drei Auswahlfelder als Trigger "Nach Änderung" übernehmen und das Ergebnis an das Auswahlfeld "Gesamtpunktzahl' adressieren:
let Punkte1 := number(substr(text(Auswahl1), index(text(Auswahl1), "(") + 1, 1));
let Punkte2 := number(substr(text(Auswahl2), index(text(Auswahl2), "(") + 1, 1));
let Punkte3 := number(substr(text(Auswahl3), index(text(Auswahl3), "(") + 1, 1));
Gesamtpunktzahl := text(Punkte1 + Punkte2 + Punkte3) + " Punkte"
Aber wie gesagt: Sehr ungewöhnlich.
-
Danke :)
-
Hallo,
kann mir auch jemand vllt. helfen. Ich habe ähnliches Problem und suche auch sehr lange danach.
Allerdings ist mein Problem evtl. etwas unkomplexer. Folgendes:
Ich habe ein Feld mit dem Preis und einen Auswahlfeld mit dem Steuersatz. Nun möchte ich auch diesen beiden Feldern eine Berechung machen. Sprich: Feld * der Wert eines Auswahlfeldes
Bei der Berechnung steht folgendes Formel: Preis * number(Steuersatz)
Ich habe vieles an der Formel versucht aber der nimmt nicht den Wert 19% sondern die Position 3 deswegen kommt das Ergebnis 300 raus.
Vielen lieben Dank!!!
-
Hallo Israr,
die richtige Formel wäre:
---
Preis * switch Steuersatz do
case 1:
1;
case 2:
1,07
case 3:
1,19
default:
1
end
---
Leo
-
Hallo Leo,
vielen lieben Dank für die schnelle Hilfe. Leider kommen folgende Fehlermeldungen:
Wenn ich die Formel einfüge:
und wenn ich trotzdem auf OK klicke:
Danke & Grüße
-
Hallo Israr,
bei 1,07 und 1,19 musst du 1.07 und 1.19 schreiben. Und ich habe einen Semikolon zu viel:
---
Preis * switch Steuersatz do
case 1:
1
case 2:
1.07
case 3:
1.19
default:
1
end
---
Leo
-
Perfekt, hat funktioniert!
Besten Dank! Ich habe leider keine Programmierkenntnisse, daher bin ich natürlich nicht selbst drauf gekommen.
Content aside
- vor 5 JahrenZuletzt aktiv
- 11Antworten
- 2394Ansichten