PX 选择器在验证期间行为异常

问题描述 投票:0回答:1

我有这个属性数据

我使用这个代码:

  public class CRMORI: PX.Data.Constant<string>
  {
    public CRMORI() : base("CRMORI") { }
  }  


    #region Originelist
    [PXDBString(20, IsUnicode = true, InputMask = "")]
    [PXUIField(DisplayName = "Origine")]
    [PXSelector(typeof(CSAttributeDetail.valueID),typeof(CSAttributeDetail.description),DescriptionField = typeof(CSAttributeDetail.description),SubstituteKey = typeof(CSAttributeDetail.description),ValidateValue = true)]            
    [PXRestrictor(typeof(Where<CSAttributeDetail.attributeID, Equal<CRMORI>>),null)]      
    [PXCustomizeSelectorColumns(typeof(CSAttributeDetail.attributeID),typeof(CSAttributeDetail.description))]        
    public virtual string Originelist { get; set; }
    public abstract class originelist : PX.Data.BQL.BqlString.Field<originelist> { }
    #endregion

当我使用“精品店”、“电子邮件”、“电话”时,出现“系统中找不到Origine”的错误

但我可以选择微信,whatsapp...没有错误。

acumatica
1个回答
0
投票

我认为问题出在 PXSelectorAttribute 上的替换键上。微信和whatsapp之所以能工作,是因为id和description字段是相同的。

我想你想要这些作为你在这个领域的属性:

[PXDBString(20, IsUnicode = true, InputMask = "")]
[PXUIField(DisplayName = "Origine")]
[PXSelector(typeof(CSAttribute.attributeID),
        typeof(CSAttributeDetail.attributeID), typeof(CSAttributeDetail.description),
        DescriptionField = typeof(CSAttributeDetail.description))]
[PXRestrictor(typeof(Where<CSAttributeDetail.attributeID, Equal<CRMORI>>), null)]

我认为无需自定义选择器列,因为您可以将列添加到已在此字段中声明的选择器中。仅基于 ID/CD 的字段配置需要 SubstituteKey。 CSAttributes 不是这些情况之一。

© www.soinside.com 2019 - 2024. All rights reserved.