![]() |
#15 |
Участник
|
Кажется, понял причину проблемы потери фокуса окна поиска в формах "SalesTable" и "PurchTable"
Проблема там вызвана, судя по всему, функциональностью формата адресов доставки, которая используется в локализации Аксапта. Каждый раз, при отрабатывании метода active источника данных формы происходит "перерисовывание" контролов на закладке "Адрес". При этом обновление контролов происходит как в самом заказе, так и в строках заказа (даже если у вас отключен конфигурационный ключ "TradeMultiShipTo" - "Несколько получателей", и закладка "Адрес" в строках - не видима!). Именно в полях адреса имеется контрол "StaticText" который "забирает" фокус. Решить проблему можно таким способом. 1. Если вы не используется функциональность "Несколько получателей" - лучше всего вообще отключить функциональность Адресов для строк заказа (закупки). (или "повесить" туда конфигурационный ключ "TradeMultiShipTo") class FormRunListener_Address_RU X++: public static container addressInfo(Args _args) ... case formstr(SalesTable) : return [[#HeaderDeliveryAddress, tablenum(AddressMap)]]; ... X++: public void pageActivated() { SysSetupFormRun SysSetupFormRun = element; ; SysSetupFormRun.active_W(); super(); } class Info: X++: void formNotify(FormRun formRun,FormNotify event) ... // <GEEU> if (SysDictClass::is(formRun, classnum(SysSetupFormRun))) { // исправить ошибку потери фокуса при открытии окна поиска, перерисовка происходит при активации tabPage if (formRun.name() == FormStr(PurchTable) || formRun.name() == FormStr(SalesTable)) break; // <-- sysSetupFormRun = formRun; sysSetupFormRun.active_W(); } // </GEEU> ... (Так как больше не происходит лишних действий по обновлению полей адреса) |
|
Теги |
ax4.0, sysformsearch, поиск, фокус, форма |
|
|