27.11.2001, 17:39 | #1 |
Administrator
|
Класс xSysLastValue
Назначение Используется для сохранения служебных значений после закрытия формы (например, настройки вида). Возможности Для каждого элемента класса Object класс xSysLastValue позволяет сохранить один объект типа container. Так как container может содержать в себе любое количество значений любых типов, xSysLastValue позволяет для каждого объекта сохранить уникальный набор значений. Механизм Для каждого объекта класс формирует запись в служебной таблице SysLastValue. Использование Объект, который будет использоваться в качестве метки значений, должен иметь следующие методы, которые вызывает класс xSysLastValue: private userId lastValueUserId() Назначение в принципе ясно из названия, но так как в дальнейшем его значение не используется, можно возвращать в качестве значения пустую строку. private idientifiername lastValueElementName() Метод должен возвращать имя объекта, использующегося в качестве метки, то есть: return this.name(); private UtilElementType lastValueType() Возвращает тип объекта-метки. UtilElementType – это eNum, поэтому возврат должен быть такой: return UtilElementType::<значение eNum>; dataAreaId lastValueAreaDataId() private idientifiername lastValueDesignName() Эти методы используются для сохранения некоторой информации о системе. В принципе, особо заботиться о них не обязательно. Нормально работает следующая строчка: return ""; void initParmDefault() Этот метод вызывается в случае, если класс xSysLastValue не нашел запись, соответствующую объету. Его следует использовать для инициализации значений по умолчанию. public container pack() Этот метод вызывается при записи данных классом xSysLastValue. Он должен возвращать container с данным, которые нужно сохранить. public boolean unpack(container packedClass) Метод вызывается при получении сохраненных данных. packedClass – сохраненный ранее container с данными. Методы класса xSysLastValue. static public void getLast(Object caller) Метод находит запись в таблице, помеченную объетком caller, и вызывает у caller метод unpack. static public void saveLast(Object caller) Метод сохраняет в таблице в записи с меткой caller новое значение контейнера. При этом вызывается метод caller.pack(). Если записи с подходящей меткой не существует, создается новая. static public void deleteLast(Object caller) Метод удаляет из таблицы запись с соответствующей меткой. На самом деле у xSysLastValue есть и другие методы, но для решения моих задач мне хватило и этих трех (а точнее двух, так как записи я не удалял). Примечание Для использования функций класса xSysLastValue не обязательно создавать объект этого типа. См. примеры. Администрирование Для администрирования таблицы с сохраненными данными используйте форму SysLastValue. Она позволяет создавать и удалять записи, а также редактировать некоторые поля. Примеры В качестве примеров используйте tutorial_tetris и HB_InventTableLookupForm. |
|
|
За это сообщение автора поблагодарили: Gustav (1), abark (1). |
Теги |
xsyslastvalue, пользовательские данные, сохраниние настроек, настройка формы |
|
|