Как работает свойство DefaultValue в View\Item?

StatusIDPriorityType
Closed5547ОбычныйВопрос
ProfileReply
MaximClient

Пробовали на свойствах разных типов заполнить поле DefaultValue разными значениями.
Мы ожидали, что при создании нового объекта поле будет заполнено указанным в модели значением, но этого не произошло.
Как работает это поле и где можно посмотреть документацию (на сайте в разделе Документация описания этого поля не нашли).
Мы используем Xafari 13.2.805.21 в Галактике АММ.

Replies

UserDescriptionPosted On
Александра ЗубрейAgent

Здравствуйте, Максим

 

За свойство DefaultValue платформы Xafari отвечает контроллер Xafari.DefaultValueViewController

 

Данный контроллер реализует возможность использования последних введенных пользователем значений на карточных формах при повторном открытии.

Для реализации этой возможности предлагается использовать специальные настройки:

  • Атрибут UseDefaultValue у элемента Application\BOModel\Class. Принимает значения true|false. По умолчанию – false.
  • Атрибут UseDefaultValue у элемента Application\Views\DetailView. Принимает значения true|false. По умолчанию – значение из такого же атрибута для класса.
  • Атрибут UseDefaultValue у элемента Application\Views\DetailView\Items\PropertyEditor. Принимает значения true|false. По умолчанию – значение из такого же атрибута для DetailView.
  • Атрибут DefaultValue у элемента Application\Views\DetailView\Items\PropertyEditor. Принимает строковое значение. По умолчанию – пустая строка. (Применяется, если нету последних введенных пользователем данных)

 

Описание реализации

Класс Xafari.DefaulValueViewController реализует описываемые возможности:

Сохраняются значения всех типов, для которых реализованы взаимно однозначные конвертеры из объекта в строку, и наоборот, или реализующих интерфейс System.IConvertible. К таковым, по умолчанию, относятся типы:

 

  • sring
  • bool
  • int, int32, int64 и прочие
  • decimal, float и прочие
  • enum
  • DateTime

 

Отдельно обрабатывается случай с персистентными типами, наследованными от Devexpress.Xpo.XPObjectBase. При сохранении ссылки на объект используется строковое представление первичного ключа; при восстановлении ссылки объект загружается в текущем View.ObjectSpase по сохраненному ключевому значению.

 

Важно.

  1. Наличие активного DialogController на форме не обязательно, однако в этом случае необходимо самостоятельно реализовать сохранение значений по умолчанию (т.к. до этого значения сохранялись по действию OK DialogController).
  2. Сохранение значений по умолчанию производится только по нажатию на кнопку DialogController.Accept.
  3. Сохраняются и восстанавливаются значения только для тех свойств, у которых атрибут UseDefaultValue содержит true.

 

 

По умолчанию, значения сохраняются в модель приложения. Однако имеется возможность самостоятельно реализовать способ хранения этих значений. (см. Xafari.DefaulValueViewController по адресу http://xafari.ru/documentation/frlrfxafaridefaultvalueviewcontrollerclasstopic.html)

 

× This ticket is closed.