19.04.2007, 16:03 | #1 |
Участник
|
Проверка заполнения полей
Вечер добрый...
Тут проблемка нарисовалась, нужно проверить заполнение полей в диалоге запроса.. Подскажите кто сталкивался)
__________________
Рабочий день сокращает жизнь на 8 часов |
|
19.04.2007, 16:24 | #2 |
Программатор
|
В getFromDialog() проверьте заполнили поля или нет.
|
|
19.04.2007, 17:14 | #3 |
Участник
|
Вообще, если это наследник RunBaseBatch, то лучше использовать метод validate(object _calledFrom)
Так вот, если хотите проверять заполнение полей именно запроса (по кнопке выбор), то validate тоже вызовется, и параметром _calledFrom передается форма редактирования запроса. По этому условию можно и сделать проверку полей запроса. |
|
20.04.2007, 08:49 | #4 |
Участник
|
Но тогда даже при нажатие кнопки выбор валится сообщение...
Это не есть хорошо... Цитата:
kashperuk Вообще, если это наследник RunBaseBatch, то лучше использовать метод validate(object _calledFrom)
__________________
Рабочий день сокращает жизнь на 8 часов |
|
20.04.2007, 09:02 | #5 |
Участник
|
А наследник какого класса у Вас?
Например, для наследника 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 |
Участник
|
class ReportRun extends ObjectRun
__________________
Рабочий день сокращает жизнь на 8 часов |
|
20.04.2007, 09:58 | #7 |
Участник
|
Так, можут быть, раз требуется какая-то обработка или проверка, выходящая за рамки простого вывода отчета, то емеет смысл не вызывать отчет напрямую, а создать класс-наследник от RunBaseReport и обрабатывать вызов отчета через него?
|
|
20.04.2007, 10:27 | #8 |
Участник
|
|
|
20.04.2007, 11:02 | #9 |
Участник
|
Это как???
__________________
Рабочий день сокращает жизнь на 8 часов |
|
20.04.2007, 14:47 | #10 |
Участник
|
Ну знаю мой метод подходит для вашего случая или нет. У меня была такая же проблема с отчётом. Перед тем как выводит отчёт надо проверить, достаточно ли информации пользователи вводили в диалоговую форму.
Учитывая, что последовательность методов при вызове отчёта следующая: init() --> dialog() --> run() ---> fetch() --> send() --> print() То первый возможный вариант, это перекрыть метод init(), в этом заполните значения по - умолчанию для полей, ввод информации в которые обязательно. Второй вариант (мне больше нравится), в методе run() добавил строки типа (проверка, что должна быть переменная toDateDlv) X++: if(!toDateDlv) { info("О-о-оооо.... У меня не достаточно информации !!!!"); this.run(); } else { super(); } Последний раз редактировалось longson; 20.04.2007 в 14:54. |
|