temp:=getprinterstatus;
if (temp and $10)<>0 then
begin
k:=num2 div 16; //页数
h:=(num2 mod 16); //余数 num2为dbgrid4所显示的记录数(查询后)
krot:=0;
//for krot:=0 to k do
while krot<>k do
begin
for i:=1 to 16 do
begin
for j:=1 to 8 do
begin
qrl[i,j]:=tqrlabel.Create(self);
qrl[i,j].Parent:=form3.qrband2;
qrl[i,j].top:=(i-1)*48+120;
if j=1 then qrl[i,j].left:=16;
if j=2 then qrl[i,j].left:=90;
if j=3 then qrl[i,j].left:=196;
if j=4 then qrl[i,j].left:=316;
if j=5 then qrl[i,j].left:=406;
if j=6 then qrl[i,j].left:=472;
if j=7 then qrl[i,j].left:=532;
if j=8 then qrl[i,j].left:=612;
//qrl[i,j].left:=((j mod 8)-1)*90+24;
qrl[i,j].height:=20;
qrl[i,j].width:=50;
qrl[i,j].autosize:=true;
DBGrid4.DataSource.DataSet.RecNo:=(krot)*16+i;
//s1:=dbgrid2.Fields[0].AsString;
if j=1 then
qrl[i,j].caption:=dbgrid4.Fields[0].AsString; //日期
if j=2 then
begin
qrl[i,j].caption:=dbgrid4.Fields[7].AsString; //合同号码
end;
if j=3 then
begin
qrl[i,j].caption:=dbgrid4.Fields[1].AsString; //手机号码
end;
if j=4 then
begin
qrl[i,j].caption:=dbgrid4.Fields[6].AsString; //话费金额
end;
if j=5 then
begin
qrl[i,j].caption:=dbgrid4.Fields[2].AsString; //滞纳金
end;
if j=6 then
begin
qrl[i,j].caption:=dbgrid4.Fields[3].AsString; //预缴话费
end;
if j=7 then
begin
qrl[i,j].caption:=dbgrid4.Fields[4].AsString; //优惠金额
end;
if j=8 then
begin
qrl[i,j].caption:=dbgrid4.Fields[5].AsString; //收缴金额
end;
end; //for j
end; //for i
form3.QRLabel14.Caption:='共'+''+inttostr(k+1)+''+'页';
form3.QRLabel15.Caption:='第'+''+inttostr(krot+1)+''+'页';
try
form3.QuickRep1.Print;
for i:=1 to 16 do //打印完成后释放qrl
begin
for j:=1 to 8 do
qrl[i,j].Free;
end;
krot:=krot+1;
except
showmessage('打印未进行,请检查打印机是否正常,并重新打印');
for i:=1 to 16 do //打印完成后释放qrl
begin
for j:=1 to 8 do
qrl[i,j].Free;
end;
end; //try
end; //while krot<>k 两种情况---完整页(16行)