我可以帮你做出来,你再出具体一点,下边只是一点点代码
procedure Ttdeform.printyss;
var
dayingform:tdayingform;
i,j:integer;
begin
dayingform:=tdayingform.Create(application);
lsysquery:=Tadoquery.Create(Application);
lsysquery.Connection:=projectdatamodule.Projectconnection;
with lsysquery do
begin
close;
SQL.Clear ;
SQL.Add('select * from Yss_ls');
prepared;
Open;
first;
end;
dayingform.QRDBText1.DataSet:=lsysquery;
dayingform.QRDBText3.DataSet:=lsysquery;
dayingform.QRDBText5.DataSet:=lsysquery;
dayingform.QRDBText4.DataSet:=lsysquery;
dayingform.QRDBText6.DataSet:=lsysquery;
dayingform.QRDBText7.DataSet:=lsysquery;
dayingform.QuickRep1.DataSet:=lsysquery;
dayingform.qrlabel21.Caption:=projectname;
dayingform.QuickRep1.Preview; lsysquery.Free;
end;
procedure Ttdeform.printyss;
var
dayingform:tdayingform;
i,j:integer;
begin
dayingform:=tdayingform.Create(application);
lsysquery:=Tadoquery.Create(Application);
lsysquery.Connection:=projectdatamodule.Projectconnection;
with lsysquery do
begin
close;
SQL.Clear ;
SQL.Add('select * from Yss_ls');
prepared;
Open;
first;
end;
dayingform.QRDBText1.DataSet:=lsysquery;
dayingform.QRDBText3.DataSet:=lsysquery;
dayingform.QRDBText5.DataSet:=lsysquery;
dayingform.QRDBText4.DataSet:=lsysquery;
dayingform.QRDBText6.DataSet:=lsysquery;
dayingform.QRDBText7.DataSet:=lsysquery;
dayingform.QuickRep1.DataSet:=lsysquery;
dayingform.qrlabel21.Caption:=projectname;
dayingform.QuickRep1.Preview; lsysquery.Free;
end;
NO。1
你可以下新的控件;
NO.2
你在程序中动态的写;
NO.3
用QRExpr//最容易
动太态写又如何?
我用的是QRexpr,遇到麻烦 再明确一点吧:
第一页(假设每页有二条记录)
序号 物业费
1 6000
2 3000
小计 9000
第二页 物业费
3 8000
小计 8000
说明如下:要求小计紧跟于数据后面,第二页中由于数据记录只有一条,所以在其后也就是第4条的位置上是小计,我本来是将小计做在pagefooter里的,这样不行,因为还要把所有的数据都画在一张表里,包括小计,如果写在pagefooter里的话,第二页很难画的。中间会出现一个大空,记录多的话,就更加难看。