我有这个属性数据
我使用这个代码:
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...没有错误。
我认为问题出在 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 不是这些情况之一。