【发布时间】:2017-02-08 05:52:53
【问题描述】:
目前我正在 acumatica 中的销售订单和采购订单的“添加库存项目”中进行一些自定义,在此自定义中我添加了“标记为”列,但即使它已经存在也无法编辑,我该如何制作用户可以编辑吗?
这里附上自定义“添加库存商品”的截图。
完成的事情:
【问题讨论】:
标签: acumatica
目前我正在 acumatica 中的销售订单和采购订单的“添加库存项目”中进行一些自定义,在此自定义中我添加了“标记为”列,但即使它已经存在也无法编辑,我该如何制作用户可以编辑吗?
这里附上自定义“添加库存商品”的截图。
完成的事情:
【问题讨论】:
标签: acumatica
将您的字段添加到您的 SOOrderStatusSelected DAC 扩展。它必须是未绑定字段,因为 DAC 未绑定到表。您可以在事件处理程序中添加更多逻辑以持久保存到数据库。
public class SOSiteStatusSelectedExt : PXCacheExtension<PX.Objects.SO.SOSiteStatusSelected>
{
[PXString]
[PXUIField(DisplayName="Marked For")]
public virtual string UsrMarkedFor { get; set; }
public abstract class usrMarkedFor : IBqlField { }
}
在 RowSelected 事件中启用 SOOrderEntry 图形扩展中的字段:
public class SOOrderEntryExtension : PXGraphExtension<SOOrderEntry>
{
protected virtual void SOSiteStatusSelected_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
{
PXUIFieldAttribute.SetEnabled<PX.Objects.SO.SOSiteStatusSelectedExt.usrMarkedFor>(sender, e.Row, true);
}
在 Acumatica v6.10.0010 中针对 SalesOrder 屏幕进行了测试:
【讨论】:
深入研究从 INSiteStatusLookup 继承的 SOSiteStatusLookup,您会发现“OnRowSelected”会禁用除“Selected”和“QtySelected”列之外的所有字段。要覆盖这一点,请尝试将以下内容添加到 SOOrderEntry 图形扩展中,以将您想要添加到此视图的任何字段作为可从扩展中编辑的字段...
protected virtual void SOSiteStatusSelected_RowSelected(PXCache sender, PXRowSelectedEventArgs e, PXRowSelected del)
{
del?.Invoke(sender, e);
PXUIFieldAttribute.SetEnabled<MyExtension.MyField>(sender, e.Row, true);
}
将“MyExtension”替换为您的类扩展名,将“MyField”替换为字段名称的标记。
【讨论】: