Я создаю новый экран с одной новой таблицей (AMClockItem), где ключевым полем является идентификатор сотрудника. Я хочу, чтобы по умолчанию в систему вошел пользовательский идентификатор сотрудника. Если для сотрудника нет записи AMClockItem, она будет обрабатываться как новая запись, но если для сотрудника существует существующая запись, я хочу, чтобы она извлекла существующую запись. Это все работает отлично, КРОМЕ самого первого раза загрузки экрана. Пользователь вошел в систему по умолчанию правильно, но он не получает существующую запись. Если я нажму «Отмена» или изменю другое поле, запись будет восстановлена правильно.
Мой график
public PXSelect<AMClockItem, Where<AMClockItem.employeeID, Equal<Optional<AMClockItem.employeeID>>>> header;
DA C:
public abstract class employeeID : PX.Data.BQL.BqlInt.Field<employeeID> { }
protected Int32? _EmployeeID;
[PXDBInt(IsKey = true)]
[ProductionEmployeeSelector]
[PXDefault(typeof(Search<EPEmployee.bAccountID,
Where<EPEmployee.userID, Equal<Current<AccessInfo.userID>>>>), PersistingCheck = PXPersistingCheck.Null)]
[PXUIField(DisplayName = "Employee ID")]
public virtual Int32? EmployeeID
{
get
{
return this._EmployeeID;
}
set
{
this._EmployeeID = value;
}
}
#endregion
При первой загрузке по умолчанию используется правильный зарегистрированный пользователь, но остальные поля пустые, обрабатывая его как новую запись.
Я нажимаю кнопку отмены, и существующая запись загружается правильно.
Я пытался найти похожий экран Acumatica, но не могу найти пример, где значение ключа по умолчанию вводится при загрузке. Есть ли способ принудительно загрузить существующую запись при первом посещении экрана?