|
|
#7 |
|
Снова балуюсь косаптой :)
|
Затем, что бараноподобные юзверы, как только видят доступное для ввода поле, скажем, значимый код номенклатуры - тут же лезут руками заполнять его той номенклатурой которую они ХОТЯТ, хотят видеть в данной строке (заявке, накладной и тп)! Будь то новая номенклатура или уже занесенная в справочник! Причем делают это ПОЧТИ ВСЕ.
Понятное дело, проблема снимается после 2-х минут обьяснений... но руководство убеждено, что система должна быть НАСТОЛЬКО интуитивно-понятной, защищенной от дурака и лакированной, что и без этих двухминутных разьяснений все должны сразу "сесть и работать". Без всякого обучения! Так что системное сообщение о том что "запись не найдена в связанной таблице" - не спасает.Проблема решается на самом деле просто. Перекрывается метод TextChanged() контрола. Допустим, некая таблица Request имеет поле ItemId с дататипом ItemId. Тогда код этого метода будет выглядеть так: X++: public void textChange() { str xTxt; ; xTxt = this.text(); if (xTxt) { element.lock(); if (Request) { this.text(Request.ItemId); } info("Ввод нового товара в этом поле не предусмотрен. Для выбора существующего товара нажмите на кнопку выбора справа от поля."); element.unlock(); } else { super(); } } Данный метод плох тем, что для нормальных пользователей закрывает возможность быстрого поиска (вводя в поле "Ауди*" - чтоб сразу открывался отфильтрованный лукап, ограниченный номенклатурами, начинающимися на слово "Ауди". Но увы... бесплатно ничего не бывает
__________________
Бесты и регарды! |
|
|
|
| За это сообщение автора поблагодарили: kashperuk (3), alex55 (1). | |