Acumatica 自定义在销售订单和采购订单中添加库存项目

Acumatica 自定义在销售订单和采购订单中添加库存项目,acumatica,Acumatica,目前我正在acumatica的销售订单和采购订单的“添加库存项目”中进行一些定制,在这个定制中我添加了“标记为”列,但即使它已经存在,也不可编辑,如何使它对用户可编辑 附件是定制“添加库存项目”的屏幕截图 所做的事情: 扩展SoSiteStatusSelected DAC 已编辑.aspx并为列添加了标记 将您的字段添加到您的SOOrderStatusSelected DAC扩展中。它必须是未绑定的字段,因为DAC未绑定到表。您可以在事件处理程序中添加进一步的逻辑以持久化到数据库 public

目前我正在acumatica的销售订单和采购订单的“添加库存项目”中进行一些定制,在这个定制中我添加了“标记为”列,但即使它已经存在,也不可编辑,如何使它对用户可编辑

附件是定制“添加库存项目”的屏幕截图

所做的事情:

  • 扩展SoSiteStatusSelected DAC
  • 已编辑.aspx并为列添加了标记

将您的字段添加到您的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 { }
}
公共类SoSiteStatusSelectedText:PXCacheExtension
{
[字符串]
[PXUIField(DisplayName=“标记为”)]
{get;set;}的公共虚拟字符串UsrMarkedFor
公共抽象类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);
     }
public类SOOrderEntryExtension:PXGraphExtension
{
受保护的虚拟空间SOSiteStatusSelected\u RowSelected(PXCache发送方,PXRowSelectedEventArgs e)
{
PXUIFieldAttribute.SetEnabled(发送方,例如行,true);
}
在Acumatica v6.10.0010中针对SalesOrder屏幕进行测试:


将您的字段添加到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 { }
}
公共类SoSiteStatusSelectedText:PXCacheExtension
{
[字符串]
[PXUIField(DisplayName=“标记为”)]
{get;set;}的公共虚拟字符串UsrMarkedFor
公共抽象类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);
     }
public类SOOrderEntryExtension:PXGraphExtension
{
受保护的虚拟空间SOSiteStatusSelected\u RowSelected(PXCache发送方,PXRowSelectedEventArgs e)
{
PXUIFieldAttribute.SetEnabled(发送方,例如行,true);
}
在Acumatica v6.10.0010中针对SalesOrder屏幕进行测试:


深入研究从InsitestUseLookup继承的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);
}
protected virtual void SOSiteStatusSelected\u RowSelected(PXCache发送方、PXRowSelectedEventArgs e、PXRowSelected del)
{
del?.Invoke(发送方,e);
PXUIFieldAttribute.SetEnabled(发送方,例如行,true);
}

将“MyExtension”替换为类扩展名,将“MyField”替换为字段名标记。

深入研究从InsitestUseLookup继承的SOSiteStatusLookup,您会发现“OnRowSelected”正在禁用除“Selected”和“QtySelected”列之外的所有字段。若要覆盖此项,请尝试将以下内容添加到SOOrderEn中尝试对要添加到此视图的任何字段进行图形扩展,使其可从扩展名编辑

protected virtual void SOSiteStatusSelected_RowSelected(PXCache sender, PXRowSelectedEventArgs e, PXRowSelected del)
{
    del?.Invoke(sender, e);         

    PXUIFieldAttribute.SetEnabled<MyExtension.MyField>(sender, e.Row, true);
}
protected virtual void SOSiteStatusSelected\u RowSelected(PXCache发送方、PXRowSelectedEventArgs e、PXRowSelected del)
{
del?.Invoke(发送方,e);
PXUIFieldAttribute.SetEnabled(发送方,例如行,true);
}
将“MyExtension”替换为类扩展名,将“MyField”替换为字段名的标记。

我收到一个错误“Object必须是string类型的”,这是在我从marked for screen为选择器进行标记之后。我试图将数据类型更改为string,但错误仍然存在。我收到一个错误“Object必须是string类型的”,这是在我从marked for screen为选择器标记之后。我试图将数据类型更改为string,但错误仍然发生。