Hola charlie663!
Busca en las demos que vienen con Delphi para QuickReport, existe una que puede servirte en donde se hace uso del evento OnNeedData:
Código Delphi
[-]
procedure TfrmNeedData.FormCreate(Sender: TObject);
var
i: integer;
begin
SomeList := TStringlist.Create;
for i := 0 to 500 do
SomeList.Add('Line ' + IntToStr(i));
end;
procedure TfrmNeedData.QuickRep1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
CurrentIndex := 0;
end;
procedure TfrmNeedData.QuickRep1NeedData(Sender: TObject;
var MoreData: Boolean);
begin
MoreData := (CurrentIndex < SomeList.Count);
if MoreData then
begin
QRLabel1.Caption := SomeList[CurrentIndex];
QuickRep1.QRPrinter.Progress := (Longint(CurrentIndex) * 100) div SomeList.Count;
end
else
QuickRep1.QRPrinter.Progress := 100;
Inc(CurrentIndex);
end;
Saludos