![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ограничение макс. значения поля. [D7]
Бульбаш © (2006-01-17 16:14:00)В накладной программно добавляю строки товара с расчетными ценой и количеством (текущий остаток). Как ограничить пользователя в попытке ввести в поле количество значение большее текущего остатка? Совсем закрыть редактирование не могу, так как возможно уменьшение расчетного количества. Пробовал различные варианты в onValidate, но проблема одна - как взять расчетное значение для сравнения?
evvcom (2006-01-18 08:53:00) [1]
> поле количество значение большее текущего остатка?
А то количество, которое дал ввести, блокируешь, чтобы нельзя было на этот остаток выписать еще одну накладную? Или сразу списываешь, не дожидаясь фактического получения?
Sergey13 (2006-01-17 17:33:00) [2]Да. Чего-то я перемудрил. О своем думал. 8-)
Доп. поля достаточно для нехитрого контроля.
Val (2006-01-17 17:31:00) [3]>[5] ANB © (17.01.06 17:23)
> Есть некая накладка....
Дело в том, что соотв. проверки и ограничения должны быть на серверной стороне по определению, тогда откатится, конечно, вся транзакция и юзер должен будет исправлять накладную, соответственно сообщению об изменившихся остатках.
Автора же интересует препроверка, скажем так, вводимых пользователем значений на клиенте, как я понял. А она штука такая, больше косметическая.
Бульбаш (2006-01-17 17:30:00) [4]Вывел остаток подзапросом, вроде бы фунциклирует. Думал что есть более изящное решение, но в принципе и это неплохо :)
ANB (2006-01-17 17:23:00) [5]
> Sergey13 © (17.01.06 16:24) [3]
Изгалятель.
> Бульбаш (17.01.06 17:12) [4]
Есть некая накладка. Если контрольное поле заполнить заранее, а потом его проверять, то может оказаться, что к моменту добавления строки остаток на складе еще уменьшился/увеличился. Посему тут лучше сделать проверку непосредственно при добавлении записи. Если это какой нибудь SQL сервер, то в хранимке/триггере, если локальная база - то запросом к ней.
Бульбаш (2006-01-17 17:12:00) [6]С дополнительным полем понятно , я что есть параллельный датасет?
Sergey13 (2006-01-17 16:24:00) [7]Как вариант. Можно попробовать "паралельный" датасет (например CDS) с "контрольными" цифрами. Тогда проверка упрощается.
Val (2006-01-17 16:23:00) [8]оп, оп. Что-то я криво прочитал, кажется.
Это накладная на _списание_ товара со склада?
Ведь вы делаете запрос на получение текущего остатка по складу? Держите его в своем поле на клиенте, а пользователю для редактирования дайте другое, инициализированное первоначально значением тек. остатка. И сравнивайте их.
Val (2006-01-17 16:18:00) [9]думаю, хорошим вариантом есть проверка на сервере, при попытке вставки.