with adoquery1 do begin close; sql.clear; sql.add('select 金额,sum(金额) as zongji from table1'); open; end; label2.caption:=adoquery1.fieldbyname('zongji').asstring;
谢谢上面两位,我的意思是金额是不存在的,是一个临时的变量,然后在标签中显示出汇总金额,我用下面程序写完之后,只是汇总当前的金额,没有实现累加。 procedure Twh_kcpd.DBGrid4ColEnter(Sender: TObject); var tota:real; begin tota:=0; whdata.pd_temp.Edit; tota:=tota+whdata.pd_temp.fieldbyname('in_price').asfloat*whdata.pd_temp.fieldbyname('amt').asinteger; label3.Caption:=floattostr(tota); next; end; end. 各位,帮助我看一下。
当然不能累加,你代码中的NEXT是没有意义的,你应该用一个循环,如: WHILE NOT WHDATA.PD_TEMP.EDIT.EOF DO BEGIN ... tota:=tota+whdata.pd_temp.fieldbyname('in_price').asfloat*whdata.pd_temp.fieldbyname('amt').asinteger; NEXT;
Query1.Close; Query1.SQL.Text:='Select Sum(字段) T from Table' Query1.Open; Label1.Caption:=Query1.Fields[0].AsString;
你看,我用循环了,还是不能累加。 procedure Twh_kcpd.DBGrid4ColEnter(Sender: TObject); var tota:real; begin tota:=0; while not whdata.pd_temp.Eof do whdata.pd_temp.First; begin whdata.pd_temp.First; whdata.pd_temp.Edit; tota:=tota+whdata.pd_temp.fieldbyname('in_price').asfloat*whdata.pd_temp.fieldbyname('amt').asinteger; label3.Caption:=floattostr(tota); next; end; end; end.
begin
close;
sql.clear;
sql.add('select 金额,sum(金额) as zongji from table1');
open;
end;
label2.caption:=adoquery1.fieldbyname('zongji').asstring;
procedure Twh_kcpd.DBGrid4ColEnter(Sender: TObject);
var
tota:real;
begin
tota:=0;
whdata.pd_temp.Edit;
tota:=tota+whdata.pd_temp.fieldbyname('in_price').asfloat*whdata.pd_temp.fieldbyname('amt').asinteger;
label3.Caption:=floattostr(tota);
next;
end;
end.
各位,帮助我看一下。
WHILE NOT WHDATA.PD_TEMP.EDIT.EOF DO
BEGIN
...
tota:=tota+whdata.pd_temp.fieldbyname('in_price').asfloat*whdata.pd_temp.fieldbyname('amt').asinteger;
NEXT;
Query1.SQL.Text:='Select Sum(字段) T from Table'
Query1.Open;
Label1.Caption:=Query1.Fields[0].AsString;
procedure Twh_kcpd.DBGrid4ColEnter(Sender: TObject);
var
tota:real;
begin
tota:=0;
while not whdata.pd_temp.Eof do
whdata.pd_temp.First;
begin
whdata.pd_temp.First;
whdata.pd_temp.Edit;
tota:=tota+whdata.pd_temp.fieldbyname('in_price').asfloat*whdata.pd_temp.fieldbyname('amt').asinteger;
label3.Caption:=floattostr(tota);
next;
end;
end;
end.