在 2020R2 中更改客户屏幕上共享联系人字段的可见性?

Changing visibility of shared Contact field on Customers screen in 2020R2?

我需要将“客户”屏幕(“常规”选项卡)上“主要联系人”->“电子邮件”字段的可见状态设置为隐藏。

在 2020R2 中,我不清楚这些视图是如何实现的。它们具有相同的名称,但工作方式似乎与以前版本的 Acumatica 不同。在我升级的版本 2019R1 中,主要联系人部分不存在。

我创建了这个事件处理程序来隐藏电子邮件字段。但是,它隐藏了 ALL 电子邮件字段:常规选项卡上的两个实例,以及账单和运输选项卡上的实例。我只想隐藏主要联系人分组中的字段。

protected virtual void _(Events.RowSelected<Contact> e)
{
    PXUIFieldAttribute.SetVisible<Contact.eMail>(e.Cache, e.Row, false);
}

有没有办法使用事件处理程序仅针对主要联系人电子邮件字段?检查该字段时,视图名称为:PrimaryContactCurrent。 CodeRepository\CustomerMaint.cs 中似乎不存在此视图,因此我不确定如何使用事件处理程序定位它。

在 20R2 中,联系人管理的逻辑位于单独的图形扩展 CRPrimaryContactGraphExt 中,PrimaryContactCurrent 在那里定义。

但是,我认为这不是您所需要的。您在 RowSelected 事件的正确轨道上。您只需要添加一个条件来隐藏唯一需要的字段。

protected virtual void _(Events.RowSelected<Contact> e)
{
  if(e.Row?.ContactID==Base.BAccount.Current?.PrimaryContactID)
    PXUIFieldAttribute.SetVisible<Contact.eMail>(e.Cache, e.Row, false);
}