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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.09.2010, 00:40   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Как глобально отключить автоопределение ширины столбца = autoSizeColumns(false) ?
Собственно сабж.
Есть ли возможность глобально отключить эту новую фичу?
Что-то ужасает меня то количество форм, в которых надо отключать эту фигню...

См. также
emeadaxsupport: Forms with a high number of records take a significant time to show
__________________
полезное на axForum, github, vk, coub.
Старый 13.09.2010, 09:43   #2  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Если количество форм превышает 50, то легче смириться, оставить как есть, считать "новой фичей" и начинать привыкать.

Георгий
Старый 13.09.2010, 09:46   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,932 / 3227 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Можно написать код в sysSetupFormRun, в котором перебирать все контролы и если попался грид то отключать. У нас сделали - вроде работает.
За это сообщение автора поблагодарили: mazzy (2).
Старый 13.09.2010, 10:09   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от George Nordic Посмотреть сообщение
Если количество форм превышает 50, то легче смириться, оставить как есть, считать "новой фичей" и начинать привыкать.
Ну... Я так и делаю.
Только реально тормозит на большом количестве записей.
Из-за локализации и модификаций пришлось увеличить буфер. А с увеличенным буфером эта новая фича непотребно долго работает.

Я конечно вырубил вручную на SysTableBrowser, складских и финансовых проводках, на InventSettlement.
Смотрю в список таблиц, где еще предстоит, и мне становится плохо от этого количества бездумных модификаций...

Цитата:
Сообщение от Logger Посмотреть сообщение
Можно написать код в sysSetupFormRun, в котором перебирать все контролы и если попался грид то отключать. У нас сделали - вроде работает.
А на формах с большим количеством контролов не тормозит?
На тех же заказах?
Я конечно понимаю, что можно некоторые формы вынести в отдельный switch... Но как-то не хочется.
__________________
полезное на axForum, github, vk, coub.
Старый 13.09.2010, 17:05   #5  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,932 / 3227 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от mazzy Посмотреть сообщение
Только реально тормозит на большом количестве записей.
Из-за локализации и модификаций пришлось увеличить буфер. А с увеличенным буфером эта новая фича непотребно долго работает.
Что за буфер ?
Старый 13.09.2010, 21:42   #6  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
Цитата:
Сообщение от Logger Посмотреть сообщение
Можно написать код в sysSetupFormRun, в котором перебирать все контролы и если попался грид то отключать. У нас сделали - вроде работает.
Ну в общем тоже сделал.
Во вложении измененный SysSetupFormRun из RU5

если лень импортировать, то
X++:
private void autoSizeColumns(boolean _autoSizeColumns)
{
    void traverse(Object _parent)
    {
        int         cnt = _parent.controlCount();
        Object      child;
        int         i;
        ;
        if (_parent.handle() == classnum(FormGridControl))
        {
            _parent.autoSizeColumns(_autoSizeColumns);
        }
        else
        {
            for (i = 1; i <= cnt; i++)
            {
                child = _parent.controlNum(i);

                if (child.isContainer())
                {
                    traverse(child);
                }
            }
        }
    }
    traverse(this.design());
}
X++:
public void init()
{
    int a;
    // <GEEU>
    this.raiseEvent_W(methodstr(FormRunListener_W, beforeInit));
    // </GEEU>
    super();
    SysSecurityFormSetup::loadSecurity(this);
    this.dimensionFieldCtrls();
    this.inventStorageDimFieldCtrls();

    this.autoSizeColumns(false);

    if (this.isWorkflowEnabled())
    {
        workflowControls = SysWorkflowFormControls::construct(this);
        workflowControls.initControls();
    }
    // <GEEU>
    this.raiseEvent_W(methodstr(FormRunListener_W, afterInit));
    // </GEEU>
}
Малость (не более 0,1 сек) притормаживает открытие формы в зависимости от количества элементов на ней.
Вложения
Тип файла: xpo Class_SysSetupFormRun.xpo (10.8 Кб, 299 просмотров)
За это сообщение автора поблагодарили: mazzy (6), BOAL (5), Yegor (2), sukhanchik (8), Logger (5), Daiver (1), Link (1), ivas (2), Geo (2).
Старый 13.02.2011, 18:23   #7  
Daiver is offline
Daiver
Участник
Самостоятельные клиенты AX
 
177 / 44 (2) +++
Регистрация: 19.07.2005
Адрес: Москва
! "Не все йогурты одинаково полезны" :(
Цитата:
Сообщение от db Посмотреть сообщение
Ну в общем тоже сделал.
Во вложении измененный SysSetupFormRun из RU5
....
Малость (не более 0,1 сек) притормаживает открытие формы в зависимости от количества элементов на ней.
Если использовать данную модификацию, действительно немного быстрее открывается форма. Но попробуйте теперь создать запись например в Управление запасами\Журналы\Проводки по номенклатуре\Проводка, что при этом происходит со столбцами грида и их заголовками? Все успешно разъезжается. Не красиво как-то получается. Такое впечатление что для создаваемой строки отрабатывает свойство autoSizeColumns(true).
Если отредактировать ширину какого либо столбца руками, чтобы система запомнила настройки формы, то такого глюка не возникает.

Последний раз редактировалось Daiver; 13.02.2011 в 18:31.
Старый 13.02.2011, 20:16   #8  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Цитата:
Сообщение от Daiver Посмотреть сообщение
Если использовать данную модификацию, действительно немного быстрее открывается форма. Но попробуйте теперь создать запись например в Управление запасами\Журналы\Проводки по номенклатуре\Проводка, что при этом происходит со столбцами грида и их заголовками? Все успешно разъезжается. Не красиво как-то получается. Такое впечатление что для создаваемой строки отрабатывает свойство autoSizeColumns(true).
Если отредактировать ширину какого либо столбца руками, чтобы система запомнила настройки формы, то такого глюка не возникает.
Такое поведение есть и в совсем стандартной AX без модификаций. К сожалению, явной последовательности действий не нашел. Бывает, хоть и редко, практически в любой форме с гридом.
__________________
Ivanhoe as is..
Старый 13.09.2010, 10:19   #9  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,932 / 3227 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Не замерял тормоза. Так как активно не работаю пока в 2009-й.
В 3-ке подобные переборы всех контролов не тормозили точно.
Старый 13.09.2010, 11:00   #10  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,907 / 5717 (196) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Может попробовать переопределить метод init() в sysSetupFormRun ? Можно там super() вызвать, а потом написать рекурсивный перебор контролов, который всем гридам поставит autoSizeColumns(false). Код рекурсивного перебора можно позаимствовать в sysSetupForm.formControlTreeBuild().
За это сообщение автора поблагодарили: mazzy (2).
Старый 13.09.2010, 18:25   #12  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,907 / 5717 (196) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Обрати внимание: Первые два сообщения - про размер буфера курсора (грубо говоря), который устанавливается в конфигураторе сервера. Последнее сообщение - про совсем другой буфер (максимальный объем переменных сессии).Начиная с 4ки можно запретить одной сессии съедать под переменные (как я понимаю - вполне себе пользовательские переменные типа больших mapов или строк) более чем некоторый объем памяти. По моему опыту - при превышении этого объема в 2009ой версии сервер регулярно тупо падает по exception (хотя по логике вещей должен был бы прибивать твою сессию).
На мой взгляд - к твоей проблеме имеет отношение только буфер курсора.
За это сообщение автора поблагодарили: mazzy (2), Logger (2).
Старый 13.09.2010, 19:21   #13  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,932 / 3227 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от fed Посмотреть сообщение
По моему опыту - при превышении этого объема в 2009ой версии сервер регулярно тупо падает по exception (хотя по логике вещей должен был бы прибивать твою сессию).
Опаньки...
А 3-ка как себя вела в таких случаях ? Pointer fedj выдавала ?
Старый 13.09.2010, 19:27   #14  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,907 / 5717 (196) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от Logger Посмотреть сообщение
Опаньки...
А 3-ка как себя вела в таких случаях ? Pointer fedj выдавала ?
В трешке этой настройки просто не было. А 4ку по моему никто в России (да и в мире) никто толком неповнедрял, так что особой статистики по падениям не набралось. А в 2009ой когда мы поддержку запросили - поддержка результатам анализа крэшдампа не удивилась нисколько, так что похоже что это типичная ситуация....
Старый 13.09.2010, 22:01   #15  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,932 / 3227 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от fed Посмотреть сообщение
В трешке этой настройки просто не было.
Имел в виду - при сравнимом объеме используемой под переменные памяти. Помнится были глюки при разноске больших журналов основных средств. Это тот случай ?
Старый 13.09.2010, 22:53   #16  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1238 (44) ++++++++
Регистрация: 11.04.2008
А почему не отключить это св-во во всех формах, пробежавшись по ним джобом?
За это сообщение автора поблагодарили: mazzy (2).
Старый 13.09.2010, 22:57   #17  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
Цитата:
Сообщение от DSPIC Посмотреть сообщение
А почему не отключить это св-во во всех формах, пробежавшись по ним джобом?
вы желаете видеть почти все формы в usr (ну или другом вашем любимом) слое со всеми вытекающими из этого радостями последующей жизни?
Старый 13.09.2010, 23:08   #18  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от db Посмотреть сообщение
вы желаете видеть почти все формы в usr (ну или другом вашем любимом) слое со всеми вытекающими из этого радостями последующей жизни?
не хотелось бы. но ведь альтернатива - все равно иметь формы в usr, но с измененным init().
изменения в свойствах гораздо легче в дальнейшем апгрейдить, нежели изменения в методах
__________________
полезное на axForum, github, vk, coub.
Старый 13.09.2010, 23:13   #19  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,932 / 3227 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от mazzy Посмотреть сообщение
...но ведь альтернатива - все равно иметь формы в usr, но с измененным init().
Совсем не обязательно. Код на sysSetupFormRun.init() можно сделать совсем хитрым, чтобы реагировал только на определенные формы и нужные гриды доставал из дизайна сразу по имени, не перебирая всех контролов. Тогда форма не переезжает на usr-слой.
Старый 13.09.2010, 23:18   #20  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
не хотелось бы. но ведь альтернатива - все равно иметь формы в usr, но с измененным init().
изменения в свойствах гораздо легче в дальнейшем апгрейдить, нежели изменения в методах
Цитата:
Сообщение от Logger Посмотреть сообщение
Совсем не обязательно. Код на sysSetupFormRun.init() можно сделать совсем хитрым, чтобы реагировал только на определенные формы и нужные гриды доставал из дизайна сразу по имени, не перебирая всех контролов. Тогда форма не переезжает на usr-слой.
ребята, травы отсыпьте
этот код не влияет на формы, они никуда не переезжают и никак (с точки зрения AOT) не изменяются
SysSetupFormRun это класс. Внесенные в него несколько строчек отрубают обсуждаемую фичу нафиг по всей системе
Теги
ax2009, grid, syssetupformrun, грид, законченный пример, полезное, производительность, ширина

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
findValue = false valentino DAX: Программирование 5 19.11.2009 11:36
Отчеты семейства "Оборотно-сальдовая ведомость", "Акт сверки" и прочие (RCash*) с ListView перед отчетом - настройка ширины столбцов Maximin DAX: Функционал 5 17.04.2009 15:10
Сергей Герасимов: Как отключить функциональность суммовых разниц Blog bot DAX Blogs 16 21.11.2008 17:12
Формат столбца при вставке через буфер breakpoint DAX: Программирование 11 23.05.2008 10:35
closeDocument(boolean _save = false, int _workBook = 1) Daido DAX: Программирование 1 03.11.2007 09:58

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

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

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