首页 文章

当状态为待批准时,Acumatica - POOrder_RowSelected覆盖启用字段

提问于
浏览
0

当POOrder状态处于“待批准”状态时,我尝试启用某个字段,如“描述”字段,但是当我在POOrder_RowSelected事件上覆盖它时,它仍然不启用该字段 .

protected void POOrder_RowSelected(PXCache cache, PXRowSelectedEventArgs e, PXRowSelected InvokeBaseHandler)
    {
        if(InvokeBaseHandler != null)
            InvokeBaseHandler(cache, e);

        POOrder row = (POOrder)e.Row;
        if (row != null)
        {
            if (row.Hold == false && row.Status == POOrderStatus.Balanced) // Balance is indicated on Pending appoval
            {
                PXUIFieldAttribute.SetEnabled<POOrder.orderDesc>(cache, row, true);
            }
        }
    }

1 回答

  • 0

    您可以使用自动化步骤来完成此任务 .

    选择您的采购订单屏幕,然后在步骤ID上选择“NL待批准” . (见下文)

    然后使用FieldName“*”找到“Purchase Order”TableName并取消选中Disabled框 . 然后保存您的更改 .

    enter image description here

    然后你可以扩展POOrderEntry图,并在RowSelected事件处理程序中添加你的自定义逻辑(并设置启用所需的字段):

    public void POOrder_RowSelected(PXCache sender, PXRowSelectedEventArgs e, PXRowSelected InvokeBaseHandler)
        {
            if(InvokeBaseHandler != null)
               InvokeBaseHandler(cache, e);
    
            POOrder order= (POOrder)e.Row;
            if (order == null || Base.IsExport) return;
    
            if (order.Status == POOrderStatus.Balanced)
            {
                PXUIFieldAttribute.SetEnabled<POLine.orderDesc>(sender, order, true);
            }
        }
    

    当POOrder处于Balanced Status时,上面的示例将启用Description字段 . 这是涉及自定义用户字段的类似问题的另一个链接:How to enable a custom field on PO301000 when the PO is in Open status?

相关问题