我尝试使用customer属性的值填充此字段。
public class CustomerExt : PXCacheExtension<Customer>
{
#region OtherID
[PXString]
[PXUIField(DisplayName = "Other ID")]
[PXDBScalar(typeof(Search<CSAnswers.value,
Where<CSAnswers.refNoteID, Equal<Current<Customer.noteID>>,
And<CSAnswers.attributeID, Like<OtherIDAttr>>>>))]
public virtual string UsrOtherID { get; set; }
public abstract class usrOtherID : IBqlField { }
#endregion
public class OtherIDAttr: Constant<string>
{
public OtherIDAttr() : base("OTHERID") { }
}
}
将字段添加到屏幕时会导致上述错误。如果我从搜索&lt;&gt;中删除第二个条件,则会填充该字段,因此我确定它是CSAnswers AttributeID和常量字符串之间的比较。
如果有人能指出我正确的方向,那就太棒了。
答案 0 :(得分:0)
由于 PXDBScalarAttribute 中使用的当前运算符(Equal<Current<Customer.noteID>>
),您似乎收到此错误。
尝试简单地删除当前操作符导致其他错误 无效的列名称'NoteID'。 ,可以通过用Customer.noteID
替换PX.Objects.CR.BAccount.noteID
:
public class CustomerExt : PXCacheExtension<Customer>
{
#region OtherID
public abstract class usrOtherID : IBqlField { }
[PXString]
[PXUIField(DisplayName = "Other ID")]
[PXDBScalar(typeof(Search<CSAnswers.value,
Where<CSAnswers.refNoteID, Equal<BAccount.noteID>,
And<CSAnswers.attributeID, Like<OtherIDAttr>>>>))]
public virtual string UsrOtherID { get; set; }
#endregion
public class OtherIDAttr : Constant<string>
{
public OtherIDAttr() : base("OTHERID") { }
}
}