处理字段样式时出错:“)”附近的语法不正确
An error occurred while processing the field Style : Incorrect syntax near ')'
我想实现的,是获取InSiteStatus中特定inventoryID的QtyOnHandtable。
我为 InventoryID 创建了一个 DAC,并将其标记为 "Style",另一个为 QtyOnHand。
我使用了 FieldUpdated 事件处理程序,因此每次用户选择新的 inventoryID 时,它都会更新 QtyOnHand 字段。
这是我的作品。
解码器:
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 有问题,你们能帮帮我吗?
我在这里看到了两个选项。
一,为此创建一个视图
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
我想实现的,是获取InSiteStatus中特定inventoryID的QtyOnHandtable。
我为 InventoryID 创建了一个 DAC,并将其标记为 "Style",另一个为 QtyOnHand。
我使用了 FieldUpdated 事件处理程序,因此每次用户选择新的 inventoryID 时,它都会更新 QtyOnHand 字段。
这是我的作品。
解码器:
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 有问题,你们能帮帮我吗?
我在这里看到了两个选项。
一,为此创建一个视图
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