【问题标题】:Sales Order SOLines Conditionally Disabled tranDesc being overridden销售订单 SOLines 条件禁用 tranDesc 被覆盖
【发布时间】:2017-04-18 02:49:55
【问题描述】:

我在销售订单表单上有自定义代码,除非它是特定的 SOLine 代码,否则它会阻止编辑 SOLine 描述。我看到正在访问我的自定义代码,但似乎其他东西正在覆盖我的逻辑,在我禁用它后启用该字段的编辑。我想知道是否有预定义的自动化可能会为销售订单屏幕执行此操作,或者是否有其他地方我应该寻找防止这种行为。

//我有调试代码验证是否开始调用 RowSelected 和 SetEnabled

公共类 SOOrderEntry_Extension:PXGraphExtension {

#region Event Handlers    

protected void SOLine_RowSelected(PXCache cache, PXRowSelectedEventArgs e, PXRowSelected InvokeBaseHandler)
{
  if(InvokeBaseHandler != null)
    InvokeBaseHandler(cache, e);
  var row = (SOLine)e.Row;

  if(row != null && row.InventoryID.HasValue) {
    //Only allow editing of parts description if the partno is 'NOTE'
    InventoryItem inventoryItem = PXSelect<InventoryItem, Where<InventoryItem.inventoryID, Equal<Required<InventoryItem.inventoryID>>>>.Select(this.Base, row.InventoryID);
    if(inventoryItem.InventoryCD == "NOTE") {   
      PXUIFieldAttribute.SetEnabled<SOLine.tranDesc>(cache, row, true); 
    } else {
      PXUIFieldAttribute.SetEnabled<SOLine.tranDesc>(cache, row, false); 
    }
  }
}

}

【问题讨论】:

  • 没有您的代码,我们如何检查?
  • 最好在销售订单页面上包含您正在使用的代码。

标签: acumatica


【解决方案1】:

很遗憾,您的 RowSelected 处理程序不会影响 Line Description 列,因为如何为销售订单屏幕配置自动化步骤:

为了使行描述保持打开状态以供编辑,您应该更改一些自动化步骤以禁用销售订单上的整个文档详细信息网格并订阅 SOOrder 处理程序的 RowSelected strong> DAC 以允许在 SOOrderSOLine DAC 的缓存级别上进行编辑。以下是为已完成销售订单启用行描述所需的更改(如有必要,应对为销售订单屏幕定义的其他自动化步骤进行类似更改):

  1. 订阅 SOOrder_RowSelected 处理程序以允许在 SOOrderSOLine DAC 的缓存级别上进行编辑:

    public class SOOrderEntryExt : PXGraphExtension<SOOrderEntry>
    {
        public void SOOrder_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            SOOrder order = e.Row as SOOrder;
            if (order != null && order.Status == SOOrderStatus.Completed)
            {
                sender.AllowUpdate = true;
                Base.Transactions.Cache.AllowUpdate = true;
            }
        }
    }
    
  2. 修改销售订单的 SO Completed 自动化步骤以打开行说明进行编辑。除了启用行描述之外,还必须启用至少一个 SOOrder 字段,否则 保存 按钮将永远不会为已完成的销售订单启用:

【讨论】:

  • 感谢您的解释,鲁斯兰。非常彻底和乐于助人。
猜你喜欢
  • 1970-01-01
  • 2022-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-10
  • 2014-06-08
  • 2014-11-19
相关资源
最近更新 更多