Вы можете расширить DAC на графике, добавив для этого атрибут PXUIEnabled.
Я обновил свой пример, добавив поле без привязки к данным, которое управляет включением и отключением другого поля.
В расширении DAC SOInvoiceExt у меня есть ...
public class SOInvoiceExt : PXCacheExtension<PX.Objects.SO.SOInvoice>
{
#region UsrExtRefNbrDisabled
[PXBool]
[PXUIField(DisplayName = "ExtRefNbr Disabled?")]
public virtual bool? UsrExtRefNbrDisabled { get; set; }
public abstract class usrExtRefNbrDisabled : PX.Data.BQL.BqlBool.Field<usrExtRefNbrDisabled> { }
#endregion
}
Затем я добавил новое настраиваемое поле на экран.Убедитесь, что вы установили для CommitChanges значение True.
Затем в расширении графика я объединил атрибут PXUIEnabled с событием CachedAttached
[PXUIEnabled(typeof(Where<SOInvoiceExt.usrExtRefNbrDisabled, NotEqual<True>>))]
[PXMergeAttributes(Method = MergeMethod.Merge)]
protected virtual void SOInvoice_ExtRefNbr_CacheAttached(PXCache cache)
{ }
Я смог установить / снять флажок, и он был включен/ отключил поле.
Вот старая запись в блоге на эту тему: https://asiablog.acumatica.com/2016/11/pxuienabled-and-pxuirequired-attributes.html