Hola,
Yo lo tengo resuelto más o menos y sin TQRLabel, directamente con TQRDBText.
Para ello tengo en la parte pública definido un TDataSet con el nombre Tabla (lo puedes poner como propiedad publicada), y tengo un procedimiento (AsignarTabla), para asignar a la propiedad DataSet de todos los TQRDBText del QuickReport el TDataSet con nombre Tabla que he definido en la parte pública. Eso sí, es para los listados estándar y siempre creo la tabla con los mismos campos y conforme voy grabando el detalle, a esos campos le doy los valores que me interesan, a saber, título del listado, fecha, nombre de la empresa, etc... Cuando creo el formulario que contiene el QuickReport, antes de hacer el Preview o Print del mismo, asigno a la variable Tabla el TDataSet con todos los registros, llamo al procedimiento AsignarTabla y ya está. El ejemplo:
Código Delphi
[-]
type
TfrmImpListado = class(TForm)
qrListado: TQuickRep;
PageHeaderBand1: TQRBand;
DetailBand1: TQRBand;
PageFooterBand1: TQRBand;
QRDBText1: TQRDBText;
QRDBText2: TQRDBText;
QRDBText3: TQRDBText;
QRDBText4: TQRDBText;
QRDBText5: TQRDBText;
QRDBText6: TQRDBText;
QRDBText7: TQRDBText;
QRDBText8: TQRDBText;
QRDBText9: TQRDBText;
QRDBText10: TQRDBText;
QRDBText11: TQRDBText;
QRDBText12: TQRDBText;
procedure AsignarTabla;
private
public
Tabla: TDataSet;
end;
implementation
{$R *.DFM}
procedure TfrmImpListado.AsignarTabla;
var
n: Integer;
begin
qrListado.DataSet := Tabla;
for n := 0 to frmImpListado.ComponentCount - 1 do begin
if frmImpListado.Components[n] is TQRDBText then begin
(frmImpListado.Components[n] as TQRDBText).DataSet := Tabla;
end;
end;
end;
Saludos