|
|
#1 |
|
Участник
|
Складские журналы, перемещение в гриде стрелками курсора
Версия 3.0 sp5
Перемещение стрелками куросора в гриде не работает. При этом перемещение с помощью PgUp и PgDn - работает нетипично - переводит курсор на одну строку. В первом приближении причина кроется в специфическом методе перерисовки меню "Функции" и "Отчеты" (InventJournalFormTable.UpdateQueries_RU()), который приводит к потере фокуса гридом после перемещения. Кто-нибудь поборол эту проблему? Как с этим обстоит дело в четверке? |
|
|
|
|
#2 |
|
MCITP
|
Цитата:
Сообщение от coolibin
Версия 3.0 sp5
Перемещение стрелками куросора в гриде не работает. При этом перемещение с помощью PgUp и PgDn - работает нетипично - переводит курсор на одну строку. В первом приближении причина кроется в специфическом методе перерисовки меню "Функции" и "Отчеты" (InventJournalFormTable.UpdateQueries_RU()), который приводит к потере фокуса гридом после перемещения. Кто-нибудь поборол эту проблему? Как с этим обстоит дело в четверке? ![]() Да, если добавить в конец этого метода PHP код:
![]() (особо не тестировал, на первый взляд проблем не видно.)
__________________
Zhirenkov Vitaly |
|
|
|
|
#3 |
|
Участник
|
При этом неправльно будет работать PgUp-PgDn в остальных закладках - будет все время переключать опять на грид
|
|
|
|
|
#4 |
|
MCITP
|
Цитата:
![]() Значит нужно дополнительно проверить где мы и от этого плясать...
__________________
Zhirenkov Vitaly |
|
|
|
|
#5 |
|
Участник
|
Я бы предложил модифицировать в этом методе удаление кнопок
X++: FormControl fc;
FormControl fc2;
...
if ( ! lstCtrlReports.empty())
{
it = new ListIterator(lstCtrlReports);
fc = formRun.selectedControl();
while (it.more())
{
buttonCtrl = it.value();
formRun.design().removeControl(buttonCtrl.id());
it.next();
}
lstCtrlReports = new List(Types::Class);
fc2 = formRun.selectedControl();
if (fc && fc2 != fc)
fc.setFocus();
}
__________________
Axapta v.3.0 sp5 kr2 |
|
|
|
| За это сообщение автора поблагодарили: ZVV (1), Lemming (1), coolibin (1), Dino (0). | |
|
|
#6 |
|
Аманд
|
В настройках пользователя есть галка "Поведение TAB по умолчанию"
Не уверен, но попробуйте. Цитата:
Тут именно баг в коде
Последний раз редактировалось Vals; 19.11.2008 в 12:32. |
|
|
|
|
#7 |
|
MCITP
|
Цитата:
Тут именно баг в коде, из-за которого фокус перемещается постоянно "не в то место".
__________________
Zhirenkov Vitaly |
|
|
|
|
#8 |
|
Участник
|
А по-моему достаточно этого
X++: FormControl selectedControl; .... formRun.lock(); [B]selectedControl = formRun.selectedControl();[/B] .... ctrlQueries.enabled(enableCtrlQueries); [B]formRun.selectControl(selectedControl);[/B] formRun.unLock(); ... |
|
|
|
|
#9 |
|
Member
|
Я так правил в 3.0. Точно работало, даже если это антинаучно
.int active() { int ret; // GLIBS, Bug fix --> FormControl currentFormControl = element.selectedControl(); // GLIBS, Bug fix <-- ; journalFormTable.datasourceActivePre(); ret = super(); // GLIBS, Bug fix --> if (currentFormControl) { currentFormControl.setFocus(); } // GLIBS, Bug fix <-- return ret; }
__________________
С уважением, glibs® Последний раз редактировалось glibs; 20.11.2008 в 19:38. Причина: Лишнего коду ухватил. |
|
|