У меня есть событие FieldUpdated, которое заполняет некоторые другие поля:
protected virtual void _(Events.FieldUpdated<EMPTimeEntries, EMPTimeEntries.employeeID> e)
{
EMPTimeEntries row = e.Row;
if (row.EmployeeID != null)
{
EPEmployee employeeCard = PXSelectorAttribute.Select<EMPTimeEntries.employeeID>(e.Cache, row) as EPEmployee;
row.EmployeeName = employeeCard.AcctName;
row.ClockTime = PX.Common.PXTimeZoneInfo.Now;
}
}
EmployeeID, EmployeeName и ClockTime - единственные поля на экране, поэтому, как только это событие будет запущено, я бы хотел чтобы экран сохранил запись и переместился на новую строку в поле employeeID, готовом для получения записи в следующий раз.
Я пробовал такие вещи, как Actions.PressSave () и Persist () для сохраняющей части , но безрезультатно. Мои мысли о добавлении новой строки были:
EMPTimeEntries newRow = new EMPTimeEntries();
TimeEntries.Insert(newRow);
Опять безуспешно ...
Идея состоит в том, чтобы просто набрать / отсканировать вкладку EmployeeID и ничего больше. Это должен быть экран часов времени, на котором люди сканируют. Как только происходит сканирование, вводится идентификатор сотрудника, автоматически заполняет два других поля (имя и время) и готов к следующему сканированию.
Любая помощь с благодарностью!