Maximale Abweichung von einem Referenzwert ausgeben

Die Möglichkeiten und Tücken von Formularen
TimSch
Beiträge: 15
Registriert: 07.08.2017, 13:36

Maximale Abweichung von einem Referenzwert ausgeben

Beitrag von TimSch » 17.08.2017, 11:39

Hallo,

stehe leider derzeit auf dem Schlauch.

Ich habe einen Referenzwert und drei Messwerte.

Im Prinzip will ich mir jetzt automatisch den Messwert mit der größten Abweichung vom Referenzwert ausgeben lassen.
Hört sich einfach an aber irgendwie finde ich keinen Ansatz...

Hat jemand eine Idee wie man das umsetzt?

Ich danke euch.

BAlheit
Beiträge: 842
Registriert: 16.08.2013, 12:22

Maximale Abweichung von einem Referenzwert ausgeben

Beitrag von BAlheit » 17.08.2017, 12:27

Möglich ist es so:

Code: Alles auswählen

Math.max(Math.abs(wert1-referenzwert),
Math.abs(wert2-referenzwert),
Math.abs(wert3-referenzwert));
Bernd Alheit

TimSch
Beiträge: 15
Registriert: 07.08.2017, 13:36

Maximale Abweichung von einem Referenzwert ausgeben

Beitrag von TimSch » 17.08.2017, 12:49

Hm, das gibt mir aber nur die maximale Abweichung aus.

Müsste es so haben, dass er mir den tatsächlichen Messwert ausgibt, der die größte Abweichung hat.

BAlheit
Beiträge: 842
Registriert: 16.08.2013, 12:22

Maximale Abweichung von einem Referenzwert ausgeben

Beitrag von BAlheit » 17.08.2017, 13:23

Die einzelnen Werte mit (referenzwert + abweichung) und (referenzwert - abweichung) auf Gleichheit prüfen.Wenn es zutrifft, ist der Wert gefunden.

Übrigens der Titel dieser Diskussion besagt etwas anders.

TimSch
Beiträge: 15
Registriert: 07.08.2017, 13:36

Maximale Abweichung von einem Referenzwert ausgeben

Beitrag von TimSch » 17.08.2017, 13:59

Das übersteigt leider meine Fähigkeiten.

Mein Ansatz wäre folgender. Leider scheint da aber etwas nicht zu stimmen.
var WertA = this.getField("Abweichung");
var WertB = this.getField("Slope1");
var WertC = this.getField("Slope2");
var WertD = this.getField("Slope3");
var WertE = this.getField("Referenz");

var Plus = WertE.value + WertA.value;
var Minus = WertE.value - WertA.value;

if (Plus.value == WertB.value) {event.value = Plus.value }
if (Minus.value == WertB.value) {event.value = Minus.value }

if (Plus.value == WertC.value) {event.value = Plus.value }
if (Minus.value == WertC.value) {event.value = Minus.value }

if (Plus.value == WertD.value) {event.value = Plus.value }
if (Minus.value == WertD.value) {event.value = Minus.value }

TimSch
Beiträge: 15
Registriert: 07.08.2017, 13:36

Maximale Abweichung von einem Referenzwert ausgeben

Beitrag von TimSch » 17.08.2017, 16:48

Ich habe meinen Ansatz überarbeitet. Es funktioniert leider nur wenn Messwert 3 (Slope3) die größte Abweichung hat.
Könnte es sein, dass durch die ganzen if Schleifen die Ausgabe bzw. Werte von Messwert 1 (Slope1) und Messwert 2 (Slope 2) überschrieben werden?
var WertB = this.getField("Slope1");
var WertC = this.getField("Slope2");
var WertD = this.getField("Slope3");
var WertA = this.getField("Abweichung");
var WertE = this.getField("Referenz");
var WertF = this.getField("Plus1");
var WertG = this.getField("Minus1");

if (WertF.value = WertB.value) {event.value = WertF.value};
if (WertG.value = WertB.value) {event.value = WertG.value };

if (WertF.value = WertC.value) {event.value = WertF.value};
if (WertG.value = WertC.value) {event.value = WertG.value };

if (WertF.value = WertD.value) {event.value = WertF.value};
if (WertG.value = WertD.value) {event.value = WertG.value };

BAlheit
Beiträge: 842
Registriert: 16.08.2013, 12:22

Maximale Abweichung von einem Referenzwert ausgeben

Beitrag von BAlheit » 18.08.2017, 10:27

So müsste es gehen:

Code: Alles auswählen

var WertA = this.getField("Abweichung");
var WertB = this.getField("Slope1");
var WertC = this.getField("Slope2");
var WertD = this.getField("Slope3");
var WertE = this.getField("Referenz");

var Plus = WertE.value + WertA.value;
var Minus = WertE.value - WertA.value;

if (Plus == WertB.value || Minus == WertB.value) event.value = WertB.value;
if (Plus == WertC.value || Minus == WertC.value) event.value = WertC.value;
if (Plus == WertD.value || Minus == WertD.value) event.value = WertD.value;

TimSch
Beiträge: 15
Registriert: 07.08.2017, 13:36

Maximale Abweichung von einem Referenzwert ausgeben

Beitrag von TimSch » 18.08.2017, 10:40

Super, das geht.

Allerdings habe ich die Vermutung, dass es Probleme mit der zeitlichen Abfrage der einzelnen Felder gibt (siehe Anhang). Wenn ich neue Messwerte eingebe, muss ich diese manchmal doppelt eingeben oder Nachkommestellen ändern, damit er die Änderungen übernimmt und sie in der Ausgabe anzeigt.

Kann ich die Berechnung evtl. zeitlich verzögern?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

BAlheit
Beiträge: 842
Registriert: 16.08.2013, 12:22

Maximale Abweichung von einem Referenzwert ausgeben

Beitrag von BAlheit » 18.08.2017, 11:13

In der Feldberechnungsreihenfolge muss das Feld Ausgabe an das Ende.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

TimSch
Beiträge: 15
Registriert: 07.08.2017, 13:36

Maximale Abweichung von einem Referenzwert ausgeben

Beitrag von TimSch » 18.08.2017, 12:44

Wo und wie hattest du die Feldrechnungsreihenfolge verändert?

Habe nämlich schon wieder das Problem, wenn ich die %Differenz von Ausgabe-Wert und dem Mittelwert der Messungen berechnen möchte, er hinterher hinkt.

Ich muss wieder die Messwerte doppelt eingeben damit er mir die richtige Differenz anzeigt bzw. er sich aktualisiert :/
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten