PDA

Ver la Versión Completa : Utilizar en un QR componentes de otro formulario


lbidi
07-07-2008, 20:58:29
Tengo el siguiente problema..
Tengo un formulario MDI que tiene un boton en el cual crea y llama a un reporte Quickreport. En dicho reporte, tengo un label q lo asigno en el evento before print del reporte, con la propiedad text de un edit del formulario que lo llama..

Por lo tanto tengo en los 2 formularios ( original y reporte ) , correspondientes uses al otro..

Primer duda, de que tipo tengo que crear el formulario que contiene el reporte, si lo estoy llamando de un mdi child , otro mdi, o normal ??..

No me da error al compilar pero cuando lo ejecuto, me da un error de "violacion de acceso en la direccion...." y sigue...

Es posible asignar un qrlabel con el texto de otro componente de otro formulario??

Gracias..

Leonardo

maeyanes
07-07-2008, 21:05:40
Hola...

Como es que llamas a la forma del reporte?

Por que el error que obtienes indica que tratas de usar un objeto que no ha sido creado o que ya fue destruido...

Podrías poner algo de tu código?


Saludos...

Caro
08-07-2008, 05:21:35
Hola Ibidi, puedes crear el formulario que tiene el reporte como normal y antes de mostrar o imprimir pasarle lo que tienes en tu edit.


Form2 := TForm2.Create(Self);
Form2.QRLabel1.Caption := Edit1.Text;
Form2.QuickRep1.Preview;


Saluditos

lbidi
08-07-2008, 13:21:48
Hola, gracias a ambos por responder. Creo que encontre el problema y es que yo dentro de mi formulario original lo creo con la siguiente funcion.


procedure CrearForm( AClass: TFormClass; ATag: integer; const name : string );
//-----------------------------------------------------------------------//
var
f: Tform;
begin
F := Application.FindComponent(name) as tForm;
if Assigned( F ) then
F.Show
else begin
F := Aclass.Create(Application);
F.Tag := ATag;
F.Caption := name;
end;
end;


entonces cuando desde el reporte hace referencia a la variable asignada al form, no la encuentra porque no esta definida..

Habria alguna manera de hacerlo de este modo ??'

Gracias..

Caro
09-07-2008, 05:14:41
Hola lbidi, hice la prueba creando al formulario con tu función y si da el error que mencionas, en el evento beforePrint del reporte, nose como solucionar eso. Pero también hice la prueba de llenar el qrLabel del formulario que lo llama, que es creado con tu función y si funciona, no marca error.


CrearForm(TForm3, 2, 'Form3' );
TForm3(F).QRLabel1.Caption := Edit1.Text;
TForm3(F).QuickRep1.Preview;


F es la variable que usas en tu funcion, pero definida de forma Global y TForm3, el formulario donde esta el reporte.

Saluditos

lbidi
09-07-2008, 14:21:57
Gracias Caro por tu respuesta..
Lo probare asi..

Saludos.