Не, нам, мазохистам, простых путей не нада.
TEVAS писал(а):пользователь такой-то изменил уставку с .. на ...
Возмём это за пример.
Нужно хранить текущее значение (оно как бэ есть в PV.LoLimit)
Нужно ещё Real UDA для вводимого значения. (NewLoLimit)
По DataChange NewLoLimit (кстати, проверку на корректность ввода я опускаю, но и её неплохо было бы делать
) сгенерировать строку MsgAlmLoLimitChange (ага, ещё один UDA) в виде "Параметр " + Me.Tagname + ", изменение нижней предупр. уставки с " + Str(PV.LoLimit) + " на " + Str(NewLoLimit);
PV.LoLimit=NewLoLimit;
LoLimitChange = true; (ещё один UDA)
А вот на LoLimitChange через Extention назначает Alarm с месагой MsgAlmLoLimitChange.
Ну, это так, прикидочно. Сами мы от реализации этого отказались, слишком просто. Подсунули заказчику стандартный механизм и внушили, что это самое то, что ему надо
TEVAS писал(а):А какой Вы приоритет алармам даете?
Откройте любой компонент AlarmView. Там есть настройка цвета. Диапазон 1-999 разбит на несколько диапазонов.Чем меньше приоритет, тем критичнее аларм. Мы сделали красный = 125, жёлтый = 250, информационный (зелёный) = 900. Пока хватает. Приоритет = 500 у нас был на аларм BadValue. Но потом от Bad отказались, при периодических сбоях связи эти арармы забивают всю БД и вешают AlarmDBLogger с MSSQL.
Vita est dolor.