无法设置在采购收据上启用的自定义字段

时间:2018-11-28 18:53:01

标签: acumatica

我已将我的自定义字段'UsrPrintQty'设置为在POReceiptLine_RowSelected事件上启用,如下所示:

protected void POReceiptLine_RowSelected(PXCache cache, PXRowSelectedEventArgs e, PXRowSelected InvokeBaseHandler)
        {
            if (InvokeBaseHandler != null)
                InvokeBaseHandler(cache, e);
            var row = (POReceiptLine)e.Row;
            PXUIFieldAttribute.SetEnabled<POReceiptLineExt.usrPrintQty>(cache, row, true);
            //PXUIFieldAttribute.SetEnabled(cache, row, "UsrPrintQty", true);
        }

在Acumatica版本18.200.0075上,它在我的开发服务器上运行良好。但是,当我将自定义发布到版本为18.112.0019的另一个实例时,它根本无法正常工作。

我调试代码,该行也被击中。 我设置了最高的定制级别,猜测其他代码可能会覆盖此代码。 我通过“应用更新”重新启动应用程序。 我什至将事件从RowSelected更改为RowSelecting。 我尝试了SetEnabled的另一种重载方法(在上面的代码中对此进行了注释)。

但没有任何效果。

如果我输入这两行:

cache.AllowUpdate = true;
Base.transactions.Cache.AllowUpdate = true;

然后它允许我进行更新,但随后我可以更新整个不需要的行。

我还将字段属性AllowUpdate设置为true。

但仍然没有运气。

谢谢。

1 个答案:

答案 0 :(得分:1)

高速缓存的AllowUpdate方法优先于SetEnabled方法。 通常在关闭的文档上使用false参数调用缓存AllowUpdate来防止进行任何修改。

如果您要求用户能够修改已关闭文档的一个字段,则必须跳过一些麻烦。在基础图将AllowUpdate设置为false之后,必须将AllowUpdate设置为true。

尝试以下模式:

tableView.contentOffset