|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.06.2010, 13:48 | #1 |
Пользователь
Регистрация: 06.05.2010
Сообщений: 52
|
Вывод ошибки при условии....
Здравствуйте!!!!
У меня имеются таблицы Продукция и Заказы. В продукции есть поле количество. Мне нужно чтобы при заполнение заказа в поле количество выдавалось сообщение об ошибке, если допустим пользователь ввел заказ на 100 штук, но в базе имеется только 90 штук данной продукции Как это можно осуществить? Подскажите пожалуйста!!!!!!!! |
05.06.2010, 14:05 | #2 |
Форумчанин
Регистрация: 27.05.2009
Сообщений: 192
|
в каком виде храните данные...
какая база используется... компоненты... |
05.06.2010, 14:27 | #3 |
Пользователь
Регистрация: 06.05.2010
Сообщений: 52
|
Таблицы созданы в Database.
На форме у меня имеются 3 таблицы: Продукция, Клиенты и заказы. Я выбираю определенную продукцию (таблица 1), клиента , который заказал (таблица2), потом выбираю дату заказа(компонент DateTimerPicker) и количество продукции(компонент DBEdit). Далее нажимаю на кнопку Оформить и данные переводятся в таблицу Заказы. Процедура кнопки "Оформить": procedure TForm8.BitBtn1Click(Sender: TObject); var bool:boolean; begin bool:=false; date:=''; prod:=''; client:=''; colvo:=0; cost:=0; price:=0; str1:=''; str2:=''; if (DateToStr(DateTimePicker1.Date)='' ) or (ColvoEdit.Text='') then ShowMessage('Все поля должны быть обязательно заполнены!') else begin date:=DateToStr(DateTimePicker1.Dat e); str1:=Table2.FieldValues['product']; str2:=Table1.FieldValues['client']; prod:=Table2.FieldValues['art']; client:=Table1.FieldValues['CodeC']; colvo:=StrToInt(ColvoEdit.Text); price:=Table2.FieldValues['price']; cost:=colvo*price; bool:=false; Form8.Table3.Active:=false; Form8.Table3.Active:=true; Form8.Table3.First; {showmessage(SdelTable.FieldValues['art']); showmessage(prod); showmessage(SdelTable.FieldValues['codeC']); showmessage(client); showmessage(SdelTable.FieldValues['colvo']); showmessage(IntToStr(colvo)); showmessage(SdelTable.FieldValues['date']); showmessage(date); } // ищем есть ли в таблице такая запись while not Form8.Table3.Eof do begin if ((Table3.FieldValues['art']=prod) and (Table3.FieldValues['codeC']=client) and(Table3.FieldValues['colvo']=colvo) and (Table3.FieldValues['dataS']=date)) then begin bool:=true; exit; end else Table3.Next; end; if bool=false then begin Table3.Append; Table3.FieldValues['art']:=prod; Table3.FieldValues['codeC']:=client; Table3.FieldValues['dataS']:=date; Table3.FieldValues['colvo']:=colvo; Table3.FieldValues['cost']:=cost; Table3.Post; ColvoEdit.Text:=''; end; if bool=true then if (MessageDlg('Заказ покупателем '+ str2 +' на '+str1 + ' в количестве ' + ColvoEdit.Text + ' уже оформлен.' +#13+ 'Сохранить в любом случае?', mtConfirmation, [mbYes, mbNo], 0) = mrYes) then begin Table3.Append; Table3.FieldValues['art']:=prod; Table3.FieldValues['codeC']:=client; Table3.FieldValues['dataS']:=date; Table3.FieldValues['colvo']:=colvo; Table3.FieldValues['cost']:=cost; Table3.Post; ColvoEdit.Text:=''; end else ShowMessage('Сохранение отменено!'); end; end; procedure TForm8.FormCreate(Sender: TObject); begin Form8.Table2.Active:=true; Form8.Table1.Active:=true; colvo:=0; ColvoEdit.Text:=''; end; Проблема в том, что в DBEdit можно вводить любое значение. А мне нужно, чтобы при оформление заказа, выдавалась ошибка, если пользователь ввел 20 штук, а в базе только 3!!!!!!!!! Сама разобраться не смогу(((((((((((((((((((((( |
05.06.2010, 14:29 | #4 |
Форумчанин
Регистрация: 27.05.2009
Сообщений: 192
|
просто пробуй переводить значения в числовые...и сравнивай
|
05.06.2010, 14:32 | #5 |
Пользователь
Регистрация: 06.05.2010
Сообщений: 52
|
А как это сделать и куда вписать???????? Я ничего не понимаю..........
|
05.06.2010, 14:36 | #6 |
Пользователь
Регистрация: 06.05.2010
Сообщений: 52
|
Предлагали такой вариант:
If Количество < Заказа Then Begin ShowMessage('Текст ошибки'); End; Только я не знаю куда вписать. Куда не вставляешь, ошибку выдает((((((((( |
05.06.2010, 14:41 | #7 |
Форумчанин
Регистрация: 27.05.2009
Сообщений: 192
|
нужно вставлять в обработчике твоем...где типа ввели заказ...и типа короче жмут на кнопку...мол...вези...
короче типа этого: if Table3.Заказ()<Table3.склад() then ShowMessage('код ошибки'); типа этого |
05.06.2010, 14:50 | #8 |
Пользователь
Регистрация: 06.05.2010
Сообщений: 52
|
Я поняла что на кнопку ОФормить, а в какое именно место?
|
05.06.2010, 14:54 | #9 |
Пользователь
Регистрация: 06.05.2010
Сообщений: 52
|
Можно на примере кода, который выше
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обработка Матриц(Упорядочивание Элементов,Вывод На Экран Матриц При Условии...) | timepoka | Помощь студентам | 8 | 01.07.2011 13:20 |
Разметка страницы при условии | axaptaalex | Microsoft Office Excel | 2 | 20.03.2009 18:36 |
Вывод ошибки при вводе цифры 1..5 в поле Edit | prikolist | Общие вопросы C/C++ | 2 | 16.03.2009 00:22 |
Перенос данных из ячеек при условии | gavrylyuk | Microsoft Office Excel | 12 | 29.07.2008 12:33 |
DBGridEh+EditMask при условии. | Jenya | БД в Delphi | 1 | 03.03.2008 13:58 |