2017-07-24 30 views
1

我已将定制添加到PO输入屏幕PO.30.10.00。自定义添加四个日期字段,一个组合框文本字段和一个字符串(10)字段。当PO处于打开状态时如何在PO301000上启用自定义字段?

现在,只有当PO处于暂停状态时,字段才可编辑。用户希望能够随时编辑这些字段。他们正在使用这些字段来跟踪不同的采购订单,并将对这些采购订单进行通用查询,以便他们可以通过维护这些字段来沟通采购订单的状态。

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

回答

2

采购订单屏幕主要受自动化步骤驱动。这一事实使更改自动化步骤启用自定义字段时,PO是打开状态需要一个必不可少的步骤: enter image description here

要在采购订单摘要区启用自定义文本字段和文档详情网,应该修改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处理程序显示在下面的代码片段:

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既是你的自定义字段在打开状态:

enter image description here

+0

值得一提的,如果下面这使得在细节网格场只(而不一定需要以能够在主文档头字段)的自动化步骤在主文档中启用场头文件(Document/Or der编号)仍然需要启用“保存”按钮。 –

相关问题