Zeilenbezogene Prüfung (Hilfe benötigt)

Hey ihr Ninox-Profis.
Ich bin leider immernoch echt ein Laie was Ninox angeht. Ich versuche kurz zu erklären worum es geht und vielleicht kann mir ja jemand weiterhelfen! :')
Oben im Bild seht ihr bei "Messtyp" einen spezifischen Messtyp eingetragen, welcher mit den Grenzmaßen daneben verschiedene Toleranzen bilden. Das funktioniert alles schön und gut.
In der Untertabelle "Alle Messpunkte" wird in der Spalte "OK?" berechnet, ob das Teil in der Toleranz liegt. Hierzu benutze ich den Code:
if 'Prüfbericht-Assistent'.'Kundenspezifische Toleranz' = 0 and
'Prüfbericht-Assistent'.Messtyp != 4 then
Messwert >= 'Prüfbericht-Assistent'.Minimum and
Messwert <= 'Prüfbericht-Assistent'.Maximum
else
if 'Prüfbericht-Assistent'.'Kundenspezifische Toleranz' = 0 and
'Prüfbericht-Assistent'.Messtyp = 4 then
Messwert >= 'Prüfbericht-Assistent'.'Minimum (Winkel)' and
Messwert <= 'Prüfbericht-Assistent'.'Maximum (Winkel)'
else
if 'Prüfbericht-Assistent'.'Kundenspezifische Toleranz' = 1 and
'Prüfbericht-Assistent'.Messtyp != 4 then
Messwert >= 'Prüfbericht-Assistent'.'Minimum (kundenspezifisch)' and
Messwert <= 'Prüfbericht-Assistent'.'Maximum (kundenspezifisch)'
else
if 'Prüfbericht-Assistent'.'Kundenspezifische Toleranz' = 1 and
'Prüfbericht-Assistent'.Messtyp = 4 then
Messwert >= 'Prüfbericht-Assistent'.'Winkel-Min. (kundenspezifisch)' and
Messwert <= 'Prüfbericht-Assistent'.'Winkel-Max. (kundenspezifisch)'
end
end
end
end
Nun wie die Profis bestimmt schon festgestellt haben ändert sich die Antwort im "OK?" Feld, wenn ich den Messytp ändere. Allerdings möchte ich Werte von verschiedenen Messtypen messen, die in die Untertabelle eingetragen werden, und das "OK?" Feld soll sozusagen mit dem Messtyp berechnen, der bei der Werteintragung ausgewählt war.
Das Ziel ist es mehrere Teile für eine Kategorie zu messen, und dann zur nächsten Kategorie (Messtyp) zu gehen, ohne dass sich die Antworten bei "OK?" ändern. Ich hänge euch noch eine Kopie der Datenbank an. Vielleicht kann mir ja jemand helfen!
Liebe Grüße, Jan
7 Antworten
-
Ich würde wie folgt vorgehen:
Eine Untertabelle Messungen erstellen mit Feldern:
kundenspezifische Toleranz
Messtyp
Messwert
ja/nein-Feld Resultat mit "schreibbar wenn" "false" (kann nur durch Skripte geändert werden, nicht durch Menschen).
Dann würde ich in Trigger nach Änderung in alle drei Felder schreibenif Toleranz!=null and Messtyp!=null and Messwert!=null then HIER DEINE LOGIK, z.B. if Messwert>Minimum and Messwert<Maximum then true else false end end
Dann hast du nämlich zu deinem spezifischen Prüfpunkt alle relevanten Parameter fest geschrieben.
Anschließend kannst du mit einer Formel
if cnt(Messungen[Resultat=false])>0 then "Messungen ungültig" else "Messungen gültig" end
auf Ebene des Prüfobjektes prüfen, ob alle Untermessungen zum Objekt in Ordnung sind
Grüße Peter
-
Hey Peter,
danke für deine Antwort, aber ich glaube ich kann dir nicht ganz folgen. Was genau bewirkt das if-Statement damit das ja/nein Feld gleichbleibt?
Liebe Grüße, Jan -
Okayokay vielen Dank, dass du dir die Zeit genommen hast! Ich werde mal versuchen das irgendwie in Code zu realisieren! Ich melde mich dann!
Vielen vielen Dank, Jan -
Hallo Jan. Werte einer Tabelle sind besser aufgehoben in fixen Feldern (text, number, ja/nein). Wenn Du Funktionsfelder benutzt, können diese die Werte ändern, wenn sich Bedingungen ändern. Meist hat man das alles nicht ganz so im Visier und eine kleine Änderung am Code an einer anderen Stelle und alle Deine tausenden Messwerte sind dahin. Ich habe noch nicht ganz begriffen, was Du da alles für Sachen durchführen musst, habe aber mal ein paar Änderungen an Deiner DB auf gut Glück vorgenommen.
1. es gibt jetzt ein Ja/Nein Feld für "OK". Dieses wird beim Anlegen des Datensatzes gefüllt durch Deinen Code mit den ganzen if-else Sachen.
2. Der Button "neuer Prüfbericht" enthält nun noch ein paar Teile mehr und
3. In der Untertabelle gibt es jetzt auch noch ein Feld für die Registrierung des Messtyps.
4. Du könntest jetzt also das "OK?" Feld löschen, oder zur Kontrolle mit dem neuen "OK" Feld noch ein paar Tage stehen lassen.
mal sehen, ob ich das so richtig interpretiert habe. Aber wenn ich mir Deinen Dialog mit Peter ansehe, dann könnte ich auch daneben liegen. Mirko
-
Hey Mirko,
der Code ist wirklich gut, aber wenn ich die Kriterien im Nachhinein ändere, dann ändert sich das OK? Feld trotzdem noch. Es soll halt zum Zeitpunkt der Messung mit meinem Code zu den Toleranzen geschaut werden, ob das okay ist, und der Wert (Ja oder Nein) soll stehen bleiben, auch wenn ich die Kriterien oben ändere.
Danke und liebe Grüße, Jan -
Ich hab grade den Code von dem Knopf ein bisschen für mich geändert und jetzt funktioniert alles prima! Ich danke dir vielmals Mirko für die Lösung, und auch Peter für die Hinweise!
Content aside
- Status Answered
- vor 2 TagenZuletzt aktiv
- 7Antworten
- 60Ansichten
-
3
Folge bereits