19.11.2008, 09:44 | #1 |
Участник
|
Складские журналы, перемещение в гриде стрелками курсора
Версия 3.0 sp5
Перемещение стрелками куросора в гриде не работает. При этом перемещение с помощью PgUp и PgDn - работает нетипично - переводит курсор на одну строку. В первом приближении причина кроется в специфическом методе перерисовки меню "Функции" и "Отчеты" (InventJournalFormTable.UpdateQueries_RU()), который приводит к потере фокуса гридом после перемещения. Кто-нибудь поборол эту проблему? Как с этим обстоит дело в четверке? |
|
19.11.2008, 10:18 | #2 |
MCITP
|
Цитата:
Сообщение от coolibin
Версия 3.0 sp5
Перемещение стрелками куросора в гриде не работает. При этом перемещение с помощью PgUp и PgDn - работает нетипично - переводит курсор на одну строку. В первом приближении причина кроется в специфическом методе перерисовки меню "Функции" и "Отчеты" (InventJournalFormTable.UpdateQueries_RU()), который приводит к потере фокуса гридом после перемещения. Кто-нибудь поборол эту проблему? Как с этим обстоит дело в четверке? Да, если добавить в конец этого метода PHP код:
(особо не тестировал, на первый взляд проблем не видно.)
__________________
Zhirenkov Vitaly |
|
19.11.2008, 10:36 | #3 |
Участник
|
При этом неправльно будет работать PgUp-PgDn в остальных закладках - будет все время переключать опять на грид
|
|
19.11.2008, 10:45 | #4 |
MCITP
|
Цитата:
Значит нужно дополнительно проверить где мы и от этого плясать...
__________________
Zhirenkov Vitaly |
|
19.11.2008, 11:22 | #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). |
19.11.2008, 11:32 | #6 |
Аманд
|
В настройках пользователя есть галка "Поведение TAB по умолчанию"
Не уверен, но попробуйте. Цитата:
Тут именно баг в коде
Последний раз редактировалось Vals; 19.11.2008 в 12:32. |
|
19.11.2008, 11:58 | #7 |
MCITP
|
Цитата:
Тут именно баг в коде, из-за которого фокус перемещается постоянно "не в то место".
__________________
Zhirenkov Vitaly |
|
20.11.2008, 16:44 | #8 |
Участник
|
А по-моему достаточно этого
X++: FormControl selectedControl; .... formRun.lock(); [B]selectedControl = formRun.selectedControl();[/B] .... ctrlQueries.enabled(enableCtrlQueries); [B]formRun.selectControl(selectedControl);[/B] formRun.unLock(); ... |
|
20.11.2008, 19:37 | #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. Причина: Лишнего коду ухватил. |
|