FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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); 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; 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 20:10:53. Razón: Cambio de titulo |
#2
|
|||
|
|||
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? |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ayuda: Control Has No Parent Window | pelaorb68 | Varios | 10 | 20-12-2005 21:36:26 |
Ayuda con QReport | Coco_jac | Impresión | 3 | 01-12-2005 05:04:17 |
Como Guardar Impresión en Archivo .QRP de QReport???? | AGAG4 | Impresión | 5 | 29-11-2005 03:46:24 |
como eliminar el minimizar y cerrar en un Qreport | URBANO | Impresión | 5 | 30-06-2004 12:21:49 |
abrir .htm en una nueva ventana con shellexecute | ruina | API de Windows | 5 | 24-06-2004 20:47:54 |
|