Показать сообщение отдельно
Старый 22.09.2011, 21:09   #8  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Pustik Посмотреть сообщение
в зависимости от того заполнено оно или нет, управляли контролом. Что-то типа :
X++:
edit ItemName editItemId(boolean _set,InventTable _data, ItemName _val)
{
    ItemName _ret = _val;

    if (_data.ItemName)
        InventTable_NameAlias.enabled(false);
    else
        InventTable_NameAlias.enabled(true);

    return _ret;
}
Я конечно условно показываю на InventTable для примера. Там была другая своя таблица. И код такой замудреный, логику, вернее смысл которого я так и не понял.
Руки обрывать за такие вещи edit-display-методы дергаются на формах подчас до 6-8 раз в секунду (это легко проверяется), причем при любой перерисовке формы. Изменение доступности контрола тоже ведет к частичной перерисовке, отчего снова могут дергаться display-edit-методы. Представляю, как весело должна работать форма, где хрендцать записей на гриде и несско десятков, а то и за сотню раз в секунду (!!) отрабатывает логика изменения доступности какого-нить контрола...
Цитата:
Сообщение от Pustik Посмотреть сообщение
Буквально недавно, всплыло, что не работает кнопка, в которой просто тупо на методе clicked() висит info('бла-бла-бла'). И опять edit-метод на гриде. Открываешь форму с записями, жмешь кнопку и ни фига. Закрываешь форму выскакивает инфо.
Инфолог отрисовывает окно с сообщениями, как только клиент начинает "простаивать". В свете вышеизложенного из-за постоянного мельтешения display-методов клиент может "шуршать" все время, пока открыта форма, и переходить в режим простоя лишь после ее закрытия.
Цитата:
Сообщение от Pustik Посмотреть сообщение
Кстати кнопочки прокрутки вверх на отчете(о чем я говорил выше) тоже появлялись после закрытия формы..
Возможно, ядро "позволяет" прокручивать отчет вверх тоже лишь во время простоя.

PS. Заметьте, что управление доступностью bound-контрола либо табличного поля влияет на все записи в гриде (хотя в каждый момент активна лишь одна), в то время как display-edit-методы на гриде работают с каждой записью по отдельности. Допустим, в записях на гриде через одну то заполнено ItemName, то пусто. Тогда при отрисовке поля для первой записи приведенный edit-метод отключит доступность NameAlias (для всех записей на гриде), для второй - снова включит (для всех), для третей - опять выключит и т.д. И так форма будет дергаться, будто в конвульсиях, пока ее не закроешь (эффект может проявляться в большей или в меньшей степени в зависимости от производительности клиентской машины).

Последний раз редактировалось gl00mie; 22.09.2011 в 21:18. Причина: PS
За это сообщение автора поблагодарили: Pustik (3), lev (3).