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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.04.2009, 19:03   #1  
plumbum is offline
plumbum
Участник
Соотечественники
 
182 / 86 (3) ++++
Регистрация: 07.12.2007
Адрес: Vienna, AT
Еще (немножко оффтоп, но все же), если признак "правильности" клиента - флаг или enum - добавьте условие по фиксированному полю таблицы.
__________________
http://www.axdevposts.blogspot.com
Пришел, уведел.... отойди, дай другому увидеть!
Старый 22.04.2009, 10:36   #2  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Встряну со своим "пятаком". Пришлось делать нечто подобное для поля диалога(!), где, как известно, ни датасорсов, ни релэйшенов. Использовал подход с controlMethodOverload. Поступил радикально - запер пользователя в контроле после ввода "плохого" значения методом leave, который срабатывает всегда:
X++:
public boolean MyDialogField1_leave()
{
    boolean             ret;
    FormStringControl   me = dialog.formRun().controlCallingMethod();
    MyTable	        table;
    ;	
    ret = me.leave(); // как super

    // далее наш функционал, который должен отрабатывать на событие
    select table where table.Field1 == me.text();

    // если указано непустое значение, отсутствующее в списке,
    // то не выпускаем из поля
    if (! table && me.text())
    {
	box::stop('Значение отсутствует в списке!');
        ret = ret && false;
    }
    return ret;
}
Метод размещен в некотором классе, предназначенном для обработки событий именно этого конкретного диалога. Названия полей диалога по умолчанию вида "Fld1_1" динамически заменил на более содержательные: "MyDialogField1" - чтобы не переписывать заголовки методов в классе, если вдруг в дальнейшем придется добавить в диалог новые поля и имена по умолчанию "съедут" (Ax 3.0, SP4).

Ну, а в методе, формирующем собственно диалог, перед вызовом run расположился такой блок операторов:
X++:
    dialog.doInit();

    dialog.formRun().controlMethodOverload( true );
    dialog.formRun().controlMethodOverloadObject( new MyEventHandlerForThisDialog( dialog ));

    dialog.run();
Теги
lookup, validate, validatefield, запрет

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как убрать автопоиск по "*" для Lookup? Poleax DAX: База знаний и проекты 14 17.03.2009 13:38
Проблема со своим lookup-ом sweeper DAX: Программирование 9 15.01.2009 18:38
Lookup, Company, FeatureKey Владимир Максимов DAX: Программирование 7 18.03.2008 15:14
Создание Lookup формы Maxim Gorbunov DAX: База знаний и проекты 9 26.06.2007 16:44
Динамические Lookup формы. Андрей Василюк DAX: База знаний и проекты 0 07.12.2001 07:07

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

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

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