Formeln bei Parametern hinterlegen


Die Labordatenbank bietet ein Formelsystem zur Berechnung von Parametern.
1. Formelsystem: Vektorschreibweise

Beispiel: A = B + C und D = A * 2

Um diese beiden Formeln in der Labordatenbank abzubilden, tragen Sie bei Parameter A die Formel v['B']+v['C'] ein (die Vektorschreibweise v['B'] steht für den Parameter B). Das berechnete Ergebnis einer Formel (in diesem Fall Parameter A) kann auch selbst wieder in einer Formel weiterverwendet werden (z.B. in der Formel D = v['A']*2).

In der nachfolgenden Abb. sehen Sie, wie aus den bei B und C eingetragenen Werten (8 und 4) die Werte für A und D (12 und 24) automatisch berechnet werden.





2. Formelsystem: Matrixschreibweise

Bei einem Parameter können bis zu 10 Spalten hinterlegt werden. Die Matrixschreibweise beginnt bei 0 zu zählen somit ergibt das die Spalten 0 bis Spalte 9. Mit der Matrixschreibweise können Sie die Werte von allen Spalten in Ihren Formeln verwenden.

In der nächsten Abb. sehen Sie den Parameter TS mit vier Spalten (Ergebnis, Schale, Einwaage, Auswaage).
Schale, Einwaage und Auswaage werden eingetragen und das Ergebnis wird mit folgender Formel berechnet: ((Auswaage - Schale) / (Einwaage - Schale)) * 100




Wenn Sie in einer Formel den Wert der Spalte 0 (Ergebnis) verwenden möchten, so können Sie die Vektorschreibweise v['TS'] oder die Matrixschreibweise m['TS']['0'] verwenden (das Ergebnis ist das Gleiche).

Wenn Sie den Wert der Spalten 1, 2,... (Schale, Einwaage,...) verwenden möchten, so ist die Matrixschreibweise zu verwenden (m['TS']['1'] für Schale, m['TS']['2'] für Einwaage,...).

Beispiel: Ergebnis = ((Auswaage - Schale) / (Einwaage - Schale)) * 100

In diesem Bespiel steht das Ergebnis in der 0. Spalte, Schale in der 1. Spalte, Einwaage in der 2. Spalte und Auswaage in der 3. Spalte.

Somit ergibt sich folgende Schreibweise für diese Formel: TS = ((m['TS']['3'] - m['TS']['1']) / (m['TS']['2'] - m['TS']['1'])) * 100


3. Formel anlegen

Formeln werden in der Maske Parameter bearbeiten angelegt.



In der Abb. oben steht die Formel 100 - m['TS']['1'], d.h. 100 minus TS-Wert der 1. Spalte.

Wenn wir bei diesem Beispiel in der Probendetailansicht in der Spalte Eingabe den Wert 12 eintragen, so erhalten wir automatisch in der Spalte Report das Ergebnis 88 (siehe Abb. unten).





4. Verfügbare Funktionen in Parameterformeln


FunktionBezeichnungBeispiel
absAbsolutbetragabs(-2) = 2
mittelwertMittelwertmittelwert(3, 3, 6) = 4
medianMedianmedian(3, 3, 6) = 3
minMinimalwert bestimmenmin(1, 3, 5, 6, 7) = 1
maxMaximalwert bestimmenmax(1, 3, 5, 6, 7) = 7
summesumme(Zahl 1, Zahl 2,...) Addiert die zugehörigen Argumentesumme(1, 3, 5, 6, 7) = 22
produktprodukt(Zahl 1, Zahl 2,...) Multipliziert die zugehörigen Argumenteprodukt(1, 3, 5, 6, 7) = 630
potenzpotenz(Basis, Exponent) Potenzfunktionpotenz(2, 5) = 32
sqrtQuadratwurzelsqrt(9) = 3
expExponentialfunktionexp(5.7) = 298.87
logLogarithmuslog(12) = 1.079
log10Logarithmus zur Basis 10log10(100) = 2
wennwenn(Bedingung, dann, sonst)
Wenn die Bedingung TRUE ist, wird der dann-Teil zurückgegeben. Wenn nicht, der sonst-Teil.
wenn(2 > 3, 1, 2) = 2
wenn(5 > 3 && 9 < 12, 'passed', 'failed') = passed
ifselectedifselected(Parameterabkürzung, dann, sonst)
Wenn der Parameter mit dieser Parameterabkürzung bei der Probe ausgewählt ist, wird der dann-Teil zurückgegeben. Wenn nicht, der sonst-Teil.
ifselected('pH', v['pH']*100, 'pH-Wert fehlt')
linkslinks(Text, Anzahl Zeichen) Zeichen von links abschneidenlinks('123-456', 3) = 123
rechtsrechts(Text, Anzahl Zeichen) Zeichen von rechts abschneiden rechts('123-456', 3) = 456
wechselnwechseln(Text, Alter Text, Neuer Text) Ersetzt alten Text durch neuen Text in einer Zeichenfolgewechseln(123456, 3, '-') = 12-456
laenge laenge(Text) berechnet wieviele Zeichen im Text vorkommen laenge('+++') = 3
sinSinus des Winkelssin(60) = -0.3048...
cosKosinus des Winkelscos(3.1415) = -1
tanTangens des Winkelstan(4) = 1.16
rundenrunden(Zahl, Anzahl der Stellen)
Rundet einen Fließkommawert
runden(3.4) = 3
runden(1234.567, 2) = 1234.57
runden(1234.567, -2) = 1200
aufrundenaufrunden(Zahl, Anzahl der Stellen)
Rundet einen Fließkommawert auf
aufrunden(3.4) = 4
aufrunden(1234.567, 2) = 1234.57
aufrunden(1234.567, -2) = 1300
abrundenabrunden(Zahl, Anzahl der Stellen)
Rundet einen Fließkommawert ab
abrunden(3.4) = 3
abrunden(1234.567, 2) = 1234.56
abrunden(1234.567, -2) = 1200
fmodRest einer Fließkommadivisionfmod(5.7, 1.3) = 0.5 weil 4 * 1.3 + 0.5 = 5.7
rand(min, max)Erzeugt eine zufällige Zahlrand(5, 15) = 11



5. Operatoren für die wenn-Funktion

Beispiel: Warnung bei einem pH-Wert kleiner 7 oder größer 13:
wenn(v['pH'] < 7 || v['pH'] > 13, 'ph-Wert nicht in Ordnung', 'pH-Wert in Ordnung')

Hier wurden zwei Vergleichsoperatoren (kleiner 7, größer 13) miteinander oder-verknüpft (|| ist der logische Operator Oder).


Vergleichsoperatoren

BeispielNameErgebnis
A == BGleichGibt TRUE zurück, wenn A gleich B ist.
A != BUngleichGibt TRUE zurück, wenn A nicht gleich B ist.
A < BKleiner AlsGibt TRUE zurück, wenn A kleiner als B ist.
A > BGrößer AlsGibt TRUE zurück, wenn A größer als B ist.
A <= BKleiner GleichGibt TRUE zurück, wenn A kleiner oder gleich B ist.
A >= BGrößer GleichGibt TRUE zurück, wenn A größer oder gleich B ist.


Logische Operatoren

BeispielNameErgebnis
A && BUndGibt TRUE zurück, TRUE wenn sowohl A als auch B TRUE ist.
A || BOderGibt TRUE zurück, TRUE wenn A oder B TRUE ist.
!ANichtGibt TRUE zurück, wenn A nicht TRUE ist.


Beispiel: Verschachtelung von zwei wenn-Funktionen:
wenn(v['pH'] < 7, 'ph-Wert zu niedrig', wenn(v['pH'] > 13, 'pH-Wert zu hoch', 'pH-Wert in Ordnung'))

Hier sind zwei wenn-Funktionen ineinander verschachtelt. Ist der pH-Wert kleiner 7, so wird 'pH-Wert zu niedrig' ausgegeben. Ist der pH-Wert größer oder gleich 7 so greift die zweite wenn-Funktion und prüft, ob der pH-Wert größer 13 ist. Wenn ja, wird 'pH-Wert zu hoch' ausgegeben, wenn nicht, wird 'pH-Wert in Ordnung'.



In dieser Form können beliebig viele wenn-Funktionen ineinander verschachtelt werden.

Beispiel: Verschachtelung von drei qualitativen Abfragen:
wenn(v['Farbe'] == 'rot', 'Die Farbe ist rot.', wenn(v['Farbe'] == 'gelb', 'Die Farbe ist gelb.',
wenn(v['Farbe'] == 'orange', 'Die Farbe ist orange.', 'Die Farbe ist undefiniert.')))




Allgemeines

Mitarbeiter

Kunden

Kundenzone (optional)

Aufträge

Angebote

Proben

Parameter