我已在PO输入屏幕上添加了自定义,PO.30.10.00 . 自定义添加了四个日期字段,一个组合框文本字段和一个字符串(10)字段 .
现在,只有当PO处于暂停状态时,这些字段才可以编辑 . 用户希望能够随时编辑这些字段 . 他们使用这些字段来跟踪不同的PO,并将对它们 Build 通用查询,以便他们可以通过维护这些字段来传达PO的状态 .
PO处于“打开”状态时,“承诺日期”可编辑 . 我们希望这些自定义字段可以像Promise Date一样进行编辑 .
采购订单屏幕受自动化步骤的严重驱动 . 这一事实使自动化步骤的更改成为PO处于打开状态时启用自定义字段所需的必需步骤:
要在“采购订单摘要”区域和“文档详细信息”网格中启用“自定义文本字段”,应通过添加2行来修改 NL Open 步骤,如上面的屏幕截图所示 .
添加这些行后,“自定义文本字段”在“采购订单摘要”区域中变得可编辑,但是,“自定义文本字段”列在“文档详细信息”网格中仍然是只读的,因为在POOrderEntry BLC中如何实现POLine_RowSelected处理程序:
[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处理程序后,当采购订单处于打开状态时,应打开采购订单摘要区域和文档详细信息网格上的自定义字段以进行编辑:
1 回答
采购订单屏幕受自动化步骤的严重驱动 . 这一事实使自动化步骤的更改成为PO处于打开状态时启用自定义字段所需的必需步骤:
要在“采购订单摘要”区域和“文档详细信息”网格中启用“自定义文本字段”,应通过添加2行来修改 NL Open 步骤,如上面的屏幕截图所示 .
添加这些行后,“自定义文本字段”在“采购订单摘要”区域中变得可编辑,但是,“自定义文本字段”列在“文档详细信息”网格中仍然是只读的,因为在POOrderEntry BLC中如何实现POLine_RowSelected处理程序:
要启用“自定义文本字段”列进行编辑,您还应在POOrderEntry BLC扩展中订阅POLine_RowSelected处理程序,如下面的代码段所示:
在自动化步骤中进行更改并在POOrderEntry BLC扩展中订阅POLine_RowSelected处理程序后,当采购订单处于打开状态时,应打开采购订单摘要区域和文档详细信息网格上的自定义字段以进行编辑: