У меня есть настраиваемое поле в таблице CRActivity, в котором мне нужно сохранить количество записей в связанной таблице.Я пытаюсь установить в поле значение, когда открывается экран CR306030.Пользователь должен иметь возможность переопределить вычисленное число, поэтому я думаю, что мне нужна логика в вычислениях, чтобы проверить, является ли настраиваемое поле> 0, в этом случае не заполняйте настраиваемое поле и предполагайте, что оно уже былозадавать.
Ранее я пытался сделать это в событиях Field_Selecting, но это не работает.Я думаю, что я мог бы использовать атрибут PXFormula.Любые предложения?
Я пытался создать пользовательский атрибут, который близок, но он не будет сохранять значения в БД.Кнопка «Сохранить» позволяет, я могу нажать на нее, и похоже, что она сохраняет, но без игры в кости.Я уверен, что некоторые мелкие детали .....
Вот мой пользовательский атрибут:
public class CFCountIfZeroAttribute : PXIntAttribute
{
public override void FieldSelecting(PXCache cache, PXFieldSelectingEventArgs e)
{
if (e.Row == null)
return;
CRActivity activity = (CRActivity)e.Row;
CRActivityExt activityExt = activity.GetExtension<CRActivityExt>();
if (activityExt.usrCustomField <= 0)
{
int aggregateValue = BQLToFind();
e.ReturnValue = aggregateValue;
cache.SetValue<CRActivityExt.usrCustomField>(e.Row, aggregateValue);
cache.IsDirty = true;
}
}
}
Спасибо!