AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: База знаний и проекты
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.11.2001, 17:39   #1  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Класс 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, пользовательские данные, сохраниние настроек, настройка формы

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
класс InventSumDateValueReportDim Физические запасы? Poleax DAX: Программирование 12 01.07.2008 15:27
Проблема с передачей контролов из формы в класс matew DAX: Программирование 0 28.04.2008 17:37
Класс SysMailer Ivandos DAX: Программирование 0 13.12.2007 18:25
Какой потомок "вызвал" родительский класс? somebody DAX: Программирование 5 09.08.2005 14:52
Класс двумерного массива Владимир Максимов DAX: База знаний и проекты 29 30.04.2004 19:05

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:00.