Promotic

onItemAfterWrite - zdarzenie obiektu PmaData

Opis:
Zdarzenie zostanie wywołane po zapisie do (zmianie) wartości jednej zmiennej zdefiniowanej w karcie "Dane".
Parametry:
pMe(Object) Odniesienie do PmaData obiektu, w którym dane zdarzenie powstaje.
pEvent(Object) Odniesienie do obiektu zawierającego ściślejsze informacje o danym zdarzeniu.
pEvent.Item - (Object) [do odczytu] Obiekt PmVar zawierający informacje o zmiennej, w której doszło do zapisu (do zmiany)
pEvent.OldVal - (Variant) [do odczytu] Stara wartość zmiennej. Taką wartość miała zmienna przed zapisem.
pEvent.OldQuality - (Long) [do odczytu] Stara jakość zmiennej. Taką jakość miała zmienna przed zapisem.
Notatka:
Żeby doszło do wywołania tego zdarzenia dla określonej zmiennej jest konieczne:
- Wytwórz rozszerzenie danych ExtWriteAction w zmiennej.
- W tym rozszerzeniu danych zezwól wołania tego zdarzenia (patrz konfigurator "ExtWriteAction > Rozszerzenie danych ExtWriteAction > Zdarzenie "onItemAfterWrite"").
Tam również określa, czy zdarzenie zostanie wywołane po każdym zapisie lub przy każdej zmianie wartości.
 
Jeżeli wywołanie zostanie dozwolone dla każdej zmiennej i dojdzie do zapisu do (zmiany) wszystkich zmiennych jednocześnie, wtedy zdarzenie zostanie wywołane dla każdej zmiennej osobno!
Zastosowanie tego zdarzenia jest stosowne na przykład do poinformowania i testowania wartości w celach alarmu, lub do specjalnych czynności, które mają nastąpić, jeżeli dojdzie do zmiany wartości zmiennej.

Uwaga:
Zdarzenie zostanie wywołane tylko jeżeli zostanie wykonany rzeczywisty zapis (np. obiekt.Item(0).Value=3) do zmiennej - oznaczmy ją A.
Lecz jeżeli w zmiennej A jest zdefiniowane powiązanie danych (przy odczycie) do innej zmiennej B (w innym obiekcie) i zostanie wykonany zapis do zmiennej B, wtedy zmienna A nie dowie się o zmianie i dlatego zdarzenie nie zostanie wywołane (zmienna A dowie się o zmianie dopiero wtedy, aż ktoś będzie ją odczytywać - wtedy zostanie "wykonane" powiązanie danych - lecz ponownie zdarzenie nie zostanie wywołane !).
Patrz również:
Przykład:
Następujący skrypt w zdarzeniu onItemAfterWrite wypisze informacje o zapisywanej wartości do pozycji Debug INFO systemu - wypisze nazwę zmiennej do której został wykonany zapis, indeks zmiennej oraz starą i nową wartość zmiennej.
JavaScriptVBScriptWybierz oraz skopiuj do schowka

Pm.Debug("Name:" + pEvent.Item.Name);
Pm.Debug("Index:" + pEvent.Item.Index);
Pm.Debug("NewValue:" + pEvent.Item.Value);
Pm.Debug("OldValue:" + pEvent.OldVal);

Historia:
Pm9.00.18: Nowy parametr pEvent.OldQuality zawiera poprzednią jakość zmiennej przed zapisem.
© MICROSYS, spol. s r.o.