FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Error al mostrar previews
Hola: Estoy trabajando con delphi 5 y Firebird 2 tengo un problema, cuando muestro los previews de los reportes me aparece en algunas ocaciones y no siempre el siguiente error "A component named QRstadandardpreview already exists" este error me parece de vez en cuando y una vez aparece ya no me deja mostrar ningun preview de ningun reporte: este es el codigo que utilizo para mostrar los previews
Cabe anotar que este error no siempre aparece y no siempre aparece en el mismo reporte y una vez aparece no me vuelve a mostrar ningun reporte y tengo que reiniciar la aplicacion. Ademas estoy utilizando QuickReport Gracias por la atencion prestada |
#2
|
||||
|
||||
seguramente hay algun componente que estás creando en tiempo de ejecución, luego de que has llamado al constructor create asignale un nombre cualquiera o sino destruye los reportes luego de usarlos
__________________
self.free; |
#3
|
||||
|
||||
me parece que te falta liberar el componete... deberias destruirlo..una vez utilizado.
|
#4
|
||||
|
||||
Me parece que le problema mas que con la consulta es con el QuickReport
|
#5
|
||||
|
||||
si debo liberar el componente segun dice buenaOnda como lo puedo hacer, igual no esta la instrucción free, que me libera el componente o eso creo yo. Y si Oti el problema no esta en la consulta pues igual me corre perfecto el problema lo tengo en la liberación del recurso, lo cual no se como hacer.
Última edición por Vlady fecha: 13-01-2007 a las 02:50:46. |
#7
|
|||
|
|||
Cita:
La solución de ese problema es usar previews personalizados , estos son faciles de hacer y te ahorran ese problema, en la pagina www.qusoft.com viene por ahi como hacerlo (o al menos venia) , de todos modos si no viene puedes preguntar por esta via |
#8
|
||||
|
||||
El fallo que veo es obvio, pero a la vez complejo.
Cuando se crea, ¿qué nombre tendrá el componente? Pues si TRinventarios tiene en su propiedad Name = Rinventarios tendrá ese nombre, y después al crear otro componente, es decir, al volver a pasar por esa línea se volverá a crear otro componente con el mismo nombre, de ahí el error. pero ¿como es posible? si estamos haciendo un free en el bloque finally?. Bueno, posiblemente ocurra al pulsar el boton que crea ese informe dos veces, que ordenará crear ese QuickReport 2 veces. Opciones no excluyentes, para solucionarlo: - Quita el Application y usa nil como parámetro, ya que realmente te encargas tú de destruirlo. - Cuando pulses el boton para ver el preview, inhabilita (boton.enable := false) dicho botón hasta que se cierre el preview. - Usa una variable para guardar el quickreport recien creado, así delphi le asignará nombres distintos y no tendrás el error que da:
En este caso cuando creas 2 quickreports (por pulsar el boton 2 veces), Delphi le asignará los nombres (propiedad name) "TRInventarios_1" y "TRInventarios_2", por tanto ya no da el error. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#9
|
||||
|
||||
Gracias Lepe por tu valiosicima colaboración te cuento que he hecho lo que me dices pero el problema persiste el error que me pararece es el siguiente:
Project Inventarios.exe raised exeption class EAccesViolation with message 'Access violation at address 424D4F4E'. Read of address 42D4F4E. Process stopped. Use step or Run to continue. Luego de aparecerme este error me aparece el siguiente error: A Component named QRStandardPreview already exists. Despues de que me aparece esto ya no puedo volver a previsualizar un reporte y tengo que iniciar la aplicación, este error no aparece siempre solo de vez en cuando y hasta ahora no he podido saber el motivo, apesar de aplicar todas las ideas expuestas en este foro. |
#10
|
||||
|
||||
He leido que si tienes el qreport en forms autocreate (projects-> options) y después lo llamas de esta forma (creandolo de nuevo) ocurre ese error, ¿por casualidad lo tienes así?
Hasta ahora no me había percatado de este otro detalle:
En realidad debe decir Consulta.Open o Consulta.Active := true, pero vamos, el error lo daría en compilación, por lo que creo que es un fallo de escribir en el foro. Quizás también podrías usar PreviewModal en lugar de Preview, algunas veces me ha solucionado problemas de ese estilo. Lo que está claro es que el access violation es culpable, después de eso puede dar casi cualquier fallo. El access violation se produce por estar leyendo en un objeto que ya no existe, que se ha destruido previamente. En este sentido, ¿donde tienes el objeto Consulta? ¿en un Datamodule?, ¿en el TQRInventarios?. Saludos Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#11
|
||||
|
||||
Lepe muchas gracias por tu ayuda y por brindarme tus valiocisiomos conocimientos, no puedo utilizar el previewmodal ya que desde este no se puede imprimir, o si se puede como se hace?.
Los formularios no se autocrean me he fijado muy bien en esto y esta bien solo secrean en el momento que los necesito. En cuanto a tus preguntas te cuento los objetos de consulta algunas veces estan en un datamodulo otra estan en el mismo formulario que se va a mostrar es decir no existe consistencia, algunas veces funcionan bien y otras no aqui te escribo un codigo donde el objeto de consulta se encuenta en el mismo formulario a mostrar y en este se presenta en ocaciones el problema:
la cosulta que se muestra llama a un procedimiento con esto no existe ningun problema en las consultas el problema radica en mostrar el preview de los reportes Gracias Última edición por Vlady fecha: 24-01-2007 a las 14:57:02. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Mostrar DXF | Churi | Gráficos | 1 | 08-01-2007 14:33:20 |
Error al querer mostrar mensaje con JS | YaninaGenia | .NET | 0 | 27-07-2006 16:00:45 |
mostrar o no mostrar un control en un DBCTRLGRID segun la fila | gesteban | OOP | 0 | 10-11-2005 17:21:11 |
Urgente...error al querer mostrar form2 | redlyon13 | Varios | 1 | 01-12-2003 15:32:12 |
Error al mostrar formulario | jmselesan | OOP | 2 | 13-08-2003 21:11:14 |
|