1

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

提前致谢

图像 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;            

    }

但是,当我记录时,它不会填充该字段。

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

谢谢

4

1 回答 1

1

PMQuote不是实际的数据库表,而是表之间的BQL 投影

  • CR.Standalone.CRQuote
  • CRO机会修订
  • CR.Standalone.CRO机会

我解决这个问题的方法是:

  1. 在表 CRQuote 中添加字段
  2. 通过包含新的 CRQuote 字段扩展图表并覆盖 Projection。

更新:根据@HB_Acumatica 的建议,第 2 步将简化为 DAC 扩展(不需要 Graph 扩展)。在随后的 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

}

结果

D B

于 2019-09-27T17:49:19.917 回答