как добавить поле на экране Project Quotes PQ000025 - PullRequest
1 голос
/ 27 сентября 2019

Доброе утро, я хочу добавить новое поле на этом экране Project Quotes, но при этом я получаю сообщение о том, что таблица не существует.Как следует или как это сделать.

Заранее спасибо

Imagen 01

Добавлено поле в базе данных

введите описание изображения здесь

Он добавил поле в базу данных, а затем я создал свое расширение.

namespace PX.Objects.CR
{
    public class PMQuoteExt : PXCacheExtension<PX.Objects.CR.CRQuote>
    {
        #region UsrNota
        [PXDBString(-1, InputMask = "", BqlField = typeof(PMQuoteStandaloneExt.usrNotaText))]

        [PXUIField(DisplayName = "Nota ")]

        public virtual string UsrNotaText { get; set; }
        public abstract class usrNotaText : IBqlField { }
        #endregion
    }

    public class PMQuoteStandaloneExt : PXCacheExtension<PX.Objects.CR.Standalone.CRQuote>
    {
        #region UsrNota
        [PXDBString(-1, InputMask = "")]
        [PXUIField(DisplayName = "Nota ")]

        public virtual string UsrNotaText { get; set; }
        public abstract class usrNotaText : IBqlField { }
        #endregion
    }
}




    public class PMQuoteMaint_Extension : PXGraphExtension<PMQuoteMaint>
    {           
        public PXSelect<PX.Objects.CR.Standalone.CRQuote> Test;            

    }

Однако, когда я записываю, это не такзаполните поле.

что я делаю ошибку или делаю неправильно.Подскажите пожалуйста.

Спасибо

1 Ответ

0 голосов
/ 27 сентября 2019

PMQuote - это не фактическая таблица БД, а BQL-проекция между таблицами:

  • CR.Standalone.CRQuote
  • CROpportunityRevision
  • CR.Standalone.CROpportunity

Я бы решил это следующим образом:

  1. Добавьте поле в таблицу CRQuote
  2. Расширить график и переопределить проекцию с включением нового поля CRQuote.

ОБНОВЛЕНИЕ : На основании предложения @ HB_Acumatica , шаг 2 получитупрощено расширение DAC (нет необходимости в расширении Graph).Гораздо проще поддерживать в последующих версиях Acumatica!

ОБНОВЛЕНИЕ 2:

Расширенные ЦАП выглядят некорректно в вашем вопросе.Имейте в виду, что вы должны расширить исходную таблицу (CRQuote) и проекцию, чтобы сохранить значение.Следующее определение правильно сработало на моем конце:

//Projection extension
  public class PMQuoteExt : PXCacheExtension<PMQuote>
  {
    #region UsrCustomField
    [PXDBString(100, BqlField = typeof(CRQuoteExt.usrCustomField))]
    [PXUIField(DisplayName="Custom Field")]
    public virtual string UsrCustomField { get; set; }
    public abstract class usrCustomField : IBqlField { }
    #endregion
  }
//Actual Table extension     
public class CRQuoteExt : PXCacheExtension<PX.Objects.CR.Standalone.CRQuote>
{
    #region UsrCustomField
    [PXDBString(100)]
    [PXUIField(DisplayName="Custom Field")]
    public virtual string UsrCustomField { get; set; }
    public abstract class usrCustomField : IBqlField { }
    #endregion

}

Result

DB

...