04.10.2005, 12:32 | #1 |
Участник
|
пересчет полей на форме
Есть форма с привязанным к ней DS, на ней есть поле A при изменении пользователем значений в этом поле , сразу(!) должны вычисляться значения в полях B и C.
Но если результат вычислений не соответствует определенным критериям, то откатывать(!) изменение поля A, т.е. не давать изменять его. и соответственно оставлять нетронутыми B и С. Делаю так: Произвожу в методе modified поля A на DS вызываю пересчет значений полей B и C. Анализирую результат и соответственно либо присваиваю получившееся значение полям B и C. Либо присваиваю в тч и текущему A orig(). Но вcе это криво, тк если пользователь несколько раз менял значение поля A то orig вернет не последнее измененное значение, тк сохранений при переходе по полям текущей записи не происходит(можно делать принудительное сохранение, но эт совсем уж не здорово). И вообще хорошо бы в ком-нить validate производить проверки, а не руками orig прописывать, но при этом не хочется 2 раза пересчитывать значеения полей(validate и modified). Можно конечно сохранять его в кой-нить переменной но тож некрасиво это. Задача элементарная, подскажите как сделать это по-человечески. |
|
04.10.2005, 12:50 | #2 |
Модератор
|
По-человечески Вы уже сделпли - validate + modified. Просто при выходе за ограничения делаете return checkfailed. Иначе - пересчитываете другие поля и return true, при этом отрабатывает modified. Вам что, жалко рессурсов машины?
Да, надеюсь, обработка не длительная... С Уважением, Георгий. |
|
|
|