Как вы узнали, изменения в расширении кэша применяются ко всем экранам, использующим этот ЦАП. Существует еще один механизм расширения, применяемый для каждого графа, называемый CacheAttached, который применяется после расширения кэша.
Чтобы использовать его в первую очередь, вам необходимо определить график экрана, который вы хотите настроить, и поле ЦАП, которое вы хотите изменить. Для этого вы можете использовать функцию проверки элементов. В этом примере график для экрана Customer является «CustomerMaint», а поле DAC - «Customer.acctName»:
![enter image description here](https://i.stack.imgur.com/2M2qM.png)
Получив эту информацию, вы можете создать расширение для этого графика и расширить поле DAC внутри него. Расширения полей DAC, определенные на графике с использованием метода CacheAttached, будут применяться только к экранам, использующим этот график:
public class CustomerMaint_Extension : PXGraphExtension<CustomerMaint>
{
[PXMergeAttributes(Method = MergeMethod.Merge)]
[PXUIField(DisplayName = "Display Name For Customers Graph")]
public virtual void Customer_AcctName_CacheAttached(PXCache sender)
{
}
}
Соглашение о прототипе для расширений CacheAttached:
void DAC_DACField_CacheAttached(PXCache sender) { }
Вы меняете DAC и DACField на поле, на которое вы нацеливаетесь. Определение метода (тело) должно оставаться пустым. Атрибуты, украшающие метод CacheAttached, будут применяться к настраиваемому полю. С атрибутом PXMerge вы можете настроить способ применения расширения CacheAttached, он позволяет объединять новые атрибуты расширения поля с базовыми или полностью заменять базовые атрибуты.
Для получения более подробной информации смотрите этот пост в блоге:
http://asiablog.acumatica.com/2017/01/append-and-replace-of-dacs-attributes.html