【问题标题】:Loading popup value to InventoryID field将弹出值加载到 InventoryID 字段
【发布时间】:2018-02-01 12:23:08
【问题描述】:

使用来自Load value from popup to InventoryID field 问题的代码可以将 InventoyID 从弹出窗口设置为 InventoryID 字段,但缺少 Acumatica 的默认行为,例如在从弹出窗口设置 InventoryID 之后,选择项目类然后弹出一个弹出窗口并且要求确认,通常只有在我们为已创建的 Item 更新 Item Class 时才会发生这种情况。

    [PXButton]
    [PXUIField(DisplayName = "Generate")]
    public IEnumerable GenerateInv(PXAdapter adapter)
    {
        string inventoryCD = "ACUMATICA";

        InventoryItem item = PXCache<InventoryItem>.CreateCopy(Base.Item.Current);

        OrderedDictionary keys = new OrderedDictionary(StringComparer.OrdinalIgnoreCase) 
            {
                {
                    typeof(InventoryItem.inventoryCD).Name, 
                    adapter.View.Cache.GetValue(adapter.View.Cache.Current, 
                    typeof(InventoryItem.inventoryCD).Name)
                }
            };

        OrderedDictionary vals = new OrderedDictionary(StringComparer.OrdinalIgnoreCase) 
            { 
                { 
                    typeof(InventoryItem.inventoryCD).Name, inventoryCD 
                } 
            };

        adapter.View.Cache.Update(keys, vals);

        if (adapter.Searches != null && adapter.Searches.Length > 0)
        {
            adapter.Searches[0] = inventoryCD;
        }
        return adapter.Get();
    }

【问题讨论】:

    标签: acumatica


    【解决方案1】:

    您可以尝试通过覆盖 InventoryItem.ItemClassID 的库存项目页面上的字段验证来跳过消息窗口。您应该使用一些条件来表明您正在运行您的客户流程,以便标准消息将出现在库存商品页面上以供正常使用。

    public virtual void InventoryItem_ItemClassID_FieldVerifying(PXCache cache, PXFieldVerifyingEventArgs e, PXFieldVerifying del)
    {
        try
        {
            del?.Invoke(cache, e);
        }
        catch (PXDialogRequiredException)
        {
            var someSkipMessageWindowCondition = true;
            if (someSkipMessageWindowCondition)
            {
                return;
            }
            throw;
        }
    }
    

    由于在基本图中使用了私有属性doResetDefaultsOnItemClassChange,因此该过程将像消息框被回答“是”一样运行,以默认来自新项目类的字段值。如果您不希望使用新类更改值,则需要取消基本图中InventoryItem_ItemClassID_FieldUpdated 中找到的字段的字段默认设置。这将指出在doResetDefaultsOnItemClassChange == true 时正在更新哪些字段。

    对您的问题的更好回答是自动回答“否”,我不确定该怎么做。如果其他人知道如何进行该调用,那么很高兴知道如何执行该功能。

    【讨论】:

      猜你喜欢
      • 2017-04-20
      • 2012-09-15
      • 1970-01-01
      • 2018-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多