【问题标题】:Add Selector Fields In Grid在网格中添加选择器字段
【发布时间】:2018-03-05 21:57:35
【问题描述】:

我正在尝试将选择器字段添加到网格中。这些选择器不绑定到网格上的任何数据,因为它只是用于数据输入,因此没有过滤。我想在运输条款网格中添加项目类别和价格类别。

这是我的代码:

using PX.Data;
using PX.Objects.CM;
using PX.Objects.CS;
using PX.Objects.IN;
using PX.Objects.AR;
using PX.Objects;
using System.Collections.Generic;
using System;

namespace PX.Objects.CS
{
  public class ShipTermsDetailExt : PXCacheExtension<PX.Objects.CS.ShipTermsDetail>
  {
    #region priceCode
  public abstract class priceCode : PX.Data.IBqlField
    {
    }
    [PXString]
    [PXUIField(DisplayName="Price Code")]
    [PXSelector(typeof(Search<ARPriceClass.PriceClassID>),
    typeof(ARPriceClass.Description),
    SubstituteKey = typeof(ARPriceClass.Description),
    ValidateValue = false)]
    public virtual string UsrPriceCode { get; set; }
    #endregion

    #region itemClass
      public abstract class itemClass : PX.Data.IBqlField
    {
    }
    [PXString]
    [PXUIField(DisplayName="Item Class")]
    [PXSelector(typeof(Search<INItemClass.ItemClassID>),
    typeof(INItemClass.ItemClassCD),
    SubstituteKey = typeof(INItemClass.ItemClassCD),
    ValidateValue = false)]
    public virtual string UsrItemClass { get; set; }
    #endregion
  }
}

但是我收到了这些错误:

Building directory '\WebSiteValidationDomain\App_RuntimeCode\'.
\App_RuntimeCode\ShipTermsDetail.cs(20): error CS0118: 'PX.Objects.AR.ARPriceClass.PriceClassID' is a 'property' but is used like a 'type'
\App_RuntimeCode\ShipTermsDetail.cs(21): error CS0118: 'PX.Objects.AR.ARPriceClass.Description' is a 'property' but is used like a 'type'
\App_RuntimeCode\ShipTermsDetail.cs(22): error CS0118: 'PX.Objects.AR.ARPriceClass.Description' is a 'property' but is used like a 'type'
\App_RuntimeCode\ShipTermsDetail.cs(33): error CS0118: 'PX.Objects.IN.INItemClass.ItemClassID' is a 'property' but is used like a 'type'
\App_RuntimeCode\ShipTermsDetail.cs(34): error CS0118: 'PX.Objects.IN.INItemClass.ItemClassCD' is a 'property' but is used like a 'type'
\App_RuntimeCode\ShipTermsDetail.cs(35): error CS0118: 'PX.Objects.IN.INItemClass.ItemClassCD' is a 'property' but is used like a 'type'
\App_RuntimeCode\ShipTermsDetail.cs(20): error CS0118: 'PX.Objects.AR.ARPriceClass.PriceClassID' is a 'property' but is used like a 'type'

由于这两个字段不受前几列中选择的内容的约束,我认为不需要 .this 或 base 但我可能错了吗?

【问题讨论】:

  • 您遇到的错误类似于下面链接的错误。在这种情况下,您需要使用小写字母作为字段名称,因为您引用的是字段类型(列)而不是字段值。参考:stackoverflow.com/questions/48754170/…
  • 知道了,谢谢!

标签: grid customization acumatica


【解决方案1】:

记得观看 Acumatica 自定义中的命名约定。我只需要将第一个字母的字段更改为小写即可。

这里是固定代码:

using PX.Data;
using PX.Objects.CM;
using PX.Objects.CS;
using PX.Objects.IN;
using PX.Objects.AR;
using PX.Objects;
using System.Collections.Generic;
using System;

namespace PX.Objects.CS
{
  public class ShipTermsDetailExt : PXCacheExtension<PX.Objects.CS.ShipTermsDetail>
  {
    #region priceCode
  public abstract class priceCode : PX.Data.IBqlField
    {
    }
    [PXString]
    [PXUIField(DisplayName="Price Code")]
    [PXSelector(typeof(Search<ARPriceClass.priceClassID>),
    typeof(ARPriceClass.description),
    SubstituteKey = typeof(ARPriceClass.description),
    ValidateValue = false)]
    public virtual string UsrPriceCode { get; set; }
    #endregion

    #region itemClass
      public abstract class itemClass : PX.Data.IBqlField
    {
    }
    [PXString]
    [PXUIField(DisplayName="Item Class")]
    [PXSelector(typeof(Search<INItemClass.itemClassID>),
    typeof(INItemClass.itemClassCD),
    SubstituteKey = typeof(INItemClass.itemClassCD),
    ValidateValue = false)]
    public virtual string UsrItemClass { get; set; }
    #endregion
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多