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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.02.2010, 11:38   #1  
Silphidae is offline
Silphidae
Участник
 
96 / 15 (1) ++
Регистрация: 17.11.2008
Выпадающий список с возможностью правки
Добрый день.
Подскажите, пожалуйста, каким образом в АХ можно организовать выпадающий список с возможностью правки.
Подробнее:
Есть таблица Предмет-Цвет, она помещена на Грид на форме. Поля этой таблицы связаны по типам с таблицами Предметов и Цветов. Т.о. получается, что когда я выбираю в гриде поле Предмет (например шар), то в поле Цвет мне дается на выбор любое значение из таблицы Цветов (например синий, красный и тп). Но если я ввожу с клавиатуры что-нибудь в это поле (чего нет в таблице Цветов), то выдается ошибка, что такого значения не найдено в связанной таблице. Есть ли возможность при вводе таких неизвестных значений сразу же добавлять их в связанную таблицу Цветов, вместо того, чтобы осуществлять проверку на правильность ввода?
Старый 26.02.2010, 11:44   #2  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Как Вы предполагаете различать реальный ввод нового значения от синтаксической ошибки?

Вы действительно хотите добавить новое значение именно в список (справочник), а не просто разрешить ввести в поле значение, которого нет в списке?

На всякий случай: Пользователи НИКОГДА не читают предупреждающих диалогов. Поэтому выдача предупреждающее сообщение с кнопкам Да/Нет - приведет лишь к тому, что пользователи всегда будут жать "Да" и Вы будете заниматься тем, что вручную вычищать базу от ошибочно введенных значений.
За это сообщение автора поблагодарили: Silphidae (1).
Старый 26.02.2010, 11:51   #3  
Silphidae is offline
Silphidae
Участник
 
96 / 15 (1) ++
Регистрация: 17.11.2008
Цитата:
Как Вы предполагаете различать реальный ввод нового значения от синтаксической ошибки?
Никак, будем считать, что пользователь не ошибается.
Цитата:
Вы действительно хотите добавить новое значение именно в список (справочник), а не просто разрешить ввести в поле значение, которого нет в списке?
Буду благодарен, если Вы опишите как сделать оба варианта. Возможно, хватит и простого разрешения на ввод.
Старый 26.02.2010, 12:46   #4  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Да, вобщем-то, решение очевидное. Придется делать много мелких "телодвижений" и организовывать "закат Солнца вручную"

1. Необходимо разорвать связь (Relation) между полем таблицы и таблицей - источником выпадающего списка, поскольку именно эта связь устанавливает запрет на ввод значений, которых нет в связанной таблице.

Другими словами, поле таблицы должно быть создано на базе EDT, который не имеет Relation на таблицы-источник списка. Соответственно, никакой родительский EDT также не должен иметь этого Relation.

Просто у Relation на EDT нет аналога свойства Validate для Relation у собственно таблицы. Нет возможности отключить проверку. Можно только разорвать связь.

2. Поскольку Relation не существует, то в объекте формы необходимо "вручную" организовать выпадающий список.

2.1 Установить значение свойства LookupButton = always - для отображения кнопки со стрелкой
2.2. Перекрыть метод Lookup чтобы организовать вызов выпадающего списка из нужной таблицы. Примеров как это сделать полно на данном форуме

Ну, а запись введенного значения в таблицу-список можно сделать в разных местах. Например, перекрыть метод Modified объекта ввода. Или в методe Write на таблице-источнике формы.

Вобщем, в любом методе, сохраняющем введенное значение, выполняешь поиск введенного значения в таблице-списке. Если такого значения нет, то создаешь запись в списке.

Только, повторюсь, это все интересно с точки зрения самообразования, но совершенно бессмысленно с точки зрения работы приложения. Вы не только не решите поставленных задач, но и создадите в организации кучу проблем по постоянной чистке базы от всякого хлама. Именно Вы и будете этим заниматься...
За это сообщение автора поблагодарили: EAlex (1).
Старый 26.02.2010, 13:47   #5  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Посмотрите, как сделан текст проводки в журналах ГК. Может вам такой подход подойдет?
__________________
Ivanhoe as is..
За это сообщение автора поблагодарили: Silphidae (1).
Старый 26.02.2010, 13:57   #6  
Silphidae is offline
Silphidae
Участник
 
96 / 15 (1) ++
Регистрация: 17.11.2008
Спасибо большое, Владимир.
Солнце закатилось успешно.
По поводу чистки хлама - это будет дополнительная информация по номенклатурам, сродни описаниям, что туда напишет пользователь - не критично.
Теги
lookup, выпадающий список

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Выпадающий список. Реестр платежных поручений. Poleax DAX: Программирование 10 03.09.2008 17:40
Как работает список рассылки? fialka DAX: Функционал 2 26.06.2008 09:15
Дополнительная аналитика- выпадающий список fialka DAX: Программирование 2 19.06.2007 17:19
Список полей таблиц на базе конкретного EDT Владимир Максимов DAX: Программирование 10 06.10.2004 14:45
Выпадающий список и его фильтрация Sirius DAX: Программирование 2 23.04.2004 11:14

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:59.