美好的一天!
我在DAC中有一个PXSelector字段,仅显示非库存商品
public abstract class inventoryID : IBqlField { }
[PXDBInt]
[PXSelector(typeof(Search2<InventoryItem.inventoryID,
LeftJoin<RECOInventoryItem, On<RECOInventoryItem.inventoryID, Equal<InventoryItem.inventoryID>>>,
Where<RECOInventoryItem.inventoryID, IsNull,
And<InventoryItem.itemType, Equal<ItemType.NON_STOCK>,
And<InventoryItem.stkItem, Equal<False>>>>>),
typeof(InventoryItem.inventoryCD),
typeof(InventoryItem.descr),
DescriptionField = typeof(InventoryItem.descr))]
[PXUIField(DisplayName = "Inventory")]
[PXDefault(PersistingCheck = PXPersistingCheck.Nothing)]
public virtual int? InventoryID { get; set; }
页面上还有一个选择器,它允许编辑并允许添加新方法
<px:PXSelector ID="edInventoryID" runat="server" DataField="InventoryID" AllowEdit="true" AllowAddNew="true">
</px:PXSelector>
现在,我的问题在于用户界面中的edit(铅笔)按钮。当我单击“编辑”按钮时,要编辑的项目被重定向到“非库存项目”页面
但是当我想通过使用edit(pencil)按钮添加另一个非库存物料时,我将重定向到“库存物料”页面。
我已经设置了PrimaryGraph。
[PXPrimaryGraph(typeof(PropertyMaint))]
public class RECOInventoryItem : Audit, IBqlTable
如何将AllowAddNew重定向设置为“非库存项目页面”而不是“库存项目页面”。
您如何覆盖InventoryItem的PxPrimaryGraph,以便我重定向到的图形是Non-stock Item,而不是Stock Item。
非常感谢您的建议。
答案 0 :(得分:1)
PXPrimaryGraph
可以使用BQL条件在DAC字段上处理将1个DAC绑定到多个图形,如InventoryItem DAC所示:
[PXPrimaryGraph(new Type[]
{
typeof(NonStockItemMaint),
typeof(InventoryItemMaint)
},
new Type[]
{
typeof(Where<InventoryItem.stkItem, Equal<False>>),
typeof(Where<InventoryItem.stkItem, Equal<True>>)
})]
这与AllowEdit
功能配合得很好,因为用于图形重定向的InventoryItem.stkItem
字段已经填充在您要编辑的记录中。
当您使用AllowAddNew
创建新记录时,尽管我怀疑InventoryItem.stkItem
字段将为空或通过PXDefault
属性始终默认为相同值。这将带来始终重定向到同一图形的副作用。
您可能会猜到AllowAddNew
没有任何选项或编程接口来影响其行为,因此它只能做什么。因此,我认为您无法覆盖它的行为。
这将创建您自己的操作按钮,这是我知道实现用例的唯一选项。您可以设置按钮样式以显示+
图标,并且没有其他文本像AllowAddNew一样。由于Selector
弹出窗口还缺少选项和编程界面,因此您仍然可以在哪里放置该按钮。