![]() |
|
|
#1
|
|||
|
|||
|
Имеется процедура которая считает сумму цен в поле Цена
Код:
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
|
||||
|
||||
|
Лучше сумму считать через запрос, значительно быстрее.
Например так. Код:
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
|
|||
|
|||
|
а если без запроса?
и как передать ST(Label6.Caption:= 'Сумма заказа составляет '+ st+'р.' в QRLabel ?Последний раз редактировалось Horror, 24.04.2008 в 04:19. |
|
#4
|
||||
|
||||
|
Цитата:
Код:
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
|
|||
|
|||
|
как переменную ST передать в QRLabel?
|
|
#6
|
|||
|
|||
|
внутри процедуры.
ReportForm.QRLabel1.Caption := ST; где ReportForm - форма отчета. |
|
#7
|
|||
|
|||
|
Код:
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
|
|||
|
|||
|
Цитата:
Последний раз редактировалось Horror, 24.04.2008 в 13:56. |
|
#9
|
|||
|
|||
|
Цитата:
Полной адресацией. Или у QRLabel.OnPrint высчитать снова. Или у формы отчета сделать метот, через который передавать все нужные параметры и распихивать их по нужным меткам. |
|
#10
|
||||
|
||||
|
Цитата:
Это уже деталиКод:
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
|
|||
|
|||
|
Цитата:
можно упростить : Код:
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. |