【问题标题】:How to enable a custom field on PO301000 when the PO is in Open status?PO处于Open状态时如何在PO301000上启用自定义字段?
【发布时间】:2017-12-30 11:22:02
【问题描述】:

我已在 PO 输入屏幕 PO.30.10.00 中添加了自定义项。自定义添加了四个日期字段、一个组合框文本字段和一个 string(10) 字段。

目前,这些字段仅在 PO 暂停时才可编辑。用户希望能够随时编辑这些字段。他们使用这些字段来跟踪不同的 PO,并将在它们上构建通用查询,以便他们可以通过维护这些字段来传达 PO 的状态。

当采购订单处于打开状态时,承诺日期是可编辑的。我们希望这些自定义字段可以像承诺日期一样进行编辑。

【问题讨论】:

    标签: acumatica acumatica-kb


    【解决方案1】:

    采购订单屏幕主要由自动化步骤驱动。这一事实使得对自动化步骤的更改成为当 PO 处于打开状态时启用自定义字段所需的强制性步骤:

    要在 Purchase Order Summary 区域和 Document Details 网格上启用自定义文本字段,应修改 NL Open 步骤,添加2行如上图所示。

    添加这些行后,采购订单摘要区域中的自定义文本字段变为可编辑,但是,文档详细信息中的自定义文本字段列仍然是只读的 网格,因为 POLine_RowSelected 处理程序是如何在 POOrderEntry BLC 中实现的:

    [Serializable]
    public class POOrderEntry : PXGraph<POOrderEntry, POOrder>, PXImportAttribute.IPXPrepareItems
    {
        ...
        protected virtual void POLine_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            POLine row = (POLine)e.Row;
            POOrder doc = this.Document.Current;
            if (row == null) return;
    
            if (IsExport) return;//for performance 
    
            bool isLinkedToSO = row.Completed == true && IsLinkedToSO(row);
    
            if (this.Document.Current.Hold != true || isLinkedToSO)
            {
                PXUIFieldAttribute.SetEnabled(sender, e.Row, false);
                ...
            }
            ...
        }
        ...
    }
    

    要启用自定义文本字段列进行编辑,您应该另外订阅 POOrderEntry BLC 扩展中的 POLine_RowSelected 处理程序,如下面的代码 sn-p 所示:

    public class POOrderEntryExt : PXGraphExtension<POOrderEntry>
    {
        public void POLine_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            POLine line = (POLine)e.Row;
            POOrder order = Base.Document.Current;
            if (order == null || line == null || Base.IsExport) return;
    
            if (order.Status == POOrderStatus.Open)
            {
                PXUIFieldAttribute.SetEnabled<POLineExt.usrCustomTextField>(sender, line, true);
            }
        }
    }
    

    一旦您在自动化步骤中进行了更改并订阅了 POOrderEntry BLC 扩展中的 POLine_RowSelected 处理程序,您的采购订单摘要区域和文档详细信息网格上的自定义字段应该当 PO 处于 Open 状态时打开编辑:

    【讨论】:

    • 值得一提的是,如果遵循此仅启用详细信息网格中的字段(不一定需要启用主文档标题中的字段)一个自动化步骤以启用主文档标题中的字段(文档/订单号)仍然是启用“保存”按钮所必需的。
    • 这在 21 R2 中不起作用。这个方法的更新版本是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    • 2019-08-20
    • 1970-01-01
    • 2017-09-09
    相关资源
    最近更新 更多