11.12.2002, 13:12 | #1 |
----------------
|
Проверка даты
В гриде есть поле для ввода даты. Надо после ввода даты проверять её корректность и о чем-то спрашивать юзверя.
При вводе даты ручками имеем последовательность validate_onControl modified_onControl validate_onField modified_onField При вводе даты через стандартный lookup имеем последовательность modified_onControl validate_onField modified_onField modified_onControl validate_onField modified_onField Вопрос: куда воткнуть проверку? |
|
11.12.2002, 17:48 | #2 |
Участник
|
validate до супера.
желательно в field. но можно и контрол, если так надо. |
|
11.12.2002, 17:57 | #3 |
----------------
|
Проблема.
validate на поле вызывается ДВА раза, если пользоваться календариком, а validate на контроле вообще не вызывается. Таким образом, я либо 2 раза спрошу пользователя, либо вообще не проверю. Вот такой он.. календарик |
|
11.12.2002, 18:38 | #4 |
Участник
|
Календарик - обычное окно Аксапты.
Когда открывается календарик на самом деле срабатывает lookup. validate у тебя срабатывает из lookupa, а потом из поля. На контроле валидате не вызывается поскольку вся обработка идет через тот же лукап. См доку. Будь внимателен. |
|
15.12.2002, 11:31 | #5 |
----------------
|
Цитата:
validate у тебя срабатывает из lookupa, а потом из поля.
Пришлось проблему решать криволинейным путем |
|
15.12.2002, 14:27 | #6 |
Участник
|
по-моему из-за того, что лукап может вызываться несколькими способами.
А ты сам то как думаешь? Ты же больше разбирался с этой задачей. |
|
15.12.2002, 14:57 | #7 |
----------------
|
Так как я не нашел отличий между вызовами lookup-форм для разных типов полей, то пришел к выводу, что все дело в некорректной реализации FormDateControl.lookup().
Конечно, это крайнее суждение, требующее более серьезной проверки, которой мне заниматься не очень хочется. |
|
15.12.2002, 15:10 | #8 |
Участник
|
Ну... согласен, радикальное суждение.
В Аксапте предусмотрено три варианта вызова лукапа. performTypeLookup performDBLookup performFormLookup Календарик вроде вызывается через performFormLookup. Может там собака порылась? Согласен также с тем, что надо рыть... |
|
15.12.2002, 15:22 | #9 |
----------------
|
Цитата:
Navision said it's an error will be corrected in Release 3.0
Смотрел в отладчике - идет вызов performDBLookup... на самом деле какая разница в каком методе, если исходник класса не доступен |
|
15.12.2002, 17:28 | #10 |
Участник
|
Если для чтения, то исходники в aod хранятся в незакодированном виде.
Если для записи... то aod это вроде стандартный ole storage container... Правда это сильно нештатный метод редактирования |
|