Acumatica mobile - смена поля не происходит при нажатии на кнопку - PullRequest
0 голосов
/ 12 декабря 2018

На странице моего мобильного приложения у меня есть простое текстовое поле для местоположения.Под полем находится кнопка.Когда кнопка нажимается, она перемещается в новый контейнер, и предполагается, что значение из этого текстового поля будет скопировано в другое текстовое поле в контейнере.Если я введу значение в текстовое поле, щелкните вне поля, а затем нажмите кнопку, изменения будут внесены в кэш, и я смогу получить доступ к новому значению в моем коде.Однако, если я ввожу значение в текстовое поле и нажимаю кнопку, не щелкая из текстового поля, изменение не сохраняется в кэше, поэтому я не могу получить доступ к новому значению.

Странная вещьзаключается в том, что если я имитирую эти шаги в веб-браузере, несмотря ни на что, изменение всегда сохраняется в кеше.

У меня для свойства CommitChanges установлено значение True для кнопки и поля в Интернете.страницы, но это невозможно на странице мобильного приложения.

Можно ли каким-либо образом заставить страницу зафиксировать изменения для этого поля при запуске действия?Я попытался обновить представление и вызвать событие поля updated, но ни одно из них не сработало.

Вот как мое действие объявляется в моем файле msd.

add recordAction "RedirectLocationMobileFrom"{
    behavior = Record
    Redirect = True
    RedirectToContainer = "CreateNewAddress"
    DisplayName = "Create Location from this address"
   }

1 Ответ

0 голосов
/ 13 декабря 2018

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

Это описание ошибки, вызванной обработчиками событий пользовательского интерфейса.Я заметил это и на веб-сайте браузера для настольных компьютеров.Действия могут сойти с рук, явно вызвав Save, прежде чем делать свое дело.К сожалению, я не знаю обходного пути для мобильных устройств, рассмотрите возможность заполнения отчета об ошибке.

Правильное исправление - лучшая обработка событий фокуса.Существует только один элемент пользовательского интерфейса, ориентированный на все время.Когда вы даете фокус на другой элемент, в данный момент он получает потерянный фокус.Это событие, которое запускает CommitChanges.Я подозреваю, что ошибка в том, что нажатие на кнопку не удаляет фокус из текстового поля, поэтому никогда не вызывает событие потерянного фокуса и предотвращает CommmitChanges.

...