Acumatica自定义字段需要PXSelector用于特定属性描述值

时间:2016-08-09 19:03:20

标签: acumatica

我已经在屏幕上添加了一个自定义字段,并希望让一个选择器从名为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.

enter image description here

1 个答案:

答案 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%")
        {
        }
    }
  1. 您在PXSelector属性的末尾错过了一个括号,阻止了构建和发布。

  2. 您需要使用继承IBqlField而不是特定字段的类,即在执行BQL时使用小写类而不是大写字段。

  3. 要将字段值与字符串进行比较,请使用Like<>运算符和字符串常量。要创建该常量,请创建一个类并将字符串值指定为基础构造函数的参数。 %末尾的"BASEITEM%"与SQL通配符%

  4. 的目的相同