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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.06.2010, 16:44   #1  
Geo is offline
Geo
Участник
Аватар для Geo
 
258 / 47 (2) +++
Регистрация: 04.04.2008
Тормозит грид
Доброго времени суток, уважаемые!

Поискал такую тему, но не нашел; прошу извинить, если окажется, что искал плохо.

Дело в следующем.

Вывел в одном гриде две таблицы (CustPackingSlipJour и CustPackingSlipTrans, отборочные накладные продажи), со связью Inner Join. Записей в каждой под тысячу; строк чуть больше (понятное дело).
Грид помещен на новую вкладку в форме "Журнал отборочных накладных" (CustPackingSlipJournal). Датасорсы созданы новые, только для этого грида.
Всего 22 поля в гриде. Только нормальные поля, без методов. Среди полей есть добавленные нами.

В результате - ЖУТКИЕ ТОРМОЗА.

Грид заполняется уныло-построчно; после прорисовывания всех строк, что помещаются на форму, можно начинать что-то делать - но при этом переход на другую строку клавишей "Вниз" занимает чуть меньше секунды, а прокручивание колеcом мышки становится вообще неоперабельным.

Если удалять поля из грида - начинает работать быстрее, и, после оставления, скажем, всего 4-х полей (по 2 из каждой таблицы) - практически нормально.

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

На другой базе (раза в 2 побольше записей) тот же объект не вызывает уже жутких тормозов, но тоже явно немного подтормаживает, что также лечится вышеописанным образом.

Подскажите, пожалуйста, в чем тут дело и как с этим бороться.


Последний раз редактировалось Geo; 03.06.2010 в 16:48.
Старый 12.04.2011, 20:36   #2  
Geo is offline
Geo
Участник
Аватар для Geo
 
258 / 47 (2) +++
Регистрация: 04.04.2008
Неужели даже не сталкивался с таким никто?

Совершенно четко: грид после открытия работает с большими тормозами, но после любых изменений формы начинает практически летать...

Сделал так: на метод active() датасорса повесил изменение размера одного из полей грида (поле.width()). Заодно пришлось добавить переменную и проверять ее значение в active(), чтобы отрабатывать только один раз (т.к. active() вызывается постоянно).
Теперь при открытии формы строки в гриде появляются с видимой задержкой, но потом ррраз - и всё начинает летать.

Однако выглядит это достаточно топорно. Может, кто-то подскажет лучший способ?
Есть ли такой метод, который бы вызывался уже при открытой форме, но до прорисовки всех строк в гриде?
Пробовал вешать отработку на грид.gotFocus() - но он почему-то вообще не вызывался.
Старый 12.04.2011, 21:04   #3  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Не это?
За это сообщение автора поблагодарили: Geo (2).
Старый 12.04.2011, 22:47   #4  
Geo is offline
Geo
Участник
Аватар для Geo
 
258 / 47 (2) +++
Регистрация: 04.04.2008
Цитата:
Сообщение от oip Посмотреть сообщение
Не это?
Оно Где Вы были 10 месяцев назад?

Большое спасибо
Старый 12.04.2011, 22:56   #5  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
В Бельгии, кажется. Не обратил сначала внимание на дату первого поста. Это вы 10 месяцев с этим вопросом разбирались?
Старый 12.04.2011, 23:38   #6  
Geo is offline
Geo
Участник
Аватар для Geo
 
258 / 47 (2) +++
Регистрация: 04.04.2008
Цитата:
Сообщение от oip Посмотреть сообщение
В Бельгии, кажется. Не обратил сначала внимание на дату первого поста. Это вы 10 месяцев с этим вопросом разбирались?
Рекомендовал пользователям при запуске формы сворачивать ее и снова разворачивать. Это решало проблему, уж не знаю, почему.

(А тема про автоопределение ширины появилась позже моего вопроса, оказывается. Я ее смотрел, но про свой давний вопрос не вспомнил. Отчасти потому, что описанные там симптомы не очень совпадали с моими. А сейчас свежим взглядом глянул - ба! )))
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Фокус Grid (определить под фокусом ли грид) Андрей К. DAX: Программирование 4 26.09.2007 13:34
Тормозит форма складских проводок chel DAX: Администрирование 9 08.08.2005 16:46
display метод тормозит Woland DAX: Программирование 4 28.03.2005 14:49
грид обновляется Natasha DAX: Программирование 1 15.02.2003 12:53
Добавление столбца в грид на PurchQuickQuote Андре DAX: Программирование 1 15.04.2002 10:52

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:30.