首页 > 解决方案 > 允许添加新的强制图形/屏幕

问题描述

我正在寻找自定义允许添加新按钮以指向正确的图形/屏幕。我有一个 DAC,它从设置页面链接到非库存商品。选择器过滤掉只显示非库存项目。当我使用 AllowAddNew=True 时,它​​会显示带有指向 Stock Items 页面的链接的铅笔。有没有办法强制它进入非库存项目页面?

这是我的一个 DAC 字段存在此问题的示例。

#region DefCylDepInventoryID 
[PXDBInt]
[PXUIField(DisplayName = "Default Cylinder Deposit Item")]
[PXSelector(typeof(Search<
    InventoryItem.inventoryID, 
    Where2<
        Where<InventoryItem.stkItem, Equal<False>>, 
        And<Where<InventoryItem.itemStatus, NotEqual<InventoryItemStatus.unknown>>>>>), typeof(InventoryItem.inventoryID), typeof(InventoryItem.descr), typeof(InventoryItem.itemStatus), DescriptionField = typeof(InventoryItem.descr), SubstituteKey = typeof(InventoryItem.inventoryCD))]
[PXForeignReference(typeof(Field<CYSetup.defCylDepInventoryID>.IsRelatedTo<InventoryItem.inventoryID>))]
public virtual int? DefCylDepInventoryID { get; set; }
public abstract class defCylDepInventoryID : PX.Data.BQL.BqlInt.Field<defCylDepInventoryID> { }
#endregion

标签: acumatica

解决方案


尝试使用封装的 [NonStockItem] 属性来定义选择器。

您的字段将如下所示:

#region DefCylDepInventoryID 
[PXUIField(DisplayName = "Default Cylinder Deposit Item")]
[NonStockItem]
[PXRestrictor(typeof(Where<InventoryItem.itemStatus, NotEqual<InventoryItemStatus.unknown>>), "Message")] 
[PXForeignReference(typeof(Field<CYSetup.defCylDepInventoryID>.IsRelatedTo<InventoryItem.inventoryID>))]
    public virtual int? DefCylDepInventoryID { get; set; }
    public abstract class defCylDepInventoryID : PX.Data.BQL.BqlInt.Field<defCylDepInventoryID> { }
    #endregion

理论上,这将使用 NonStock Item 的 PXPrimaryGraph,它应该将您重定向到正确的页面。


推荐阅读