我已将自定义添加到PO输入屏幕,PO.30.10.00。自定义添加了四个日期字段,一个组合框文本字段和一个字符串(10)字段。
现在,这些字段仅在PO处于暂停状态时可编辑。用户希望能够随时编辑这些字段。他们使用这些字段来跟踪不同的PO,并将对它们建立通用查询,以便他们可以通过维护这些字段来传达PO的状态。
当PO处于“打开”状态时,“承诺日期”可编辑。我们希望这些自定义字段可以像Promise Date那样进行编辑。
答案 0 :(得分:3)
采购订单屏幕受自动化步骤的大力推动。这一事实使自动化步骤的更改成为PO处于打开状态时启用自定义字段所需的必需步骤:
要在采购订单摘要区域和文档详细信息网格中启用自定义文本字段,应通过添加修改 NL Open 步骤2条线,如上面的截图所示。
添加这些行后,自定义文本字段在采购订单摘要区域变为可编辑,但是,自定义文本字段列在文档详细信息网格,因为在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处理程序后,采购订单摘要区域和文档详细信息网格上的自定义字段应该PO处于打开状态时打开以进行编辑: