Yo creo que falta algo así... (Casteo a TQckRptPadre al asignar a ELReporte)
Cita:
Empezado por cloayza
Sugiero este pequeño cambio al código de Caminante
Código Delphi [-]for iIndiceI := 0 to Length(aReportes) -1 do
try
ElReporte := TQckRptPadre(aReportes[iIndiceI].Create(nil));
MessageDlg('Reporte '+ElReporte.Name+' creado y funcionando.', mtInformation, [mbOK], 0);
finally
ElReporte.free;
ElReporte := nil
end;
Saludos cordiales
|
En cualquier caso, Caminante ha indicado el camino correcto, en mi opinión.
Yo tengo una unidad donde abro varios Quick report que descienden del mismo y hago lo siguiente:
En una unidad uFrmQR tengo algo así.
Código Delphi
[-]
TFrmQRClass = class of TFrmQR;
pPraram es un parámtetro que tiene el Create de TFrmQr.
Código Delphi
[-]
procedure CrearQR(const pClassQr, pParam: String);
var
i: Integer;
fc: TFrmQRClass;
f: TFrmQr;
Qr: TQuickRep;
Encontrado: Boolean;
begin
fc := TFrmQRClass(FindClass(ClassQr));
f := TFrmQr(fc.Create(Self, pParam));
try
i := 0;
Encontrado := false;
repeat
if f.Components[i] is TQuickRep then
begin
Qr := (f.Components[i] as TQuickRep);
Qr.PreviewModal;
Encontrado := true;
end;
inc(i);
until (i >= f.ComponentCount) or Encontrado;
finally
f.Free;
end;
end;
Espero te pueda servir de ayuda. Un saludo