![]() |
|
#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+'р.' ![]() Последний раз редактировалось 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. |