Acumatica-页面中AlloAddNew上的NonStockItem屏幕

时间:2019-01-28 09:08:46

标签: acumatica

美好的一天!

我在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。

非常感谢您的建议。

1 个答案:

答案 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弹出窗口还缺少选项和编程界面,因此您仍然可以在哪里放置该按钮。