2016-02-11 1 views
0

Как я могу указать числовое поле и значение по умолчанию для значения Null/unspecified?Поле данных по умолчанию [PXDBInt] для значения Null?

Когда я добавить элемент управления для этого поля на экране она всегда по умолчанию «0» на новых субъектов ...

[PXDBInt] 
[PXDefault(TypeCode.DBNull, "", PersistingCheck=PXPersistingCheck.Nothing)] 
[PXUIField(DisplayName="Nullable Int")] 

ответ

0

Вопрос здесь, как представляется, будь то поле находится в области формы или таблице сетки. В гриде нулевое значение отображается как пустая ячейка и сохраняется как null, если оно пустое. Однако, когда в области формы нулевое значение отображается с «0». Если значение изменено, а затем сменит его на пустое/пустое, результат будет равен нулю, сохраняющемуся в базе данных.

Решение, которое я нашел, было при создании элемента управления вместо использования поля типа PXNumberEdit, сменив его на поле PXTextEdit и установив для свойства TextMode значение «Число», дал желаемый эффект. Нулевые значения будут отображаться как пустые и отличаются от фактических нулевых значений.

0

Значение по умолчанию для всех полей равно нулю, если не заставить значение с PXDefault ,

Если вы удалите атрибут [PXDefault], он автоматически по умолчанию будет иметь значение null.

Убедитесь, что ваше значение определено как int? а не int. "?" обозначает его как «обнуляемым»

Например:

#region CurrentConfigRevision 
    public abstract class currentConfigRevision : PX.Data.IBqlField 
    { 
    } 
    protected int? _CurrentConfigRevision; 
    [PXDBInt] 
    [PXUIField(DisplayName="Current Revision")] 
    public virtual int? CurrentConfigRevision 
    { 
     get 
     { 
      return this._CurrentConfigRevision; 
     } 
     set 
     { 
      this._CurrentConfigRevision = value; 
     } 
    } 
    #endregion 

Это всегда будет иметь нулевое значение, если пользователь не указывает в интерфейсе (или он установлен с помощью кода)

+0

Начиная с новой установки, с помощью проекта Visual Studio. Создан столбец DB UsrSNP int, Allow Null. создал класс расширения DAC без PXDefault, как вы указали InventoryItemExt общественного класса: PXCacheExtension { #region SNP [PXDBInt] [PXUIField (DisplayName = "SNP")] публичных виртуальный ИНТ? UsrSNP {get; задавать; } общественный абстрактный класс usrSNP: IBqlField {} #endregion } Составитель, созданный cust.proj, добавлено .dll, опубликованный, а затем добавил поле данных на экран IN202500 и он все еще показывает «0» в поле ввода , –

+1

У нас одни и те же проблемы для одной из наших страниц, и я никогда не понимал, почему. У нас не было установочного значения, а значение равно null в базе данных, но для PXNumberEdit он показывает нуль. Если я изменил страницу на PXTextEdit, тогда поле будет пусто. Должна быть функция PXNumberEdit для отображения нуля при нулевом значении? – Brendan

Смежные вопросы