用帮定不好,也不好实现,
在 quickreport onneedata 里面编写代码
procedure TFrm.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);
begin
if DataModule2.SPOrders.eof=false then //查询结果不为空时填写打印界面数据
begin
//fill data
MoreData:=true;
QRlProdId.Caption:=DataModule2.SPOrders.FieldByName('prodid').AsString;
QRLProdName.Caption:=DataModule2.SPOrders.FieldByName('prodname').AsString;
QRlColorName.Caption:=DataModule2.SPOrders.FieldByName('name').AsString;
QRLAmount.Caption:=DataModule2.SPOrders.FieldByName('amount').AsString;
QRLabel12.Caption:='';
DataModule2.SPOrders.next;
QuickRep1.QRPrinter.Progress:=(LocalOrderIdPosition+1)*100 div (SheetPrint.SelectOrderlist.Count);
end
else 查询结果为空
begin
if OpenNextOrderId=false then
begin
moredata:=false;
QuickRep1.QRPrinter.Progress:=100;
end
else begin
QuickRep1.NewPage;
moredata:=true;
end;
end;
end;
在 quickreport onneedata 里面编写代码
procedure TFrm.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);
begin
if DataModule2.SPOrders.eof=false then //查询结果不为空时填写打印界面数据
begin
//fill data
MoreData:=true;
QRlProdId.Caption:=DataModule2.SPOrders.FieldByName('prodid').AsString;
QRLProdName.Caption:=DataModule2.SPOrders.FieldByName('prodname').AsString;
QRlColorName.Caption:=DataModule2.SPOrders.FieldByName('name').AsString;
QRLAmount.Caption:=DataModule2.SPOrders.FieldByName('amount').AsString;
QRLabel12.Caption:='';
DataModule2.SPOrders.next;
QuickRep1.QRPrinter.Progress:=(LocalOrderIdPosition+1)*100 div (SheetPrint.SelectOrderlist.Count);
end
else 查询结果为空
begin
if OpenNextOrderId=false then
begin
moredata:=false;
QuickRep1.QRPrinter.Progress:=100;
end
else begin
QuickRep1.NewPage;
moredata:=true;
end;
end;
end;
这样没条记录就是1页了