AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.07.2017, 06:29   #1  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
305 / 137 (5) +++++
Регистрация: 21.04.2008
? Скроллинг мышью
Уважаемые коллеги, прошу помощи. Имеем AX 3.0, лукап на базе собственной формы с 2 закладками, гриды закладок идентичны, один и тот-же датасоурс, различаются лишь полем-признаком которое и разделяет данные таблицы на те, что признак = Да и те, что признак = Нет
X++:
void run()
{
    FormStringControl   callerControl   = SysTableLookup::getCallerStringControl(element.args());
    Table     tableFind;
    ;

    super();

    if (callerControl.text())
    {
        select firstonly
            tableFind
                where tableFind.FieldId like callerControl.text();

        if (tableFind)
        {
            if (tableFind.Sign == NoYes::Yes)
                Tab.tab(2);
            else
                Tab.tab(1);

            Table_ds.findRecord(tableFind);
        }
    }

    canSelect = true;
}
Проблема: если лукап открывается со значением из первой закладки, то строка позиционируется на нужное значение, но нет возможности сразу скроллить грид мышью. При открытии со значением из второй закладки всё работает, сразу можно скроллить мышью вверх-вниз.
Можно добиться чтобы скроллинг мышью заработал, нажав ПКМ и потом ткнув в свободный участок формы(не грид, чтобы лукап не закрылся)

PS: Насколько я понимаю эта проблема вообще у любой формы. Открываю форму с большим гридом (больше экрана), чтобы активировались полосы прокрутки, и скролл мышью также не работает, перехожу с закладки на закладку и обратно - скроллится.

PPS: оказывается еще можно активировать нажатием ЛКМ на треугольник(стрелочку) текущей записи, но до этого ни один пользователь не додумается...

Последний раз редактировалось Player1; 26.07.2017 в 07:58.
Старый 26.07.2017, 15:47   #2  
AlGol is offline
AlGol
Участник
 
277 / 93 (4) ++++
Регистрация: 24.12.2001
Адрес: Тверь.
Вроде можно было еще на скролл-бар нажимать, если он виден. Тоже помогало.
__________________
Ален ноби, ностра алис.
Что означает - если один человек построил, другой завсегда разобрать может.
Старый 26.07.2017, 18:06   #3  
bitter is offline
bitter
Участник
 
15 / 19 (1) ++
Регистрация: 12.04.2015
А если попробовать костыли при открытии формы в виде принудительного фокуса на форме или перехода сначала на вторую вкладку, а затем на первую?
Старый 27.07.2017, 06:48   #4  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
305 / 137 (5) +++++
Регистрация: 21.04.2008
Цитата:
Сообщение от bitter Посмотреть сообщение
А если попробовать костыли при открытии формы в виде принудительного фокуса на форме или перехода сначала на вторую вкладку, а затем на первую?
Буду рад любой помощи, всякие setFocus пробовал, результата нет, но быть может просто не в том порядке делал или не в нужном месте вызывал. Программный переход с закладки на закладку думаю оставить напоследок, не хочется этого делать, т.к. наверняка это визуально будет заметно
Старый 27.07.2017, 12:41   #5  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
642 / 347 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от Player1 Посмотреть сообщение
Буду рад любой помощи, всякие setFocus пробовал, результата нет, но быть может просто не в том порядке делал или не в нужном месте вызывал. Программный переход с закладки на закладку думаю оставить напоследок, не хочется этого делать, т.к. наверняка это визуально будет заметно
Не уверен, что получится, но может быть есть смысл поднять вызов метода findRecord() до переключения вкладки, т.к. он влияет на позиционирование записи в датасорсе.
X++:
void run()
{
    FormStringControl   callerControl   = SysTableLookup::getCallerStringControl(element.args());
    Table     tableFind;
    ;

    super();

    if (callerControl.text())
    {
        select firstonly
            tableFind
                where tableFind.FieldId like callerControl.text();

        if (tableFind)
        {
            Table_ds.findRecord(tableFind);

            if (tableFind.Sign == NoYes::Yes)
                Tab.tab(2);
            else
                Tab.tab(1);
        }
    }

    canSelect = true;
}
__________________
// no comments
Старый 27.07.2017, 12:55   #6  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Цитата:
Сообщение от Player1 Посмотреть сообщение
PS: Насколько я понимаю эта проблема вообще у любой формы. Открываю форму с большим гридом (больше экрана), чтобы активировались полосы прокрутки, и скролл мышью также не работает, перехожу с закладки на закладку и обратно - скроллится.
Очень странно, не помню таких глюков на AX 3.0. Можно посмотреть на класс SysSetupFormRun не делались ли там какие модификации, которые могли повлиять на такой эффект.
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Баг формы в АХ связанный с колесом прокрутки мышью Alexius DAX: Прочие вопросы 6 07.10.2009 15:31
Скроллинг и ActiveX Swetik DAX: Функционал 3 11.06.2003 14:26
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:22.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.