Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Вниз

Ограничение макс. значения поля.   Найти похожие ветки 

 
Бульбаш   (2006-01-17 16:14) [0]

В накладной программно добавляю строки товара с расчетными ценой и количеством (текущий остаток). Как ограничить пользователя в попытке ввести в поле количество значение большее текущего остатка? Совсем закрыть редактирование не могу, так как возможно уменьшение расчетного количества. Пробовал различные варианты в onValidate, но проблема одна - как взять расчетное значение для сравнения?


 
Val ©   (2006-01-17 16:18) [1]

думаю, хорошим вариантом есть проверка на сервере, при попытке вставки.


 
Val ©   (2006-01-17 16:23) [2]

оп, оп. Что-то я криво прочитал, кажется.
Это накладная на _списание_ товара со склада?
Ведь вы делаете запрос на получение текущего остатка по складу? Держите его в своем поле на клиенте, а пользователю для редактирования дайте другое, инициализированное первоначально значением тек. остатка. И сравнивайте их.


 
Sergey13 ©   (2006-01-17 16:24) [3]

Как вариант. Можно попробовать "паралельный" датасет (например CDS) с "контрольными" цифрами. Тогда проверка упрощается.


 
Бульбаш   (2006-01-17 17:12) [4]

С дополнительным полем понятно , я что есть параллельный датасет?


 
ANB ©   (2006-01-17 17:23) [5]


> Sergey13 ©   (17.01.06 16:24) [3]

Изгалятель.


> Бульбаш   (17.01.06 17:12) [4]

Есть некая накладка. Если контрольное поле заполнить заранее, а потом его проверять, то может оказаться, что к моменту добавления строки остаток на складе еще уменьшился/увеличился. Посему тут лучше сделать проверку непосредственно при добавлении записи. Если это какой нибудь SQL сервер, то в хранимке/триггере, если локальная база - то запросом к ней.


 
Бульбаш   (2006-01-17 17:30) [6]

Вывел остаток подзапросом, вроде бы фунциклирует. Думал что есть более изящное решение, но в принципе и это неплохо :)


 
Val ©   (2006-01-17 17:31) [7]

>[5] ANB ©   (17.01.06 17:23)

> Есть некая накладка....

Дело в том, что соотв. проверки и ограничения должны быть на серверной стороне по определению, тогда откатится, конечно, вся транзакция и юзер должен будет исправлять накладную, соответственно сообщению об изменившихся остатках.
Автора же интересует препроверка, скажем так, вводимых пользователем значений на клиенте, как я понял. А она штука такая, больше косметическая.


 
Sergey13 ©   (2006-01-17 17:33) [8]

Да. Чего-то я перемудрил. О своем думал. 8-)
Доп. поля достаточно для нехитрого контроля.


 
evvcom ©   (2006-01-18 08:53) [9]


> поле количество значение большее текущего остатка?

А то количество, которое дал ввести, блокируешь, чтобы нельзя было на этот остаток выписать еще одну накладную? Или сразу списываешь, не дожидаясь фактического получения?



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.03.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.023 c
3-1137275428
muster
2006-01-15 00:50
2006.03.12
Фильтрация с неточным совпадением


2-1140681721
аноним
2006-02-23 11:02
2006.03.12
TidTCPServer


2-1140434549
ForX
2006-02-20 14:22
2006.03.12
TQuery and TTable


1-1139485756
Agt
2006-02-09 14:49
2006.03.12
Interactive service


4-1134858932
den_c
2005-12-18 01:35
2006.03.12
Как определить в какой точке всплыло меню зная его хэндл?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский