Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2010, 15:42   #1
Arinka
Пользователь
 
Регистрация: 06.05.2010
Сообщений: 52
Лампочка Сообщение об ошибке...

Всем привет!!!
У меня имеются таблицы Продукция и Заказы. В продукции есть поле количество. Мне нужно чтобы при заполнение заказа в поле количество выдавалось сообщение об ошибке, если допустим пользователь ввел заказ на 100 штук, но в базе имеется только 90 штук данной продукции
Как это можно осуществить? Подскажите пожалуйста
Arinka вне форума Ответить с цитированием
Старый 21.05.2010, 16:17   #2
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

В обработчике события на нажатие кнопки(в таблице) делайте проверку.
К примеру:
Код:
If Количество < Заказа Then
Begin
ShowMessage('Текст ошибки');
End;
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 21.05.2010, 16:49   #3
Arinka
Пользователь
 
Регистрация: 06.05.2010
Сообщений: 52
Подмигивание

А в какую строчку написать этот код не подскажете? (очень нужно!!!)

Эта процедура нажатия на кнопку оформить заказ. Т.е. из таблицы клиент, я выбираю нужного клиента и продукцию из таблицы продукция, выбираю дату оформления и в 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;

procedure TForm8.ColvoEditChange(Sender: TObject);
begin

end;

end.
Arinka вне форума Ответить с цитированием
Старый 21.05.2010, 17:20   #4
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Есть два варианта.
1) При вводе данных делать проверку.
2) При нажатии на кнопку (Оформить заказ) делать проверку.
В этот код Вы ввели много своих переменных, поэтому сложно сориентироваться что тут куда, но в общем, делайте проверку при присвоении данных (при оформлении заказа).
Примерно сюда:
Код:
if ((Table3.FieldValues['art']=prod) and (Table3.FieldValues['codeC']=client) 
and(Table3.FieldValues['colvo']=colvo)
 and (Table3.FieldValues['dataS']=date)) And  (colvo > Заказ) then
...
Else
ShowMessage('Текст ошибки');
Подкорректируйте код как Вам нужно. Смысл такой. При допуске к оформлению, где всё проверяется проверяйте данные продукции чтобы они были больше или равны заказываемым.
Всегда рад помочь!

Последний раз редактировалось Terran; 21.05.2010 в 17:55.
Terran вне форума Ответить с цитированием
Старый 21.05.2010, 18:02   #5
Arinka
Пользователь
 
Регистрация: 06.05.2010
Сообщений: 52
По умолчанию

Смысл конечно понятен. А вот куда бы я не вставляла этот код, Delphi выдает ошибку
Arinka вне форума Ответить с цитированием
Старый 21.05.2010, 18:07   #6
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Выложите полный исходничёк своей программки со всеми относящимися к проекту файлами, а я попробую Вам его подправить.
И сообщение об ошибки должно быть всплывающим? Или где-то писаться?
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 21.05.2010, 19:53   #7
Arinka
Пользователь
 
Регистрация: 06.05.2010
Сообщений: 52
Подмигивание

Terran Спасибо тебе за отзывы и коды!!! Я постараюсь сама разобраться
Arinka вне форума Ответить с цитированием
Старый 21.05.2010, 20:25   #8
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
Terran Спасибо тебе за отзывы и коды!!! Я постараюсь сама разобраться
Не за что. Если всё же возникнут вопросы, то спрашивайте. Буду рад помочь
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 25.05.2010, 15:57   #9
Arinka
Пользователь
 
Регистрация: 06.05.2010
Сообщений: 52
Сообщение

Мне самой додуматься ума не хватает Прошу помочь плиз!!!
Вложения
Тип файла: rar Программа.rar (687.7 Кб, 12 просмотров)
Arinka вне форума Ответить с цитированием
Старый 25.05.2010, 16:58   #10
Arinka
Пользователь
 
Регистрация: 06.05.2010
Сообщений: 52
Печаль

Помогите пожалуйста!!!!!!!!!!!!!!!!!!!
Arinka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сообщение об ошибке ruavia3 Microsoft Office Excel 3 13.10.2009 23:10
Сообщение об ошибке Kreadlling Общие вопросы C/C++ 3 08.09.2009 13:30
Сообщение об ошибке! QWERT1988 Общие вопросы Delphi 4 01.06.2009 17:14
Выдать сообщение об ошибке Detka Общие вопросы Delphi 17 10.07.2008 15:06
Перехватить сообщение об ошибке Insainer Общие вопросы Delphi 5 25.04.2008 20:39