Как сохранить фокус на поле, которое бросило исключение? - PullRequest
1 голос
/ 24 апреля 2020

У меня есть некоторый код проверки для ввода поля (EmployeeID), и когда он не проходит проверку, я e.Отменить предстоящие события и выдать исключение:

    protected virtual void _(Events.FieldUpdating<EMPTimeEntries,EMPTimeEntries.employeeID> e)
    {
        DateTime timeNow = PX.Common.PXTimeZoneInfo.Now;

        timeNow = timeNow.AddMinutes(-5).AddHours(4);

        EMPTimeEntries alreadyScanned = SelectFrom<EMPTimeEntries>.
                                        Where<EMPTimeEntries.employeeID.IsEqual<@P.AsString>.
                                        And<EMPTimeEntries.clockTime.IsGreater<@P.AsDateTime>>>.
                                        View.Select(this, e.NewValue, timeNow);
        if ((alreadyScanned == null))
        {

        }
        else
        {
            e.Cancel = true;
            // Acuminator disable once PX1050 HardcodedStringInLocalizationMethod [Justification]
            throw new PXSetPropertyException<EMPTimeEntries.employeeID>("The Employee has scanned within 5 minutes already!", PXErrorLevel.Error);
        }
    }

Проблема заключается в том, что пользовательский ввод Переходя к следующему полю, я буду прерывать это поведение и продолжать фокусироваться на поле, которое не прошло проверку. Screen view with exception

Как вы видите на картинке выше, employeeID не прошел проверку исключения, и выдается сообщение, но основное внимание уделяется имени сотрудника. ЕСЛИ нажатия клавиш имеют значение 54, и я нажимаю клавишу Tab, я sh, чтобы вкладка не появлялась.

Любая помощь очень ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...