Цитата:
Сообщение от
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 (для
всех записей на гриде), для второй - снова включит (для
всех), для третей - опять выключит и т.д. И так форма будет дергаться, будто в конвульсиях, пока ее не закроешь (эффект может проявляться в большей или в меньшей степени в зависимости от производительности клиентской машины).