Produkt: | Elvis |
Version: | 2.5 |
Stand: | 2006-12-13 |
Zusammenfassung
Zur Quittierung eines Alarm stehen in Elvis die folgenden Möglichkeiten zur Verfügung:
- über die eingebaute Alarmliste (Doppelklick und Quittieren klicken)
- über das AlarmListControl (gleiche Funktionalität)
- implizit über das erfolgreiche Absetzen einer Meldung (wenn in der Spalte Quittung der Haken gesetzt ist)
Dieser Artikel beschreibt, wie man alternativ über einen auf einer Bedienseite platzierten StateButton alle Alarme quittieren kann.
Manchmal möchte man auch lediglich den über Extras/Optionen/Alarm konfigurierten Alarmton abschalten; dies wird ebenfalls beschrieben.
Einzelheiten
Zunächst platziert man einen StateButton auf der Seite. Es genügt, wenn dieser einen Zustand hat. Das gewünschte Bild oder den gewünschten Text ordnet man dann den Zuständen „-“ (unbekannt) und „0“ zu.
Dann fügt man mit „Ereignisse..“ (Kontextmenü) den bei Klick auszuführenden Code ein.
Um alle anstehenden Alarme zu quittieren, sollte der Code so aussehen:
//CODE:vb:Sub NameDesKontrollelements_Click()
Dim alarm As Object
Set alarm = Database.AlarmHistory
Do While alarm.EventType <> 0 And alarm.Time >= CDate(CDbl(Now)-1)
If alarm.Datapoint.AlarmState = Asc(„A“) Then
alarm.Datapoint.AcknowledgeAlarm(„“)
End If
alarm.Next
Loop
End Sub//CODE
Erklärung: Mit Database.AlarmHistory erhält man das jüngste Alarmereignis; mit alarm.Next geht man dann die Alarmhistorie in Richtung Vergangenheit weiter. Als Abbruchkriterium der While-Schleife wird hier EventType (kein weiteres Alarmereignis) und Time (Ereignis älter als 1 Tag) benutzt.
Will man lediglich den Alarmton ausschalten, geht das ganz einfach mit:
//CODE:vb:Sub NameDesKontrollelements_Click()
Application.PlaySound(„“)
End Sub //CODE