隐藏字段POOrder条目

时间:2018-04-11 16:05:31

标签: acumatica

我被要求做出我认为非常简单的自定义,隐藏PO订单输入页面上的Promised On字段。我在自定义编辑器中打开了PO301000屏幕,突出显示了Promised On,单击了Attributes并在屏幕级别上单击了Override。我将POOrderEntry上的结果代码更改为:

const filtered = new ReplaySubject(1);
// ... your other code, including updating the filter
this.data.filter(<filter>).subscribe(filtered);

令我惊讶的是,它没有用,Promised On字段仍然可见,我不知道为什么。版本是18.100.0062。

2 个答案:

答案 0 :(得分:0)

看起来POOrderEntry中有一个RowSelected事件,它根据它是否为一揽子PO来设置可见性。由于这是事件链中的后期,因此它会覆盖CacheAttached事件。

您可以通过添加自己的RowSelected事件来获得所需内容。这是一个例子。

    protected void POOrder_RowSelected(PXCache cache, PXRowSelectedEventArgs e) 
    {
        PXUIFieldAttribute.SetVisible<POOrder.expectedDate>(cache, null, false);
    }

答案 1 :(得分:0)

GeorgeM使用下面的代码。诀窍是在更改字段的可见状态之前调用baseMethod。

namespace PX.Objects.PO
{
    public class POOrderEntry_Extension : PXGraphExtension<POOrderEntry>
    {
        [PXOverride]
        protected virtual void POOrder_RowSelected(PXCache cache, PXRowSelectedEventArgs e, PXRowSelected baseMethod)
        {
            baseMethod(cache, e);
            PXUIFieldAttribute.SetVisible<POOrder.expectedDate>(cache, null, false);
        }
    }
}