Как установить значение ключа по умолчанию и получить существующую запись при первой загрузке? - PullRequest
0 голосов
/ 25 марта 2020

Я создаю новый экран с одной новой таблицей (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

При первой загрузке по умолчанию используется правильный зарегистрированный пользователь, но остальные поля пустые, обрабатывая его как новую запись.

Я нажимаю кнопку отмены, и существующая запись загружается правильно.

enter image description here

Я пытался найти похожий экран Acumatica, но не могу найти пример, где значение ключа по умолчанию вводится при загрузке. Есть ли способ принудительно загрузить существующую запись при первом посещении экрана?

1 Ответ

0 голосов
/ 25 марта 2020

Я не уверен, что это разрешено, нет механизма, который бы выбирал такую ​​запись, насколько мне известно.

Я подозреваю, что формулы также не выполняются по порядку. Убедитесь, что все ключевые поля имеют правильное значение. Запись не может быть выбрана, если одно из ключевых полей принимает нулевое значение при загрузке.

Если инициализация некоторых ключевых полей зависит от инициализации других ключевых полей, украсьте их атрибутом PXDependsOnFields:

[PXDependsOnFields(typeof(employeeID))]
...