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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2011, 18:55   #1
ayris666
 
Регистрация: 06.06.2011
Сообщений: 4
Печаль Подсчет сумы в таблице на Delphi

Пожалуйста помогите найти ошибку в коде.
На форме есть таблица с колонками Цена и Количество. Нужно чтобы при нажатии на кнопку Цена умножалась на Количество и все значения складовались( получить сумарную цену всех товаров таблицы). Когда значения добавляются в таблицу - всё работает, но если значение из таблицы удалить - сумарная цена не уменьшается. может она просто не пересчитывается заново? Никак не пойму в чём ошибка.
Вот процедура подсчёта:
Код:
procedure TForm4.Panel2Click(Sender: TObject);
var
 i:integer;

begin
s:=0;
label1.Caption:='';
adotable1.Active:=false;
adotable1.Active:=true;
 ADOQuery1.First;
 for i:=1 to ADOQuery1.RecordCount do
 begin
 s:=s+StrTofloat(ADOQuery1.FieldByName('Цена').asString)*StrTofloat(ADOQuery1.FieldByName('Количество').asString);
 ADOQuery1.Next;
 ADOQuery1.Active:=true;
  end;
label1.caption:='К оплате: '+floattostr(s);

end;




А это процедура удаления выделеной записи. После нее подсчёт работает не правильно:
procedure TForm4.Panel4Click(Sender: TObject);
begin
s:=0;
adotable1.Delete;
 label1.Caption:='';
 adotable1.Active:=false;
 adotable1.Active:=true;
end;


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 10.06.2011 в 09:05.
ayris666 вне форума Ответить с цитированием
Старый 09.06.2011, 19:01   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
begin
s:=0;
adotable1.Delete;
label1.Caption:='';
adotable1.Active:=false;
adoquery1.Active:=true;
end;
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 09.06.2011, 19:20   #3
ayris666
 
Регистрация: 06.06.2011
Сообщений: 4
По умолчанию

Не помогает. всё также...
ayris666 вне форума Ответить с цитированием
Старый 09.06.2011, 20:10   #4
ayris666
 
Регистрация: 06.06.2011
Сообщений: 4
По умолчанию

помогите пожалуйста!!!!!!!!! очень нужно. диплом(
ayris666 вне форума Ответить с цитированием
Старый 10.06.2011, 10:04   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

при подсчёте записей Вы используете запрос.
Но не обновляете его!!

Код:
procedure TForm4.Panel2Click(Sender: TObject);
var
 i:integer;

begin
s:=0;
label1.Caption:='';
 ADOQuery1.Close;
 ADOQuery1.Open; 
ADOQuery1.First;
 for i:=1 to ADOQuery1.RecordCount do
 begin
 s:=s+StrTofloat(ADOQuery1.FieldByName('Цена').asString)*StrTofloat(ADOQuery1.FieldByName('Количество').asString);
 ADOQuery1.Next;
 ADOQuery1.Active:=true;
  end;
label1.caption:='К оплате: '+floattostr(s);

end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.06.2011, 15:54   #6
ayris666
 
Регистрация: 06.06.2011
Сообщений: 4
По умолчанию

спасибо, но это тоже не помогло...
ayris666 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подсчет в таблице Deni55 Microsoft Office Excel 7 25.05.2011 14:10
подсчет строк в таблице Екатрина Microsoft Office Excel 16 19.04.2011 12:16
Подсчет результатов в турнирной таблице. vladi Microsoft Office Excel 5 29.06.2010 13:45
Подсчет количества совпадений в таблице aval Microsoft Office Excel 8 08.11.2009 21:50
Подсчет полей в таблице Arkatic Общие вопросы C/C++ 0 10.05.2009 22:52