我已将定制添加到PO输入屏幕PO.30.10.00。自定义添加四个日期字段,一个组合框文本字段和一个字符串(10)字段。当PO处于打开状态时如何在PO301000上启用自定义字段?
现在,只有当PO处于暂停状态时,字段才可编辑。用户希望能够随时编辑这些字段。他们正在使用这些字段来跟踪不同的采购订单,并将对这些采购订单进行通用查询,以便他们可以通过维护这些字段来沟通采购订单的状态。
当采购订单处于未结状态时,承诺日期可编辑。我们希望这些自定义字段可以像Promise Date一样进行编辑。
我已将定制添加到PO输入屏幕PO.30.10.00。自定义添加四个日期字段,一个组合框文本字段和一个字符串(10)字段。当PO处于打开状态时如何在PO301000上启用自定义字段?
现在,只有当PO处于暂停状态时,字段才可编辑。用户希望能够随时编辑这些字段。他们正在使用这些字段来跟踪不同的采购订单,并将对这些采购订单进行通用查询,以便他们可以通过维护这些字段来沟通采购订单的状态。
当采购订单处于未结状态时,承诺日期可编辑。我们希望这些自定义字段可以像Promise Date一样进行编辑。
采购订单屏幕主要受自动化步骤驱动。这一事实使更改自动化步骤启用自定义字段时,PO是打开状态需要一个必不可少的步骤:
要在采购订单摘要区启用自定义文本字段和文档详情网,应该修改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既是你的自定义字段在打开状态:
值得一提的,如果下面这使得在细节网格场只(而不一定需要以能够在主文档头字段)的自动化步骤在主文档中启用场头文件(Document/Or der编号)仍然需要启用“保存”按钮。 –