Zuweisungen an Zahlenwerte mit Einheit

Zahlenwerte mit Einheit können in Formularen können auf unterschiedlichen Wegen zur Laufzeit zugewiesen werden:

  • Das Zielfeld ist als Berechnungsfeld definiert und die Berechnung liefert als Ergebnis einen Zahlenwert mit Einheit.

  • Die Zuweisung eines Werts erfolgt per Wert setzen Aktion zwischen zwei Elementen für numerische Attribute, die Einheiten verwenden.

In beiden Fällen stehen die Elemente, die den Wert enthalten, im Fokus, während die zugehörigen Einheiten indirekt einbezogen werden, ohne dass die betreffenden Elemente direkt angesprochen werden müssen.

Wie die Zuweisung einer Kombination aus Wert und Einheit auf ein Ziel wirkt, bestimmen die folgenden Prinzipien:

  • Wenn für das Ziel-Element noch kein Einheit definiert wurde, werden Einheit und Wert aus der Zuweisung übernommen.

  • Wenn für das Ziel-Element bereits eine Einheit festgelegt ist, bleibt diese auf jeden Fall erhalten.

  • Wenn die Einheitenumrechnung von der Einheit aus der Zuweisung in die Einheit des Zielelements möglich ist, wir der zugewiesene Wert umgerechnet.

  • Wenn die Einheitenumrechnung von der Einheit aus der Zuweisung in die Einheit des Zielelements nicht möglich ist, wir der zugewiesene Wert direkt übernommen.

images/confluence.lobster.de_8090/s/de_DE/7801/bf276423ef6163f95ea68a1c8d44a56e873f9543/_/images/icons/emoticons/warning.svg WICHTIG images/confluence.lobster.de_8090/s/de_DE/7801/bf276423ef6163f95ea68a1c8d44a56e873f9543/_/images/icons/emoticons/warning.svg Einheiten werden innerhalb einer Erfassungsmaske nur berücksichtigt, soweit die zugehörigen Elemente im Formulardesign enthalten sind. Sie müssen nicht sichtbar sein aber unbedingt als Element vorhanden sein, sonst werden sie bei Zuweisungen und Umrechnungen mit den hier beschriebenen Methoden komplett ignoriert.

Die folgenden Beispiele veranschaulichen die Zusammenhänge:

Zuweisung


Ziel vor Zuweisung


Ziel nach Zuweisung

Kommentar

Wert

Einheit

Einheit

=

Wert

Einheit


1,25

m

(keine)

=

1,25

m

Zuweisung von Wert und Einheit

1,25

m

cm

=

125

cm

Zuweisung mit Umrechnung in Zieleinheit

1,25

m

=

1,25

nur Zuweisung des Werts ohne Umrechnung

►HINWEIS◄ Die Umrechnung in die Zieleinheit im zweiten Beispiel findet unabhängig von der Einstellung für die Option Wert konvertieren im Auswahlfeld/Combobox-Element für die Zieleinheit statt, aber nur wenn dieses Element im Formulardesign enthalten ist (s. Warnung oben).

Anwendungsbeispiel mit "Wert setzen" Aktion:

Im Beispiel soll eine Angabe für das Ladevolumen mit frei wählbarer Volumeneinheit per Knopfdruck in eine bestimmte andere Volumeneinheit umgerechnet werden.

images/download/attachments/34217110/image2019-4-11_17-56-14-version-1-modificationdate-1554998177000-api-v2.png

Beim Klick auf den Button Umrechnen wird eine Element validieren Verhaltensweise für das Wert-Element (#231) für das Ladevolumen ausgeführt, deren Rückgabewert (als $input) von einer Wert setzen Aktion in das Wert-Element (#234) für Ladevolumen (umgerechnet) übertragen wird. Solange nur "umrechenbare" Kombinationen von Einheiten ausgewählt werden, erscheint nach dem Kopfdruck immer der passende Wert für die Zieleinheit. Anstelle des Knopfdrucks könnte auch eine Änderung der Ziel-Einheit das Verhalten auslösen.

images/download/attachments/34217110/image2019-4-11_18-8-31-version-1-modificationdate-1554998914000-api-v2.png

Anwendungsbeispiel mit Zuweisung per Berechnung:

Für dasselbe Szenario kann auch das "Ladevolumen (umgerechnet)" als Berechnungsfeld definiert werden.

Die Berechnung ist hier eine reine Zuordnung des Felds #231 ("Ladevolumen"). Mit der Einstellung Änderungstypen "Alle", wird die Berechnung immer dann aktualisiert, wenn sich der Wert dieses Felds oder die zugehörige Einheit ändert.

images/download/attachments/34217110/image2019-4-11_18-14-22-version-1-modificationdate-1554999265000-api-v2.png

Anwendungsbeispiel mit Berechnung und Umrechnung:

Für eine Sendung soll aus den Angaben für Länge und Breite (mit wählbaren Einheiten) die Zielgröße Lademeter (mit der gängigen Definition 1 ldm = Länge [in m] x Breite [in m] / 2,4) berechnet werden:

images/download/attachments/34217110/image2019-4-12_10-24-0-version-1-modificationdate-1555057442000-api-v2.png

Die Einheit ldm wurde zu diesem Zweck als Längeneinheit definiert, die mit einem Umrechnungsfaktor von 2,4 in die Basiseinheit m umrechenbar (s. Einheitenumrechnung) sein soll. Dies ermöglicht die folgende Konfiguration im Formular:

images/download/attachments/34217110/image2019-4-12_10-34-10-version-1-modificationdate-1555058052000-api-v2.png

  • Die Werte für Länge und Breite werden innerhalb der CALC Funktion per Feldnummer (187, 190) in geschweiften Klammern angesprochen.

  • Die Funktion convert (s. Berechne Wert) wird einerseits verwendet, um beide Faktoren in Meter (m) umzurechnen.

  • Andererseits wird mit convert das Produkt aus beiden Faktoren insgesamt in Lademeter (ldm) konvertiert. Der Umrechnungsfaktor wird dabei aus den Stammdaten für die Einheitenumrechnung gezogen.

►HINWEIS◄ Wie in den Screenshots zu sehen ist, enthält das Formular ein Element für die Anzeige der Einheit für den Wert Lademeter. Die Berechnung liefert per Definition die passende Einheit ldm, die auch im Beispiel oben zu sehen ist. Allerdings ist zu bedenken, dass bei der Zuweisung des Berechnungsergebnisses die Einheit ldm nur in das Zielelement übernommen wird, wenn dieses zuvor leer ist. Enthält eine Sendung bereits eine Angabe für die Einheit der Lademeter, weil diese bisher in der Einheit m (Meter) behandelt wurde, werden die von der Berechnung ermittelten ldm bei der Zuweisung in die Zieleinheit m umgerechnet, was den Effekt der Einheitenumrechnung mit dem Faktor 2.4 wieder neutralisieren würde. Letztendlich zeigt das Formular dann anstelle der 1,50 ldm einen Wert von 3,6 m an. Das ist in Verbindung mit der Beschriftung Lademeter irreführend, auch wenn beim Wechseln der Einheit von m auf ldm wieder 1,50 ldm angezeigt werden, sofern die Option Wert konvertieren für das Auswahlfeld/Combobox aktiv ist.

Falls ausgeschlossen werden kann, dass das Datenobjekt bereits Angaben für Lademeter in anderen Einheiten als ldm enthält, funktioniert auch folgende Konfiguration:

images/download/attachments/34217110/image2019-4-12_11-7-41-version-1-modificationdate-1555060063000-api-v2.png

  • Hier gibt der Berechnungsausdruck immer die Einheit m zurück, auch wenn das für ein Produkt m x m formal nicht korrekt ist.

  • Bei der Zuweisung in das Lademeter Feld werden die Meter automatisch in die ggf. per Standardwert vorbelegte Einheit ldm umgerechnet.