![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
В общем то проблема такова.
Есть 2 Ado_таблицы (1. Склад медикаментов) (2. Формирование рецепта) Код:
DataModule4.ADOTable2.Locate('Nazvanie', Form10.Edit2.text, []);
DataModule4.ADOTable2.Edit;
If (DataModule4.ADOTable2.FieldByName('Kolichestvo').Value < StrToInt(Form10.Edit3.Text))
then ShowMessage('Нехватает лекарств');
DataModule4.ADOTable2.FieldByName('Kolichestvo').Value:=DataModule4.ADOTable2.FieldByName('Kolichestvo').Value-StrToInt(Form10.Edit3.Text);т.е. вводим данные для формирования рецепта Yod 10 (данные сохраняются в таблице 2.формирование рецепта ) а количество yoda вычитается из (таблицы 1.склад медикаментов) === проблема в чем. 1)если какого либо лекарства не хватает он выводит сообщение не хватает лекарства но вычитает в минус например 10-20= -10. Мне же надо что бы он и вовсе не вычитал. 2) если я ввожу при формировании рецепта то лекарство которого нет на складе медикаментов, мне надо что бы он вывел сообщение что на складе такого лекарства нету и не вычитал лекарство (а у меня же это неизвестное лекарство он вычитает из первой строки в таблице 1.склад медикаментов.) ---- вот так вот( Последний раз редактировалось lmikle, 18.06.2012 в 17:14. |
|
#2
|
||||
|
||||
|
Код:
If (DataModule4.ADOTable2.FieldByName('Kolichestvo'). Value < StrToInt(Form10.Edit3.Text))
then ShowMessage('Нехватает лекарств')
else DataModule4.ADOTable2.FieldByName('Kolichestvo').V alue:=DataModule4.ADOTable2.FieldByName('Kolichest vo').Value-StrToInt(Form10.Edit3.Text); |
|
#3
|
|||
|
|||
|
Цитата:
Не помогает...) Вообще возможно поставленные задачи не понял, он вычитает и сообщение выводит и с тем кодом, но мне надо видимо проверку что если не хватает, то он выводил сообщение, но вычитание не производил, а если вообще в Складе нет такого лекарства, то он писал бы что нет лекарства, и не вычитал бы из 1й строки, как это он делает сейчас |
|
#4
|
|||
|
|||
|
Код:
If (DataModule4.ADOTable2.FieldByName('Kolichestvo').Value < StrToInt(Form10.Edit3.Text)) then
begin
ShowMessage('Нехватает лекарств');
exit;
end;А вообще, лучше использовать отдельный запрос или StoredProcedure. Locate не всегда работает хорошо. |
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
ShiniDelf (19.06.2012)
| ||
|
#5
|
||||
|
||||
|
Цитата:
|
| Этот пользователь сказал Спасибо Yurk@ за это полезное сообщение: | ||
ShiniDelf (19.06.2012)
| ||
|
#6
|
|||
|
|||
|
Цитата:
[DCC Error] Unit10.pas(51): E2003 Undeclared identifier: 'b' Последний раз редактировалось ShiniDelf, 19.06.2012 в 14:21. |
|
#7
|
|||
|
|||
|
Цитата:
|
|
#8
|
|||
|
|||
|
Код:
if (DataModule4.ADOTable2.FieldByName('Kolichestvo').Value > StrToInt(Form10.Edit3.Text))
then
begin
DataModule4.ADOTable2.FieldByName('Kolichestvo').Value:=DataModule4.ADOTable2.FieldByName('Kolichestvo').Value-StrToInt(Form10.Edit3.Text);
end else begin
ShowMessage ('Недостаточно лекарств')
end;так этим кодом разобрался с первой проблемой |
|
#9
|
|||
|
|||
|
Код:
DataModule4.ADOTable2.Locate('Nazvanie', Form10.Edit2.text, []);
DataModule4.ADOTable2.Edit;
if (DataModule4.ADOTable2.FieldByName('Nazvanie').value <> StrToInt(Form10.Edit2.Text))
then
ShowMessage ('Нет лекарства')
else begin
DataModule4.ADOTable2.FieldByName('Kolichestvo').Value:=DataModule4.ADOTable2.FieldByName('Kolichestvo').Value-StrToInt(Form10.Edit3.Text);
end;
Form10.Close;
Form9.Show;
end;
end.Последний раз редактировалось ShiniDelf, 19.06.2012 в 21:08. |
|
#10
|
|||
|
|||
|
Ничего вот тут не смущает:
Код:
(DataModule4.ADOTable2.FieldByName('Nazvanie').value <> StrToInt(Form10.Edit2.Text)) |
|
#11
|
|||
|
|||
|
Цитата:
|