|
13.04.2012, 18:35 | #1 |
Участник
|
Еще одна бага.Символ * и метод modified(). АХ2009 RU5
Не знаю может быть здесь уже об этом говорилось, но я не слышал и по поиску ничего не нашел.
Предположим, у нас в справочнике складов хранятся такие склады : Склад, Склад-1,Склад-2.Теперь на форме создаем контрол, который ссылается на справочник складов - InventLocationId. Открываем форму и в этом контроле выбираем (можно через лукап) : Склад. Сходим с контрола. Метод modified() отработает. Возвращаемся на наш контрол. В конце добавляем символ : *. Автоматически срабатывает многим не нужный лукап с фильтром на "Склад*". Но мы хотим, чтобы в контроле осталось значение: Склад*, поэтому не трогая лукап просто сходим с контрола. В этом случае метод modified() (как впрочем и validate()) не отработает. Не буду подробно объяснять зачем это нам понадобилось. Скажу кратко : значение контрола мы используем как Range для своих целей. Нам символ * очень в этом помогает. И метод modified() на контроле тоже во всем этом учавствует. Конечно все дело в лукап-е. Если его не выводить все работает как часы. Можно еще проверять символ * перед событием лукап и т.д. Свои костыли и залепухи конечно мы сделали так, чтобы это более менее работало нормально без дискомфорта для пользователей. Мое личное мнение(как и мнение коллеги) это баг.
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
13.04.2012, 21:33 | #2 |
Участник
|
Баг в чём? В том что validate блокирует такое значение?
К сожалению relation на EDT не умеет по другому ... в отличии от relation на таблицах! Чтобы реализовать то что вы хотите нужно использовать расширенный тип данных без связи, а связь настроить на уровне таблицы. Дело в том что на табличном relation есть свойство validate, которое можно установить в No. На самом деле в использовании "не родного" EDT есть смысл ещё и потому, что для хранения нескольких критериев (записанных через запятую) длины стандартного типа данных может попросту не хватить. Тут к месту будет упомянуть свойство ReplaceOnLookup. P.S.: Offtop: так что это не баг, баг это вот это Аксапта ограничивает размер строки-маски в операторе like размером фильтруемого поля Последний раз редактировалось S.Kuskov; 13.04.2012 в 21:43. |
|
|
За это сообщение автора поблагодарили: Pustik (2). |