У меня есть таблица типов тарифов, в которой есть поле селектора, отображающее все типы тарифов.Я хотел отфильтровать идентификатор тарифа и тип утилиты, чтобы избежать дубликатов в сетке.
Проще говоря, в сетке должен быть только 1 тип тарифа для каждого типа, который будет отражен в сетке., Если я уже выбрал тип тарифа «Мощность», тогда все типы тарифов мощности не должны выбираться в поле селектора, если я не удалил текущий тип тарифа «Мощность» в сетке, тогда я снова смогу выбрать другой тип тарифа.
Я пытался использовать PXRestrictor для решения своей проблемы
[PXDBInt]
[PXDefault()]
[PXUIField(DisplayName = "Rate ID")]
[PXSelector(typeof(Search<RERateTable.rateID>),
typeof(RERateTable.rateID),
typeof(RERateTable.refNbr),
typeof(RERateTable.rateName),
typeof(RERateTable.utilityType),
SubstituteKey = typeof(RERateTable.refNbr),
DescriptionField = typeof(RERateTable.rateName))]
[PXRestrictor(typeof(Where<RERateTable.utilityType,
NotIn2<Search<RERateTable.utilityType,
Where<RERateTable.rateID,
Equal<Current<REPropertyRateDetail.rateID>>>>>>), REMessages.UtilityTypeDuplicateException)]
public virtual int? RateID { get; set; }
public abstract class rateID : IBqlField { }
Проблема, с которой я столкнулся при таком подходе, заключается в том, что в поле селектора больше нет записей, которые визуализируются.
Я предпринимаю другой метод использования NotExists метод
[PXDBInt]
[PXDefault()]
[PXUIField(DisplayName = "Rate ID")]
[PXSelector(typeof(Search<RERateTable.rateID,
Where<NotExists<Select<REPropertyRateDetail,
Where<REPropertyRateDetail.rateID,
Equal<Current<REPropertyRateDetail.rateID>>>>>>>),
typeof(RERateTable.rateID),
typeof(RERateTable.refNbr),
typeof(RERateTable.rateName),
typeof(RERateTable.utilityType),
SubstituteKey = typeof(RERateTable.refNbr),
DescriptionField = typeof(RERateTable.rateName))]
public virtual int? RateID { get; set; }
public abstract class rateID : IBqlField { }
В этом подходе я также столкнулся с той же проблемой при использовании подхода PXRestrictor, нет записейотображается на моем поле выбора.
Надеемся на ваши ответы / предложения.Большое вам спасибо.