【发布时间】:2017-04-19 21:56:36
【问题描述】:
我有 ProductLine 和 ProductLineItem DAC。产品线包含相关库存项目的集合。
public class ProductLine : IBqlTable
{
[PXDBIdentity()]
public virtual int? LineID { get; set; }
public abstract class lineID : IBqlField { }
[PXDBString(50, IsKey = true)]
[PXUIField(DisplayName = "Line ID")]
[PXDefault]
[PXSelector(typeof(ProductLine.lineCD),
typeof(ProductLine.lineCD),
typeof(ProductLine.description))]
public virtual string LineCD { get; set; }
public abstract class lineCD : IBqlField { }
// ...
}
public class ProductLineItem : IBqlTable
{
[PXDBInt(IsKey = true)]
[PXDBDefault(typeof(ProductLine.lineID))]
[PXParent(typeof(Select<ProductLine,
Where<ProductLine.lineID,
Equal<Current<ProductLineItem.lineID>>>>))]
public virtual int? LineID { get; set; }
public abstract class lineID : IBqlField { }
[PXDBInt(IsKey = true)]
[PXUIField(DisplayName = "Inventory ID")]
[PXSelector(
typeof(Search2<InventoryItem.inventoryID,
LeftJoin<ProductLineItem,
On<ProductLineItem.lineID, Equal<Current<ProductLineItem.lineID>>,
And<ProductLineItem.inventoryID, Equal<InventoryItem.inventoryID>>>>,
Where<InventoryItem.itemStatus, Equal<InventoryItemStatus.active>,
And<ProductLineItem.lineID, IsNull>>>),
new Type[] {
typeof(InventoryItem.inventoryCD),
typeof(InventoryItem.descr)
},
SubstituteKey = typeof(InventoryItem.inventoryCD))]
public virtual int? InventoryID { get; set; }
public abstract class inventoryID : IBqlField { }
// ...
}
然后在一个非常简单的 FormDetail 入口页面中实现这些。
public class ProductLineEntry : PXGraph<ProductLineEntry, ProductLine>
{
public PXSelect<ProductLine> ProductLines;
public PXSelect<ProductLineItem,
Where<ProductLineItem.lineID,
Equal<Current<ProductLine.lineID>>>> ProductLineItems;
}
ProductLineItem.inventoryID 上的 PXSelector 提供尚未添加到当前产品线的活动项目。但是,当这样编写选择器时,尝试从网格中删除项目会导致出现红色“x”指示符,但会出现 record is never actually removed。
将 PXSelector 更改为没有 Search2 的更基本的选择器...
[PXSelector(typeof(InventoryItem.inventoryID),
typeof(InventoryItem.inventoryCD),
typeof(InventoryItem.descr),
SubstituteKey = typeof(InventoryItem.inventoryCD))]
...记录正常删除。
如何在选择器中使用搜索 BQL 并且仍然能够从详细信息网格中删除记录?
【问题讨论】:
标签: acumatica