Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-01-2006
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
Cool Control QRPreview has no parent window

Hola!!!!

Despues de unas merecidas vacaciones, estoy de vuelta, aunque lamentablemente casi no participo, pero aqui estoy.

Estoy corriendo mi sistema, al visualizar el qreport todo va bien, pero cuando le doy clic en el boton de cerrar, me sale una ventanilla con el siguiente error 'QReport has no parent window', y de ahi ya no pasa, si le doy clic en el boton de aceptar, sigue saliendo el mismo error hasta que se traba la computadora, alguien sabe porque??.

Tengo tres tipos de accesos, el usuario, el analista y el jefe(como siempre tiene mas privilegios), pero solamente cuando entro como jefe, me marca error al salir del qreport, si entro como usuario o como analista, no pasa nada todo va bien.

pero en un rato pongo una parte del codigo, porque no me deja abrir la forma del qreport.

Gracias!!!!

Alguien sabe o tiene alguna experiencia en estos casos???

Cómo te sientes hoy??

Aqui pongo una parte del codigo

Código:
procedure Tfrm_reporte2.QuickRep1AfterPreview(Sender: TObject);
var
  contlabels : Integer;
begin
  frm_reporte2.Hide; //ocultamos la forma donde se encuentra el reporte
  contlabels := frm_reporte2.QRBResultados.ComponentCount;// contamos los componentes en este caso son las labels
  while contlabels > 0  do// ciclo para liberar las labels
  Begin
    frm_reporte2.QRBResultados.Components[contlabels-1].Free;
    contlabels:= frm_reporte2.QRBResultados.ComponentCount;
  end; //while contlabels > 0  do
  frm_reporte2.qrlaboratorio.Caption := 'Laboratorio ';
  case form_opcion.Label1.Caption[1] of
  'T':
      Begin
        frmana.Timer_text.Enabled := True;
        frmana.Show;
      end;
  'Q':
      Begin
        frmana_qui.Timer_quimico.Enabled := True;
        frmana_qui.Show;
      end;
  'I':
      Begin
        frmana_iny.Timer_iny.Enabled := True;
        frmana_iny.Show;
      end;
  'S':
      Begin
        frmana_soplado.Timer_soplado.Enabled := True;
        frmana_soplado.Show;
      end;
  end; //case form_opcion.Label1.Caption[1] of
  frm_reporte2.qrlaboratorio.Caption := 'Laboratorio';
end; //procedure Tfrm_reporte2.QuickRep1AfterPreview(Sender: TObject);
otra parte del codigo cuando se crea el qreporte

Código:
procedure Tfrm_reporte2.FormCreate(Sender: TObject);
Var
  b : Boolean;
  fol : String[9];
  cont, campos, contmuestras,contana, lineas : Integer;
begin
  lineas :=0;
  contana :=0;
  cont :=0;
  campos :=2;
  contmuestras :=0;
  SetLength(mem,10);
  {si el laboratorio seleccionado es Textil}
  case form_opcion.label1.Caption[1] of
  'T':
      Begin
        modulotablas.resul_textil.Refresh;
        {buscamos el folio que quiere ver el usuario}
        b := modulotablas.tbltextil.Locate('LabFolio', form_opcion.label1.caption, [locaseInsensitive]);
        {si lo encuentra}
        if (b) then
        Begin
        {primero se muestra la parte de la solicitud... analisis, solicitante, etc...}
          frm_reporte2.qrlaboratorio.Caption := frm_reporte2.qrlaboratorio.Caption + ' Textil';
          frm_reporte2.qrmlblfecha.Caption := modulotablas.tbltextil.FieldByName('Fecha').value;
          frm_reporte2.qrmlblfolio.Caption := modulotablas.tbltextil.FieldByName('LabFolio').value;
          frm_reporte2.qrmlblsolicitante.Caption := modulotablas.tbltextil.FieldByName('Solicitante').value;
          frm_reporte2.qrmlbltipomuestra.Caption := modulotablas.tbltextil.FieldByName('Tipo_muestra').value;
          frm_reporte2.qrmlbldeptosol.Caption := modulotablas.tbltextil.FieldByName('Depto_sol').value;
          frm_reporte2.qrmlblpruebasol.Caption := modulotablas.tbltextil.FieldByName('Pruebas').value;
          frm_reporte2.qrmlblobjetivo.Caption := modulotablas.tbltextil.FieldByName('Objetivo_trab').value;
          frm_reporte2.qrmlblfechaent.Caption := modulotablas.tbltextil.FieldByName('Fecha_ent').value;
          frm_reporte2.qrmobspanalistas.Lines.Text := modulotablas.tbltextil.FieldByName('Observaciones_textil').AsString;
          frm_reporte2.QRMresul.Lines.Text:= modulotablas.tbltextil.FieldByName('Obs_analisis').AsString;
          left := 5;
          b := modulotablas.resul_textil.Locate('LabFolio',form_opcion.label1.Caption,[lopartialkey]);
          if (b) then
          Begin
            while campos < modulotablas.resul_textil.FieldCount-1 do
            Begin
              if (modulotablas.resul_textil.FieldByName(modulotablas.resul_textil.FieldDefs.Items[campos].DisplayName).value <>'x') then
              Begin
                lab := TQRLabel.Create(QRBSET_info);
                lab.Font.Size := 9;
                lab.Left := left;
                lab.Top := 230;
                lab.Caption := modulotablas.resul_textil.FieldDefs.Items[campos].DisplayName;
                lab.Visible := True;
                lab.parent := QRBSET_info;
                mem[contana] := TQRMemo.Create(QRBResultados);
                mem[contana].Font.Size := 9;
                mem[contana].Left := left;
                mem[contana].AutoStretch := True;
                mem[contana].Top := 5;
                mem[contana].Parent := QRBResultados;
                inc(contana);
                left := left+FontWidth(lab.Font,lab.Caption);
                contmuestras := contmuestras +1;
              end; //if (modulotablas.resul_textil.FieldByName(modulotablas.resul_textil.FieldDefs.Items[campos].DisplayName).value <>'x') then
              inc(campos);
            end; //while campos < modulotablas.resul_textil.FieldCount-1 do
            {************************  ANALISIS EXTRAS **************}
            if (modulotablas.tbltextil.FieldByName('Analisis_extras').value = 1) then
            Begin
              b := modulotablas.ana_ex.Locate('Folio',form_opcion.label1.Caption,[lopartialkey]);
              if (b) then
              Begin
                //ciclo para mostrar el nombre de los analisis extras
                while ((modulotablas.ana_ex.FieldByName('Folio').value = form_opcion.Label1.Caption) and (modulotablas.ana_ex.FieldByName('Numero').value = '01')) do
                Begin
                  lab := TQRLabel.Create(QRBSET_info);
                  lab.Font.Size := 9;
                  lab.Left := left;
                  lab.Top := 230;
                  lab.Caption := modulotablas.ana_ex.FieldByName('Nombre_analisis').value;
                  lab.Visible := True;
                  lab.parent := QRBSET_info;
                  mem[contana] := TQRMemo.Create(QRBResultados);
                  mem[contana].Font.Size := 9;
                  mem[contana].Caption := modulotablas.ana_ex.FieldDefs.Items[campos].DisplayName;
                  mem[contana].Left := left;
                  mem[contana].AutoStretch := True;
                  mem[contana].Alignment := taCenter;
                  mem[contana].Top := 5;
                  mem[contana].Parent := QRBResultados;
                  inc(contana);
                  left := left+FontWidth(lab.Font,lab.Caption);
                  contmuestras := contmuestras +1;
                  modulotablas.ana_ex.Next;
                end;
                modulotablas.ana_ex.Next;
              end;
              modulotablas.ana_ex.First;
            end;
            lab := TQRLabel.Create(QRBSET_info);
            lab.left := left;
            lab.Caption := '';
            lab.Parent := QRBSET_info;
            modulotablas.resul_textil.Next;
            campos := 2;
           end; //if (b) resul_textil then
          campos :=0 ;
          modulotablas.resul_textil.First;
          {aqui empieza la parte de resultados de la solicitud}
          fol := modulotablas.resul_textil.FieldByName('LabFolio').value;
          cont := 2; //cont1 se utiliza para manejar el ciclo del numero de muestras del pre
          while fol <> form_opcion.label1.Caption do
          Begin
            modulotablas.resul_textil.Next;
            fol := modulotablas.resul_textil.FieldByName('LabFolio').value;
          end; //while fol <> form_opcion.label1.Caption do
          {*********************************************************************
           **** ciclo para mostrar el resultado de los analisis ****************
           *******************   que seleciono el usuario  *********************
           ********************************************************************}
          campos :=2;
          contana :=0;
          b := modulotablas.resul_textil.Locate('LabFolio', form_opcion.label1.Caption,[lopartialkey]);
          if (b) then
          Begin
            while ((form_opcion.Label1.Caption = modulotablas.resul_textil.FieldByName('LabFolio').value) and (modulotablas.resul_textil.Eof <> True)) do
            Begin
              while campos < modulotablas.resul_textil.FieldCount -2 do
              Begin
                if (modulotablas.resul_textil.FieldByName(modulotablas.resul_textil.FieldDefs.Items[campos].DisplayName).value <> 'x') then
                Begin
                  if (modulotablas.resul_textil.FieldByName(modulotablas.resul_textil.FieldDefs.Items[campos].DisplayName).value <> 'o')  then
                  Begin
                    mem[contana].Lines.Add(modulotablas.resul_textil.FieldByName(modulotablas.resul_textil.FieldDefs.Items[campos].DisplayName).value);
                    inc(contana);
                  end //si el valor del campo es diferente de 'o'
                  else
                  if (modulotablas.resul_textil.FieldByName(modulotablas.resul_textil.FieldDefs.Items[campos].DisplayName).value = 'o') then
                  Begin
                    mem[contana].Lines.Add('--');
                    inc(contana);
                  end;
                end; //if (modulotablas.resul_textil.FieldByName(modulotablas.resul_textil.FieldDefs.Items[campos].DisplayName).value <> 'x') then
                inc(campos);
              end; //while campos < modulotablas.resul_textil.FieldCount -2 do
              campos := 2;
              contana :=0;
              modulotablas.resul_textil.Next
            end; //while form_opcion.Label1.Caption = modulotablas.resul_textil.FieldByName('LabFolio').value do
            //ciclo para rellenar con lineas en blanco los memos
          end;
          modulotablas.ana_ex.First;
          cont := 0;
          b := modulotablas.ana_ex.Locate('Folio',form_opcion.label1.Caption,[lopartialkey]);
          if (b) then
          Begin
            if (modulotablas.ana_ex.FieldByName('Folio').value = form_opcion.Label1.Caption) then
            Begin
              while mem[cont] <> Nil do
              Begin
                if (mem[cont].Name = modulotablas.ana_ex.FieldDefs.Items[cont].DisplayName) then
                  lineas := mem[cont].Lines.Count;
                if lineas = 0 then
                  mem[cont].Lines.Add(modulotablas.ana_ex.FieldByName(modulotablas.ana_ex.FieldDefs.Items[cont].DisplayName).value);
                inc (cont);  
              end;
            end;
          end;
          while mem[0].Lines.Count < 43 do
            mem[0].Lines.Add('');
        end //if (b) en la tabla textil
      end; //case of 'T'

Código:
  case form_opcion.Label1.Caption[1] of
  'T':
      Begin
        frmana.Timer_text.Enabled := True;
        frmana.Show;
      end;
en este pedazo de codigo es donde me marca el error

al momento de entrar en la lines de frmana.show, es donde me sale el error del qreport has no parent window.

Última edición por david duarte fecha: 11-01-2006 a las 19:10:53. Razón: Cambio de titulo
Responder Con Cita
  #2  
Antiguo 19-01-2006
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
La verdad es que nunca le encontre el error, pero bueno, lo hice de otra manera, primero puse todo en un Stringgrid1 y postrirmente de ahi lo fui pasando al reporte, y ya no me marca ese error, pero creo que es porque uso( en algun lado del sistema) alguna instruccion de ShowModal. pero sigo sin entender
De todos modos los que se tomaron la delicadesa de leerlo, Muchas gracias.

Cómo te sientes hoy?
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda: Control Has No Parent Window pelaorb68 Varios 10 20-12-2005 20:36:26
Ayuda con QReport Coco_jac Impresión 3 01-12-2005 04:04:17
Como Guardar Impresión en Archivo .QRP de QReport???? AGAG4 Impresión 5 29-11-2005 02:46:24
como eliminar el minimizar y cerrar en un Qreport URBANO Impresión 5 30-06-2004 11:21:49
abrir .htm en una nueva ventana con shellexecute ruina API de Windows 5 24-06-2004 19:47:54


La franja horaria es GMT +2. Ahora son las 22:30:43.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi