我已经在屏幕上添加了一个自定义字段,并希望让一个选择器从名为BASEITEM的特定属性的描述中选择值。
[PXDBString(50, IsUnicode = true)]
[PXUIField(DisplayName = "Document Number", Visibility = PXUIVisibility.SelectorVisible)]
[PXSelector(typeof(Search<CSAttributeDetail.Description,
Where<CSAttributeDetail.AttributeID.StartsWith("BASEITEM")>,
OrderBy<Asc<CSAttributeDetail.Description>>>),
DescriptionField = typeof(CSAttributeDetail.Description)]
但是,当我尝试发布时,我会收到错误。
Building directory '/WebSiteValidationDomain/App_RuntimeCode/'.
/AcuDocCenterWebsite/App_RuntimeCode/PX_Objects_IN_InventoryItem_extensions.cs(27): error CS1003: Syntax error, '>' expected
/AcuDocCenterWebsite/App_RuntimeCode/PX_Objects_IN_InventoryItem_extensions.cs(27): error CS1525: Invalid expression term ','
/AcuDocCenterWebsite/App_RuntimeCode/PX_Objects_IN_InventoryItem_extensions.cs(27): error CS1026: ) expected
/AcuDocCenterWebsite/App_RuntimeCode/PX_Objects_IN_InventoryItem_extensions.cs(27): error CS1003: Syntax error, ']' expected
/AcuDocCenterWebsite/App_RuntimeCode/PX_Objects_IN_InventoryItem_extensions.cs(28): error CS1519: Invalid token '>' in class, struct, or interface member declaration
/AcuDocCenterWebsite/App_RuntimeCode/PX_Objects_IN_InventoryItem_extensions.cs(29): error CS1519: Invalid token '=' in class, struct, or interface member declaration
/AcuDocCenterWebsite/App_RuntimeCode/PX_Objects_IN_InventoryItem_extensions.cs(29): error CS1519: Invalid token ')' in class, struct, or interface member declaration
Compiler time, seconds: 0.8243028
Validation failed.
答案 0 :(得分:0)
您的属性中有一些奇怪的东西,所以如果修复它们会尝试解决您的问题。以下是应该有效的完整代码段:
[PXDBString(50, IsUnicode = true)]
[PXUIField(DisplayName = "Document Number", Visibility = PXUIVisibility.SelectorVisible)]
[PXSelector(typeof(Search<CSAttributeDetail.description,
Where<CSAttributeDetail.attributeID, Like<string_BASEITEMPCT>>,
OrderBy<Asc<CSAttributeDetail.description>>>),
DescriptionField = typeof(CSAttributeDetail.description))]
以下是PXSelector
属性
public class string_BASEITEMPCT : Constant<string>
{
public string_BASEITEMPCT()
: base("BASEITEM%")
{
}
}
您在PXSelector
属性的末尾错过了一个括号,阻止了构建和发布。
您需要使用继承IBqlField
而不是特定字段的类,即在执行BQL时使用小写类而不是大写字段。
要将字段值与字符串进行比较,请使用Like<>
运算符和字符串常量。要创建该常量,请创建一个类并将字符串值指定为基础构造函数的参数。 %
末尾的"BASEITEM%"
与SQL通配符%