PDA

Ver la Versión Completa : Multiples instancias en Fastreport


afxe
24-02-2010, 16:54:13
Hola amigos.

D7, Firebird 2.0, FastReport 4, aplicacion MDI

Tengo un form base del cual heredan todos los mantenimientos (un grid con un query y los botones insertar, ver, borrar e imprimir). En el botón de imprimir, cargo un reporte en FastReport con los campos que contenga el grid (que se asignaran cuando se herede).
En teoría, el usuario lanza su consulta, se carga el grid y cuando le da a imprimir sale un preview (MDI), puede volver al grid, lanzar otra consulta y volverle dar al preview, para tener 2 listados previsualizados con diferentes datos.

Os muestro parte de mi código del click del boton imprimir:




nombFic := self.ClassName + '.fr4';
frxReport1.SaveToFile(NombFic);
with TFrxReport.Create(nil) do begin
CreateUniqueName;
PreviewOptions.MDIChild := True;
PreviewOptions.Modal := False;
EngineOptions.DestroyForms := False;
LoadFromFile(nombFic);
OnPreview := frxReport1Preview;
OnClosePreview := frxReport1ClosePreview;
ShowReport();
end;



Y funciona bien, puedo lanzar tantos informes de artículos (por ejemplo) como quiera, pero si abro el query de clientes dejando abierto artículos, cuando lanzo el preview de cliente me dice que no encuentra los campos de artículos (parece como si el MasterData se hubiera quedado pillado con los datos del primer informe que se sacó). Si en vez de usar with TFrxReport.Create(nil) do begin
uso with TFrxReport.Create(Self) do begin
me realiza los informes correctamente, pero cuando intento lanzar dos informes desde el mismo mantenimiento me da un error de Component name already exists.

Alguna idea???
Gracias de antemano.