Ver Mensaje Individual
  #10  
Antiguo 09-08-2013
Avatar de ozsWizzard
ozsWizzard ozsWizzard is offline
Miembro
 
Registrado: may 2004
Ubicación: Murcia
Posts: 190
Reputación: 21
ozsWizzard Va por buen camino
Yo creo que falta algo así... (Casteo a TQckRptPadre al asignar a ELReporte)

Cita:
Empezado por cloayza Ver Mensaje
Sugiero este pequeño cambio al código de Caminante

Código Delphi [-]
for iIndiceI := 0 to Length(aReportes) -1 do
   try
      //ElReporte := TqckrprtPadreclass(aReportes[iIndiceI]).Create(nil);
     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
__________________
La Madurez se llama...
~~~Gaia~~~

Última edición por ozsWizzard fecha: 09-08-2013 a las 12:46:49. Razón: Faltaba una frase al final
Responder Con Cita