我再做一个领用统计报表:从表1种获得编号,从表2中计算在指定的时间内的领料数量,我用qrdbtext列出表一的所有编号,根据变号和指定的时间到表2种计算领料数量,其中COMBOBOX1,COMBOBOX2分别为年,月,DBLOOKUPCOMBOBOX1为指定的部门,RQDBTEXT为编号,RQDBTEXT2为名称,改如何获得领料的数量 procedure TForm11.BitBtn1Click(Sender: TObject); VAR bumenno1:integer; ss:string; begin qrlabel7.Caption:='二厂'+dblookupcombobox1.Text+combobox1.text+'年'+combobox2.Text+'月份劳保用品领用汇总表'; qrdbtext1.DataSet:=datamodule2.laobaoTable; qrdbtext1.DataField:='laobaono'; qrdbtext2.DataSet:=datamodule2.laobaoTable; qrdbtext2.DataField:='laobaoname'; with datamodule2.bumentable do begin active:=true; locate('bumenname',dblookupcombobox1.Text,[]); bumenno1:=datamodule2.bumentable.fieldbyname('bumenno').asinteger;{驱的部门编号} end; with datamodule2.lingyongTable do{计算领料数量,请邦我写出语句} begin ?????????????????????????? end; procedure TForm11.FormActivate(Sender: TObject); begin datamodule2.bumentable.Open; end
如果lingyongtable和bumentable建立了主从表关系: with datamodule2.lingyongTable do begin lingyongtable.close; lingyongtable.open; linglaoshuliang:=0; for i:=1 to lingyongtable.recordcount do begin linglaoshuliang:=linglaoshuliang+lingyongtable.fieldbyname('lingyongshuliang').asinteger; lingyongtable1.next; end; end;如果没建立主从关系 可用lingyongquery with datamodule2.lingyongquery do begin lingyongquery.close lingyongquery.sql.clear; lingyongquery.sql.add('select sum(lingyongshuliang) as lysl from lingyongtablename where id=:id'); lingyongquery.parameters[0].values:=bumenno1; lingyngquery.open; lingyongshuliang:=lingyongquery.fieldbyname('lysl').asinteger; end; 最好建立主从关系 可能有些表名和字段名不符自己改
QRDBTEXT,你要他的值,有些不可能!
换种方法吧
procedure TForm11.BitBtn1Click(Sender: TObject);
VAR bumenno1:integer;
ss:string;
begin
qrlabel7.Caption:='二厂'+dblookupcombobox1.Text+combobox1.text+'年'+combobox2.Text+'月份劳保用品领用汇总表';
qrdbtext1.DataSet:=datamodule2.laobaoTable;
qrdbtext1.DataField:='laobaono';
qrdbtext2.DataSet:=datamodule2.laobaoTable;
qrdbtext2.DataField:='laobaoname';
with datamodule2.bumentable do
begin
active:=true;
locate('bumenname',dblookupcombobox1.Text,[]);
bumenno1:=datamodule2.bumentable.fieldbyname('bumenno').asinteger;{驱的部门编号}
end;
with datamodule2.lingyongTable do{计算领料数量,请邦我写出语句}
begin
??????????????????????????
end;
procedure TForm11.FormActivate(Sender: TObject);
begin
datamodule2.bumentable.Open;
end
with datamodule2.lingyongTable do
begin
lingyongtable.close;
lingyongtable.open;
linglaoshuliang:=0;
for i:=1 to lingyongtable.recordcount do
begin
linglaoshuliang:=linglaoshuliang+lingyongtable.fieldbyname('lingyongshuliang').asinteger;
lingyongtable1.next;
end;
end;如果没建立主从关系 可用lingyongquery
with datamodule2.lingyongquery do
begin
lingyongquery.close
lingyongquery.sql.clear;
lingyongquery.sql.add('select sum(lingyongshuliang) as lysl from lingyongtablename where id=:id');
lingyongquery.parameters[0].values:=bumenno1;
lingyngquery.open;
lingyongshuliang:=lingyongquery.fieldbyname('lysl').asinteger;
end;
最好建立主从关系 可能有些表名和字段名不符自己改