Ver Mensaje Individual
  #3  
Antiguo 14-10-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Carlos Arevalo
Creo que el problema esta en que cada reporte esta hecho en un formulario aparte.
A ver. Me da la impresión de que no leiste a fondo mi mensaje.

El StringList Reportes lo declaras en alguna unidad común, digamos, RepFactory.

En cada unidad donde definas un QuickRep, agregas RepFactory a la cláusula uses y en su sección initialization registras el reporte.

Para fijar ideas, la unidad frmivalibrodecompras quedaría así:

Código Delphi [-]
unit frmivalibrodecompras;

interface

uses
  RepFactory;

implementation

initialization
  Reportes.AddObject('QuickRepivalibro', QuickRepivalibro);
end.

Entonces, en la(s) unidad(es) donde desees usar tus reportes, agregar RegFactory a la cláusula uses (no hay necesidad de agregar la unidad de cada reporte).

Ahora ya puedes buscar en Reportes el objeto asociado al nombre, similarmente a como dice Lepe:

Código Delphi [-]
I := Reportes.IndexOf(NombreInforme);

if I <> -1 then
  xreporte := TQuickReport(Reportes.Objects[i]);

// Saludos
Responder Con Cita