У меня в программе есть параметры процесса аудита.Создан скрипт, который проверяет, нарушает ли аудит какой-либо из диапазонов спецификации (Upper Spec Limit = USL и Lower Spec Limit = LSL).В настоящее время, если нарушения> 0, он отправит электронное письмо, предупреждая инженера о необходимости проверки параметров.Я также хочу, чтобы он сообщал мне о параметрах / полях оповещения в теле письма, а не только о количестве нарушений.Это возможно?Вот функция в скрипте, которая проверяет нарушения.
Пробная переменная измерения в цикле for, а затем присваивает текущее проверенное поле имени индексированной переменной ...
Function AfterUpdateValuesSource(QWFunction)
'---------------------------------------------------------------------------------------
' This script is called after the Source template is modified (Add or Edit last record).
' It then checks for Rule Violations RElated to Control Limits and sends an email if there are any rules violations
' Currently it prints the sum of the LCL and UCL violations
' Setting for QWField.limits.UCLtype will be set to 1 (calculated)
'---------------------------------------------------------------------------------------
Dim oQWMisc, qwField, qwRule, BegRec, EndRec, Rec, Found, Count
Dim ViolationsUCL, ViolationsLCL, ViolationsTot
Dim Answer, Msg, UcFieldName, I, UcRuleName, Value,varname
Dim ruleUSL, ruleLSL, ruleUCL, ruleLCL
'Ignore if not an Add or Edit of Last Record
If Not (QWFunction = "A" Or _
(QWFunction = "E" And QWRep.CurrentRecord = QWRep.RecordCount)) Then
Exit Function
End If
'ViolationsUCL = 0
'ViolationsLCL = 0
'ViolationsTot = 0
ruleUSL = 0
ruleLSL = 0
ruleUCL = 0
ruleLCL = 0
Count = 0
For Each qwField in QWRep.Fields
Count = Count + 1
varname= qwField
UcFieldName = Ucase(Replace(qwField.FieldName,"_"," "))
If qwField.FieldType >= 4 And qwField.FieldType <= 7 Then
Value = QWFile.Value(qwField.VariableNo) & ""
'Calculate statistics for the population data current loaded in QW5.
QWRep.CalcStatistics Count, 1
If Value <> "" Then
'Check USL Violation
Select Case qwField.Limits.USLType
Case 1 'Calculated
If CDbl(value) > qwField.Selections(1).CalculatedLimits.USL Then
ruleUSL = ruleUSL + 1
End If
Case 2 'Fixed
If CDbl(value) > qwField.Limits.USL Then
ruleUSL = ruleUSL + 1
End If
End Select
'Check LSL Violation
Select Case qwField.Limits.LSLType
Case 1 'Calculated
If CDbl(value) < qwField.Selections(1).CalculatedLimits.LSL Then
ruleLSL = ruleLSL + 1
End If
Case 2 'Fixed
If CDbl(value) < qwField.Limits.LSL Then
ruleLSL = ruleLSL + 1
End If
End Select
'Check UCL Violation
Select Case qwField.Limits.UCLType
Case 1 'Calculated
If CDbl(value) > qwField.Selections(1).CalculatedLimits.UCL Then
ruleUCL = ruleUCL + 1
End If
Case 2 'Fixed
If CDbl(value) > qwField.Limits.UCL Then
ruleUCL = ruleUCL + 1
End If
End Select
'Check LCL Violation
Select Case qwField.Limits.LCLType
Case 1 'Calculated
If CDbl(value) < qwField.Selections(1).CalculatedLimits.LCL Then
ruleLCL = ruleLCL + 1
End If
Case 2 'Fixed
If CDbl(value) < qwField.Limits.LCL Then
ruleLCL = ruleLCL + 1
End If
End Select
End If
End If