刷新库存项目屏幕

时间:2015-05-25 02:54:19

标签: acumatica

我在Acumatica有问题。我在InventoryItem表上创建了一个触发器,用于将插入的记录插入到我的自定义表中。

问题是,每当我尝试在Acumatica中保存新的库存商品时,它都不会反映库存商品的最后保存数据。常规设置选项卡中的详细信息不正确。我需要关闭屏幕并重新打开才能看到正确的数据。

有人可以帮我解决一下如何在保存后立即获得刷新的库存项目屏幕。或者,只要有自定义触发器,Acumatica中是否存在错误?

3 个答案:

答案 0 :(得分:1)

假设您的网格已绑定以查看PayRollsDetails。然后,您可以使用以下代码刷新网格:

PayRollsDetails.View.Cache.Clear();
PayRollsDetails.View.Cache.ClearQueryCache();

答案 1 :(得分:1)

我还没有检查过您提到的有关不刷新信息的问题,但是如果需要在保存记录后强行刷新屏幕

  • 覆盖持久性
  • 调用基本操作
  • 创建图表的新实例
  • 搜索要设置为标头缓存当前的记录
  • 抛出新的重定向必需例外

因此代码可能如下所示[可能需要修改]

[PXOverride]
public void Persist(Action persit)
{
 persit();// this will call base Persist();
 InventoryItemMaint grp = PXGraph.CreateInstance<InventoryItemMaint>();
 InventoryItem inv = PXSelect<InventoryItem, Where<InventoryItem.inventoryCD, Equal<Required<InventoryItem.inventoryCD>>>>.Select(grp, this.Base.Item.Current.InventoryCD.Trim());
 if (inv != null && inv.InventoryID.HasValue)
 {
    grp.Item.Current = grp.Item.Search<InventoryItem.inventoryID>(inv.InventoryID);
    throw new PXRedirectRequiredException(grp, "Reloading Item");
 }
}

如果您不想刷新整个屏幕,而不是抛出异常,您只需刷新其他用户(Yura Zaletskyy)在此帖子上建议的所需视图方法。

答案 2 :(得分:0)

您可以尝试选择方法。 例如:这是Acumatica源代码中的项目设置数据视图(您可以使用探索源代码页)

[PXViewName(Messages.InventoryItem)]
public PXSelect<InventoryItem, Where<InventoryItem.inventoryID, Equal<Current<InventoryItem.inventoryID>>>> ItemSettings;

通过自定义(我假设您使用AEF),为此数据视图添加select方法

[PXViewName(Messages.InventoryItem)]
public PXSelect<InventoryItem, Where<InventoryItem.inventoryID, Equal<Current<InventoryItem.inventoryID>>>> ItemSettings;

protected virtual IEnumerable itemSettings()
{
    return new PXSelect<InventoryItem, Where<InventoryItem.inventoryID, Equal<Current<InventoryItem.inventoryID>>>>(Base).Select();
}

有时我使用sql store过程将数据插入到我的表中,select方法有助于重新加载带有插入数据的屏幕。