处理字段时发生错误样式:')'附近的语法不正确

时间:2017-05-03 07:40:32

标签: acumatica

我想要实现的,就是在InSiteStatus表中获取特定inventoryID的QtyOnHand。

我为InventoryID创建了一个DAC,并将其标记为“Style”,将另一个标记为QtyOnHand。

我使用了FieldUpdated事件处理程序,因此每次用户选择新的inventoryID时,它都会更新QtyOnHand字段。

这是我的工作。

DAC:

    public class AllocationFilter: IBqlTable
    {
    #region Style
    public abstract class style : IBqlField
    {
    }
    [PXInt]
    [PXUIField(DisplayName = "Style")]
    [PXSelector(typeof(InventoryItem.inventoryID)
    , typeof(InventoryItem.inventoryCD)
    , typeof(InventoryItem.descr)
    , SubstituteKey = typeof(InventoryItem.inventoryCD)
    )]
    public virtual int? Style { get; set; }
    #endregion

    #region OnHand
    public abstract class onHand : IBqlField
    { }
    [PXDecimal()]
    [PXUIField(DisplayName = "On Hand", Enabled = false)]

    public virtual decimal? OnHand { get; set; }
    #endregion
    }

事件处理程序:

    protected void AllocationFilter_Style_FieldUpdated(PXCache sender, PXFieldUpdatedEventArgs e)
    {
    // Obtain the new data record that contains the updated
    // values of all data fields
    AllocationFilter filterAlloc = (AllocationFilter)e.Row;

    if (filterAlloc == null)
    return;

    // This is where the error triggers...
    PXResultset<INSiteStatus> insitestatus = PXSelect<INSiteStatus, 
    Where<INSiteStatus.inventoryID, 
    Equal<AllocationFilter.style>>>.Select(this);

    foreach (INSiteStatus sitestatus in insitestatus)
    {
        filterAlloc.OnHand = sitestatus.QtyOnHand;
    }
    }

我认为我的PXResultSet存在问题,你能帮帮我们吗?

1 个答案:

答案 0 :(得分:1)

我在这里看到两个选项。

一,为此创建一个视图

public PXSelect<INSiteStatus,Where<INSiteStatus.inventoryID,Equal<Current<AllocationFilter.style>>> StyleStatus;

然后在你的事件处理程序

foreach (INSiteStatus sitestatus in StyleStatus.Select())
{......}

或者两个,就像你拥有它一样内联

PXResultset<INSiteStatus> insitestatus = PXSelect<INSiteStatus, 
Where<INSiteStatus.inventoryID, 
Equal<Required<INSiteStatus.inventoryID>>>.Select(this,filterAlloc.Style);

除非你需要更好地控制select语句,否则我会使用View