Zum Hauptinhalt springen

Anpassen des Kalibrierungsrasters und benutzerdefinierter Parameter für „Bestanden/Nicht bestanden“

Angenommen, Sie möchten ein paar Dinge mit einem Raster aus Kalibrierungstestpunkten machen. Zum Beispiel – wenn Sie Ihre eigenen Kriterien für „Bestanden“ oder „Nicht bestanden“ festlegen möchten. Dazu fügen Sie zunächst einen benutzerdefinierten Ereignisauslöser für „Ausrüstung hinzufügen (nachher)“ hinzu. In diesem Code können Sie zudem festlegen, wie die Auflösung und die Rundung für jede Spalte angezeigt werden sollen – über die üblichen Einstellungsmöglichkeiten für die Auflösung hinaus. Wenn Sie „PassFailOverride“ auf „True“ setzen, wird Ihr „Override“-Code bei „Pass“ und „Fail“ ausgeführt. Mit „ResOverride“ weisen Sie Ihr Programm an, Felder so zu verknüpfen, dass deren Werte aus anderen Feldern übernommen werden. Sie können auch den „Offset“ für die Auflösung einstellen. Damit ein Feld Daten entsprechend seiner Auflösung „kürzt“, setzen Sie den Wert von „TruncFIELDNAME“ auf „True“.

Sie könnten den folgenden Code verwenden:

sCompany = LookupEquipmentCompany

sID = LookupEquipmentID

If sID <> "", then

CurrentTolDir = ReturnFromSQL("SELECT TOL_DIRECTION FROM GAGES WHERE COMPANY='" & sCompany & "' AND GAGE_SN='" & sID & "'")

Wenn CurrentTolDir = "SPECIAL TOL." dann

PassFailOverride = True <-- Dies

ResOverride = True

TruncTol = True

SetResTol = True

ResFieldTol = "AV_RES"

TruncStandard = True

SetResStandard = True

ResFieldStandard = "NUM_RESOLUTION"

ResStandardOffset = 1

TruncExtra4 = True

SetResExtra4 = True

ResFieldExtra4 = "NUM_RESOLUTION"

ResExtra4Offset = 1

TruncExtra3 = True

SetResExtra3 = True

ResFieldExtra3 = "AV_RES"

TruncExtra5 = True

SetResExtra5 = True

ResFieldExtra5 = "AV_RES"

SetResAVResult = True

ResFieldAVResult = "AV_RES"

SetResExtra2 = True

ResFieldExtra2 = "AV_RES"

SetResUsedWarnTol = True

ResFieldUsedWarnTol = "AV_RES"

ResUsedWarnTolOffset = 2

else

PassFailOverride = False

ResOverride = False

end if

end if

Hinweis: Dies würde das Raster nur für neue Veranstaltungen ändern, nachdem Ausrüstung hinzugefügt wurde – wiederhole diesen Vorgang in einem „Event Launch (End)“, um dies auch für Veranstaltungen zu berücksichtigen, die gerade bearbeitet werden.

Um das Ergebnis „Bestanden/Nicht bestanden“ zu überschreiben, können Sie den folgenden Code in einer Trigger-Aktion vom Typ „Testpunkt vor dem Posten“ verwenden:

Wenn PassFailOverride = True, dann

dStandard = tpFieldByNameAsFloat("LINE_STANDARD")

dTolPlus = tpFieldByNameAsFloat("TOLERANCE1")

dTolMinus = tpFieldByNameAsFloat("TOLERANCE2")

dAsFound = tpFieldByNameAsFloat("RESULT1")

dAsLeft = tpFieldByNameAsFloat("RESULT2")

sFailed = tpFieldByNameAsString("OUT_OF_TOL")

sAdjusted = tpFieldByNameAsString("ADJUSTED")

sROV = tpFieldByNameAsString("ROV")

sLimited = tpFieldByNameAsString("LIMITED")

iAV_RES = tpFieldBynameAsInteger("AV_RES")

dCalTol = tpFieldByNameAsFloat("TEST_ACCURACY")

If (DualTolerance = True) then

dTolMinus2 = tpFieldByNameAsFloat("EXTRA_NUM3")

dStandard2 = tpFieldByNameAsFloat("EXTRA_NUM4")

dTolPlus2 = tpFieldByNameAsFloat("EXTRA_NUM5")

else

dTolMinus2 = dTolMinus

dStandard2 = dStandard

dTolPlus2 = dTolPlus2

end if

Wenn ((tpFieldIsNull("RESULT1") <> "1") und (tpFieldIsNull("LINE_STANDARD") <> "1")) then

dCalcDev = (dAsFound - dStandard)

tpSetFieldByNameAsFloat("UTOLERANCE2_WARN", dCalcDev)

dCalcDev = RoundToDecimal(dCalcDev,iAV_RES)

tpSetFieldByNameAsFloat("AV_AS_FOUND", dCalcDev)

else

tpSetFieldByNameNull("UTOLERANCE2_WARN")

tpSetFieldByNameNull("AV_AS_FOUND")

end if

Wenn (DualTolerance = True), dann

Wenn ((tpFieldIsNull("RESULT2") <> "1") und (tpFieldIsNull("EXTRA_NUM4") <> "1")) dann

dCalcDev2 = (dAsLeft - dStandard2)

tpSetFieldByNameAsFloat("UTOLERANCE1_WARN", dCalcDev2)

dCalcDev2 = RoundToDecimal(dCalcDev2,iAV_RES)

tpSetFieldByNameAsFloat("EXTRA_NUM2", dCalcDev2)

else

tpSetFieldByNameNull("UTOLERANCE1_WARN")

tpSetFieldByNameNull("EXTRA_NUM2")

end if

else

If ((tpFieldIsNull("RESULT2") <> "1") und (tpFieldIsNull("LINE_STANDARD") <> "1")) dann

dCalcDev2 = (dAsLeft - dStandard2)

tpSetFieldByNameAsFloat("UTOLERANCE1_WARN", dCalcDev2)

dCalcDev2 = RoundToDecimal(dCalcDev2,iAV_RES)

tpSetFieldByNameAsFloat("EXTRA_NUM2", dCalcDev2)

else

tpSetFieldByNameNull("UTOLERANCE1_WARN")

tpSetFieldByNameNull("EXTRA_NUM2")

end if

end if

sVerdict = tpFieldByNameAsString("VERDICT")

Wenn sVerdict = "" dann

iFromType = 1

sonstWenn sVerdict = "F" dann

iFromType = 2

sonstWenn sVerdict = "A" dann

iFromType = 3

sonstWenn sVerdict = "L" dann

iFromType = 4

sonstWenn sVerdict = "R" dann

iFromType = 5

Ende Wenn

Wenn iFromType = 2, dann

CalFailed = (CalFailed - 1)

elseIf iFromType = 3, dann

CalFailed = (CalFailed - 1)

CalAdjusted = (CalAdjusted - 1)

elseIf iFromType = 4, dann

CalFailed = (CalFailed - 1)

CalLimited = (CalLimited - 1)

elseIf iFromType = 5 then

CalROV = (CalROV - 1)

end if

Wenn (tpFieldIsNull("AV_AS_FOUND") <> "1") dann

Wenn (CDbl(Abs(tpFieldByNameAsFloat("AV_AS_FOUND"))) <= CDbl(dCalTol)) dann

sNewVerdict = ""

sonst

sNewVerdict = "F"

end if

sonst

sNewVerdict = ""

end if

Wenn sFailed = "1" dann

sNewVerdict = "F"

end if

Wenn sNewVerdict = "F" dann

Wenn (tpFieldIsNull("EXTRA_NUM2") <> "1") then

If (CDbl(Abs(tpFieldByNameAsFloat("EXTRA_NUM2"))) <= CDbl(dCalTol)) then

sNewVerdict = "A"

end if

end if

If sAdjusted = "1" then

sNewVerdict = "A"

end if

end if

If sNewVerdict = "F", dann

Wenn sLimited = "1", dann

sNewVerdict = "L"

end if

end if

Wenn sROV = "1", dann

sNewVerdict = "R"

end if

sVerdict = sNewVerdict

; Wenn sVerdict = "" dann

; iToType = 1

; elseif sVerdict = "F" dann

; iToType = 2

; elseif sVerdict = "A" dann

; iToType = 3

; elseif sVerdict = "L" dann

; iToType = 4

; elseif sVerdict = "R" dann

; iToType = 5

; end if

tpSetFieldByNameAsString("VERDICT", sVERDICT)

Wenn iToType = 2, dann

CalFailed = (CalFailed + 1)

sonstWenn iToType = 3, dann

CalFailed = (CalFailed + 1)

CalAdjusted = (CalAdjusted + 1)

sonstWenn iToType = 4, dann

CalFailed = (CalFailed + 1)

CalLimited = (CalLimited + 1)

elseIf iToType = 5 then

CalROV = (CalROV + 1)

end if

end if |