06.09.2005, 15:52 | #1 |
Участник
|
Обязательнные поля
Доброго времи суток!
Как сделать так, чтобы нельзы было уйти с записи не заполнив обязательные поля? У этих полях свойство Mandatory = true... К тому же, если у таблице в InitValue сделать this.write() то можно не только запись покинуть, но и сделать все что угодно, не заполняя обязательных полей... Кто-нибудь разъяснит мне почему так? Почему не срабатывает validateWrite ? |
|
06.09.2005, 16:13 | #2 |
Участник
|
Write() не проверяет запись на валидность. Вызов validateWrite() происходит до вызова Write(). Т.е. возможность или невозможность проверки при изменении записей отдана на откуп программистам.
На сервере Axapta создает поля с запретом вставки пустых значений, но при этом добавляет вставку значения по умолчанию, по-этому на сервере вставка таких полей пройдет всегда.
__________________
Axapta v.3.0 sp5 kr2 |
|
06.09.2005, 16:15 | #3 |
Участник
|
Понятно.
А как насчет "Как сделать так, чтобы нельзы было уйти с записи не заполнив обязательные поля?" |
|
06.09.2005, 16:16 | #4 |
Moderator
|
Если
PHP код:
PHP код:
P.S. Писал в ответ на первый пост. |
|
06.09.2005, 16:41 | #5 |
Участник
|
2 DreamCreator
Наверное вызов write() должен быть после super(). Да и делать проверку именно во write() не стоит. Ведь запись может быть вставлена и штатным способом, т.е. validateWrite() отработает несколько раз.
__________________
Axapta v.3.0 sp5 kr2 |
|
06.09.2005, 16:55 | #6 |
Участник
|
2 rkrivov
Ну а вообще-то странно выглядит вопрос если разобраться. Перед сохранением записи вы должны были заполнить правильно все поля. Так что данную проблему целиком прождаете вы.
__________________
Axapta v.3.0 sp5 kr2 |
|
06.09.2005, 17:06 | #7 |
Moderator
|
Цитата:
Изначально опубликовано AndyD
Наверное вызов write() должен быть после super(). Возникает мысль -- для чего в initValue писать write? (Мож я глубины идеи не понимаю). validateWrite внутри write потому что он до этого нигде не вызывается, так нагляднее |
|
07.09.2005, 16:00 | #8 |
Участник
|
Цитата:
Возникает мысль -- для чего в initValue писать write? (Мож я глубины идеи не понимаю).
Вот для этого и написан write в initValue |
|
07.09.2005, 16:16 | #9 |
Участник
|
Необходимо либо инициализировать поля перед записью, либо использовать собственное поле, в котором хранить дату создания и заполнять его в InitValue()
__________________
Axapta v.3.0 sp5 kr2 |
|