#acumatica
#acumatica
Вопрос:
У меня есть настройка, в которой я добавляю селектор в поле сетки, в котором есть поле описания следующим образом:
[PXSelector(typeof(Search<EPEmployee.bAccountID,
Where<EPEmployee.status, Equal<SetupTypes.active>>>),
typeof(EPEmployee.acctCD),
typeof(EPEmployee.acctName),
SubstituteKey = typeof(EPEmployee.acctCD),
DescriptionField = typeof(EPEmployee.acctName))]
Моя проблема в том, что в поле есть поле описания (в данном случае «Имя сотрудника»), которое добавляется автоматически, но я не могу найти способ изменить отображаемое имя этого поля.
Поскольку у меня есть другое поле, которое использует тот же поиск сотрудника, оба они имеют одинаковое поле описания «Имя сотрудника», поэтому у меня нет способа узнать, какое описание соответствует какому полю селектора, если я не выберу значение и не увижу, что описание отображается в соответствующем поле «Имя сотрудника».
Есть ли способ изменить отображаемое имя этого поля описания? Я пробовал CacheAttached и событие RowSelected с атрибутом PXUIFieldAttribute.SetDisplayName, но, похоже, ничего не работает .. кажется, что ‘field_description’ — это автоматически добавляемое поле, которое нигде не существует в DAC, чтобы иметь возможность изменять отображаемое имя.
Ответ №1:
Согласно поддержке Acumatica, единственный способ, которым это можно сделать, заключается в следующем:
Единственный способ, который, по-видимому, работает, — это иметь два разных ЦАП, которые являются проекциями на ЦАП EPEmployee, и использовать каждый из них в отдельном атрибуте селектора.
Например:
[PXProjection(typeof(EPEmployee))]
public class EPEmployeeTest : IBqlTable
{
#region BAccountID
...
#endregion
#region AcctCD
...
#endregion
public abstract class acctName : PX.Data.BQL.BqlString.Field<acctName> { }
[PXDBString(60, IsUnicode = true, BqlField=typeof(EPEmployee.acctName))]
[PXUIField(DisplayName = "Employee Name New Label", Enabled = false, Visibility = PXUIVisibility.SelectorVisible)]
public override string AcctName{get; set;}
}