|
|
Регистрация | << Правила форума >> | 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); Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#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
|
||||
|
||||
Цитата:
Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
Этот пользователь сказал Спасибо 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
|
|||
|
|||
Цитата:
|