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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.04.2007, 16:03   #1  
Himan is offline
Himan
Участник
Аватар для Himan
 
312 / 12 (1) ++
Регистрация: 07.11.2006
Адрес: Tumen
Проверка заполнения полей
Вечер добрый...
Тут проблемка нарисовалась, нужно проверить заполнение полей в диалоге запроса..
Подскажите кто сталкивался)
__________________
Рабочий день сокращает жизнь на 8 часов
Старый 19.04.2007, 16:24   #2  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
В getFromDialog() проверьте заполнили поля или нет.
Старый 19.04.2007, 17:14   #3  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Вообще, если это наследник RunBaseBatch, то лучше использовать метод validate(object _calledFrom)

Так вот, если хотите проверять заполнение полей именно запроса (по кнопке выбор), то validate тоже вызовется, и параметром _calledFrom передается форма редактирования запроса. По этому условию можно и сделать проверку полей запроса.
Старый 20.04.2007, 08:49   #4  
Himan is offline
Himan
Участник
Аватар для Himan
 
312 / 12 (1) ++
Регистрация: 07.11.2006
Адрес: Tumen
Цитата:
Сообщение от Sada Посмотреть сообщение
В getFromDialog() проверьте заполнили поля или нет.
Но тогда даже при нажатие кнопки выбор валится сообщение...
Это не есть хорошо...

Цитата:
kashperuk Вообще, если это наследник RunBaseBatch, то лучше использовать метод validate(object _calledFrom)
А если нет??? Нужно проверить поля диалога, в запросе я так все перекрываю)
__________________
Рабочий день сокращает жизнь на 8 часов
Старый 20.04.2007, 09:02   #5  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
А наследник какого класса у Вас?
Например, для наследника RunBase я проверяю в checkCloseDialog(Object _calledFrom), при этом открытие формы запроса отсекаю:
X++:
public boolean checkCloseDialog(Object _calledFrom)
{
    boolean         ret;

    ret = super(_calledFrom);

    if (SysDictClass::isEqualOrSuperClass(classidget(_calledFrom), classNum(SysSetupFormRun)))
    {
        return ret;
    }
...
}
За это сообщение автора поблагодарили: Андрей К. (1).
Старый 20.04.2007, 09:24   #6  
Himan is offline
Himan
Участник
Аватар для Himan
 
312 / 12 (1) ++
Регистрация: 07.11.2006
Адрес: Tumen
class ReportRun extends ObjectRun
__________________
Рабочий день сокращает жизнь на 8 часов
Старый 20.04.2007, 09:58   #7  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Так, можут быть, раз требуется какая-то обработка или проверка, выходящая за рамки простого вывода отчета, то емеет смысл не вызывать отчет напрямую, а создать класс-наследник от RunBaseReport и обрабатывать вызов отчета через него?
Старый 20.04.2007, 10:27   #8  
longson is offline
longson
Участник
 
231 / 49 (2) +++
Регистрация: 12.12.2006
Адрес: Москва
Цитата:
Сообщение от Himan Посмотреть сообщение
class ReportRun extends ObjectRun
Если так, может перекрытие метода run самого отчёта поможет .
Старый 20.04.2007, 11:02   #9  
Himan is offline
Himan
Участник
Аватар для Himan
 
312 / 12 (1) ++
Регистрация: 07.11.2006
Адрес: Tumen
Цитата:
Сообщение от longson Посмотреть сообщение
Если так, может перекрытие метода run самого отчёта поможет .
Это как???
__________________
Рабочий день сокращает жизнь на 8 часов
Старый 20.04.2007, 14:47   #10  
longson is offline
longson
Участник
 
231 / 49 (2) +++
Регистрация: 12.12.2006
Адрес: Москва
Ну знаю мой метод подходит для вашего случая или нет. У меня была такая же проблема с отчётом. Перед тем как выводит отчёт надо проверить, достаточно ли информации пользователи вводили в диалоговую форму.


Учитывая, что последовательность методов при вызове отчёта следующая: init() --> dialog() --> run() ---> fetch() --> send() --> print()
То первый возможный вариант, это перекрыть метод init(), в этом заполните значения по - умолчанию для полей, ввод информации в которые обязательно.

Второй вариант (мне больше нравится), в методе run() добавил строки типа (проверка, что должна быть переменная toDateDlv)

X++:
if(!toDateDlv)
{
  info("О-о-оооо.... У меня не достаточно информации !!!!");
  this.run();
}
else
{
 super();
}

Последний раз редактировалось longson; 20.04.2007 в 14:54.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как получить значения полей (modifiedDate, modifiedTime, modifiedBy и др.) при работе с объектами AOT типа Map? LRA DAX: База знаний и проекты 15 02.04.2007 13:37
контроль заполнения полей запроса Himan DAX: Программирование 2 15.03.2007 13:00
Проверка целостности coja DAX: Администрирование 6 06.09.2006 13:14
Проверка заполнения Mandatory полей на Datasource Wamr DAX: База знаний и проекты 4 26.06.2006 18:15
очистка полей. простой вопрос Антон Солдатов DAX: Программирование 4 04.04.2003 10:28

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

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

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