Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.04.2008, 18:28
Horror Horror вне форума
Прохожий
 
Регистрация: 16.04.2008
Сообщения: 17
Репутация: 10
По умолчанию Сумма

Имеется процедура которая считает сумму цен в поле Цена
Код:
procedure TForm6.Button1Click(Sender: TObject);
var ST: string;
    s: integer;
begin
     Table1.First;
  S:=0;
  While Not (Table1.Eof) do
  begin
    S:= S+Table1Stoimost.Value;
    Table1.Next;
  end;
      ST:= FloatToStr(s);
      STR(S:12, st);
  Label6.Caption:= 'Сумма заказа составляет  '+ st+'р.';
  Label6.Visible:= True;
end;

Как к этой сумме прибавить значение, которое вводится в Edit1 который находится на этой же форме?
PS... у меня чего-то прибавляет значение в три раза больше чем введенное в Edit
Ответить с цитированием
  #2  
Старый 23.04.2008, 19:03
Аватар для Professor Farnsworth
Professor Farnsworth Professor Farnsworth вне форума
Прохожий
 
Регистрация: 19.04.2008
Сообщения: 42
Репутация: 10
По умолчанию

Лучше сумму считать через запрос, значительно быстрее.
Например так.
Код:
procedure TForm1.Button2Click(Sender: TObject);
var s:real;
begin
   With ADOQuery2 do
   begin
       Close;
       SQL.Clear;
       SQL.Add('Select sum(PriceRUB) as summa from main');
       Open;
   end;
   Label2.Caption:= 'Сумма заказа составляет ' + FloatToStr(ADOQuery2.fieldByName('summa').AsFloat + StrToFloat(edit1.Text))+'р.';
end;
Ответить с цитированием
  #3  
Старый 24.04.2008, 01:35
Horror Horror вне форума
Прохожий
 
Регистрация: 16.04.2008
Сообщения: 17
Репутация: 10
По умолчанию

а если без запроса?
и как передать ST(Label6.Caption:= 'Сумма заказа составляет '+ st+'р.' в QRLabel ?

Последний раз редактировалось Horror, 24.04.2008 в 04:19.
Ответить с цитированием
  #4  
Старый 24.04.2008, 08:48
Аватар для Professor Farnsworth
Professor Farnsworth Professor Farnsworth вне форума
Прохожий
 
Регистрация: 19.04.2008
Сообщения: 42
Репутация: 10
По умолчанию

Цитата:
Сообщение от Horror
а если без запроса?
и как передать ST(Label6.Caption:= 'Сумма заказа составляет '+ st+'р.' в QRLabel ?
Ну если так болше нравится то пожалуйста.

Код:
procedure TForm1.Button1Click(Sender: TObject);
var ST: string;
    s: real;
begin
  Table1.First;
  S:=0;
  While Not (Table1.Eof) do
  begin
    S:= S+Table1.fieldByName('Stoimost').AsFloat;
    Table1.Next;
  end;
  s:=s+StrToFloat(edit1.text);
  ST:= FloatToStr(s);
  STR(S:12:2, st);
  Label6.Caption:= 'Сумма заказа составляет  '+ st+'ð.';
  Label6.Visible:= True;
end;
Ответить с цитированием
  #5  
Старый 24.04.2008, 12:40
Horror Horror вне форума
Прохожий
 
Регистрация: 16.04.2008
Сообщения: 17
Репутация: 10
По умолчанию

как переменную ST передать в QRLabel?
Ответить с цитированием
  #6  
Старый 24.04.2008, 13:11
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,093
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

внутри процедуры.
ReportForm.QRLabel1.Caption := ST;
где ReportForm - форма отчета.
Ответить с цитированием
  #7  
Старый 24.04.2008, 13:52
Horror Horror вне форума
Прохожий
 
Регистрация: 16.04.2008
Сообщения: 17
Репутация: 10
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var ST: string;
    s: real;
begin
  Table1.First;
  S:=0;
  While Not (Table1.Eof) do
  begin
    S:= S+Table1.fieldByName('Stoimost').AsFloat;
    Table1.Next;
  end;
  s:=s+StrToFloat(edit1.text);
  ST:= FloatToStr(s);
  STR(S:12:2, st);
  Label6.Caption:= 'Сумма заказа составляет  '+ st+'ð.';
  Label6.Visible:= True;
end;

а здесь если ничего не вводить в Edit1 то будет выдавать ошибку (is not a valid floating point value)
Ответить с цитированием
  #8  
Старый 24.04.2008, 13:54
Horror Horror вне форума
Прохожий
 
Регистрация: 16.04.2008
Сообщения: 17
Репутация: 10
По умолчанию

Цитата:
внутри процедуры.
ReportForm.QRLabel1.Caption := ST;
где ReportForm - форма отчета.
внутри какой процедуры, у меня в форме отчёта нет процедур.....и как вобще присвоить если расчёт ST идёт в другой форме?

Последний раз редактировалось Horror, 24.04.2008 в 13:56.
Ответить с цитированием
  #9  
Старый 24.04.2008, 14:19
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,093
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от Horror
внутри какой процедуры, у меня в форме отчёта нет процедур.....и как вобще присвоить если расчёт ST идёт в другой форме?

Полной адресацией.
Или у QRLabel.OnPrint высчитать снова.
Или у формы отчета сделать метот, через который передавать все нужные параметры и распихивать их по нужным меткам.
Ответить с цитированием
  #10  
Старый 24.04.2008, 17:53
Аватар для Professor Farnsworth
Professor Farnsworth Professor Farnsworth вне форума
Прохожий
 
Регистрация: 19.04.2008
Сообщения: 42
Репутация: 10
По умолчанию

Цитата:
Сообщение от Horror
а здесь если ничего не вводить в Edit1 то будет выдавать ошибку (is not a valid floating point value)
Конечно будет Это уже детали
Код:
if edit.text<>'' then
begin
  s:=s+StrToFloat(edit1.text);
  ST:= FloatToStr(s);
  STR(S:12:2, st);
  Label6.Caption:= 'Сумма заказа составляет  '+ st+'р.';
  Label6.Visible:= True;
end
else 
begin
  ST:= FloatToStr(s);
  STR(S:12:2, st);
  Label6.Caption:= 'Сумма заказа составляет  '+ st+'р.';
  Label6.Visible:= True;
end;
Ответить с цитированием
  #11  
Старый 18.04.2009, 21:57
LEONENKOV2006 LEONENKOV2006 вне форума
Прохожий
 
Регистрация: 18.04.2009
Сообщения: 3
Репутация: 10
По умолчанию

Цитата:
Сообщение от Professor Farnsworth
Конечно будет Это уже детали
Код:
if edit.text<>'' then
begin
  s:=s+StrToFloat(edit1.text);
  ST:= FloatToStr(s);
  STR(S:12:2, st);
  Label6.Caption:= 'Сумма заказа составляет  '+ st+'р.';
  Label6.Visible:= True;
end
else 
begin
  ST:= FloatToStr(s);
  STR(S:12:2, st);
  Label6.Caption:= 'Сумма заказа составляет  '+ st+'р.';
  Label6.Visible:= True;
end;

можно упростить :
Код:
if edit.text<>'' then s:=s+StrToFloat(edit1.text);
  ST:= FloatToStr(s);
  STR(S:12:2, st);
  Label6.Caption:= 'Сумма заказа составляет  '+ st+'р.';
  Label6.Visible:= True;

Последний раз редактировалось Admin, 19.04.2009 в 12:41.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:22.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025