Acumatica 如何在项目报价屏幕PQ000025上添加字段

Acumatica 如何在项目报价屏幕PQ000025上添加字段,acumatica,acumatica-kb,Acumatica,Acumatica Kb,早上好,我想在此屏幕上添加一个新字段项目报价,但在这样做时,我得到一条消息,即表不存在。 应该如何或以什么方式实现这一目标 提前谢谢 数据库中添加的字段 他在数据库中添加了字段,然后我生成了扩展名 namespace PX.Objects.CR { public class PMQuoteExt : PXCacheExtension<PX.Objects.CR.CRQuote> { #region UsrNota [PXDBStri

早上好,我想在此屏幕上添加一个新字段项目报价,但在这样做时,我得到一条消息,即表不存在。 应该如何或以什么方式实现这一目标

提前谢谢

数据库中添加的字段

他在数据库中添加了字段,然后我生成了扩展名

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;            

    }
名称空间PX.Objects.CR
{
公共类PMQuoteExt:PXCacheExtension
{
#乌斯诺塔地区
[PXDBString(-1,InputMask=”“,BqlField=typeof(pmquoteStandaloneText.usrNotaText))]
[PXUIField(DisplayName=“Nota”)]
公共虚拟字符串UsrNotaText{get;set;}
公共抽象类usrNotaText:IBqlField{}
#端区
}
公共类pmquotestandaroneext:PXCacheExtension
{
#乌斯诺塔地区
[PXDBString(-1,InputMask=“”)]
[PXUIField(DisplayName=“Nota”)]
公共虚拟字符串UsrNotaText{get;set;}
公共抽象类usrNotaText:IBqlField{}
#端区
}
}
公共类PMQuoteMaint_扩展名:pxGrapherExtension
{           
公共选择试验;
}
但是,当我录制时,它不会填充字段

我犯了一个错误或做错了。 你能告诉我吗


谢谢

PMQuote不是一个实际的DB表,而是表之间的一个BQL投影

  • CR.Standalone.CRQuote
  • CROpportunityRevision
  • 机会
我解决这个问题的方法是:

  • 在表CRQuote中添加字段
  • 扩展图形并覆盖投影,包括新的CRQuote字段
  • 更新: 根据@HB_Acumatica的建议,步骤2将简化为DAC扩展(不需要图形扩展)。在以后的Acumatica版本中维护起来要简单得多

    更新2:

    在您的问题中,扩展的DAC看起来不正确。请记住,您应该扩展原始表(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
    
    }
    
    //投影扩展
    公共类PMQuoteExt:PXCacheExtension
    {
    #乌斯库斯托姆菲尔德地区
    [PXDBString(100,BqlField=typeof(CRQuoteExt.usrCustomField))]
    [PXUIField(DisplayName=“自定义字段”)]
    公共虚拟字符串UsrCustomField{get;set;}
    公共抽象类usrCustomField:IBqlField{}
    #端区
    }
    //实际表扩展名
    公共类CRQuoteExt:PXCacheExtension
    {
    #乌斯库斯托姆菲尔德地区
    [PXDBString(100)]
    [PXUIField(DisplayName=“自定义字段”)]
    公共虚拟字符串UsrCustomField{get;set;}
    公共抽象类usrCustomField:IBqlField{}
    #端区
    }
    


    有关如何扩展投影以添加自定义字段的相关回答:原始图像链接不再指向原始错误图像。请对其进行调整,以妥善记录本案例