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 20-07-2006
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
Index is out of date

Hola!!!!
ya se que hay varios temas con este titulo, pero no encontre, la solucion, bueno, realmente ya mas o menos me doy una idea de porque sale este error.

Pero no encuentro la solucion al mio, mi problema es que al mostrar un reporte (varias veces y no necesariamente el mio) me sale este error.

Explico

al momento de generar el reporte, genero unas columnas (qrdbtext), el problema es que no siempre son las mismas, al final, (supuestamente) se liberan, pero cuando vuelvo a mostrar el siguiente reporte, me sale este error, entonces, probablemente sea por ese lado.

Este error me pasa cuando despues de varias veces mostrar "x" reportes.

y hay veces que se enciman los qrdbtext, es decir, creo que no se liberan, por lo tanto, cuando vuelvo a crear los del reporte actual, y estos son de menor tamaño que los anteriores, se alcanza a distinguir un cacho de texto del anterior.

Si no me explico, pongo codigo

aqui es donde creo los qrdbtext
Código Delphi [-]
   texto := TQRDBText.Create(DetailBand1);
   texto.Top := arriba;
   texto.Left := izq;
   texto.DataSet := Query1;
   texto.Mask := ',.00';

tambien utilizo una funcion para calcular el tamaño del texto o del qrdbtext.

supuestamente cuando salgo del qreport se destruye o se libera la memoria que utilizé cuando asigne los qrdbtext,

entonces si cada que abro un reporte se crean los qrdbtext porque me marca ese error??

bueno y aprovechando de su generosidad, alguien sabe si puedo liberar la memoria que utilizo al momento de mostrar el reporte, esto es, que cuando el reporte se muestre completo, se libere la memoria que se ocupo.

esto podria ser con un try... finally.

Muchas gracias de nuevo
Saludos!!!

Última edición por david duarte fecha: 20-07-2006 a las 01:13:25.
Responder Con Cita
  #2  
Antiguo 20-07-2006
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
El error que te da veo que no tiene que ver con el informe en sí, sino con algún índice de Paradox que no está actualizado.

Todas las tablas deben de tener una clave primaria para que los índices sean mantenidos adecuadamente, en la sección trucos del club tienes un artículo muy interesante de como configurar Paradox en red, si es que este tu caso.

Por otra parte para liberar la memoria yo utilizo esto:

En el OnClose del formulario que contiene el informe:
Código Delphi [-]
Application.ProcessMessages;
FreeAndNil(Mi_Informe);
Action:=CaFree;

//y luego cierro por código el formulario en el que se abrio el informe:

Mi_Formulario.Close;

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 21-07-2006
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
Perdoooooooooooooooooooonnnnnnnnnnnnnnn

ese no era el titulo del hilo, se me paso
El titulo es index is out of bounds

Sorry, perdon!

Gracias Marcozorrilla

Ya tengo configurado el paradox en red. y mis tablas tambien tienen un campo llave que sirve como indice.

Bueno, si alguien sabe porque sale ese error, se lo agradecería
Mientras voy a seguir probando a ver que sale.

Saludos!!!!

Edito.....

Si algun moderador quiere cambiarle el titulo al index is out of bound, se lo agradecere.

Última edición por david duarte fecha: 21-07-2006 a las 19:05:32.
Responder Con Cita
  #4  
Antiguo 21-07-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Pero el informe, ¿lo liberas realmente de memoria?

Me explico, si lo tienes en Project -> Options-> AutoCreate el informe se crea pero se destruye ¡¡ al final de la aplicación !!

Como bien dices, el Owner (dueño) de esos qrdbtext será el DetailBand, pero si ésta no se libera nunca, pues no se liberarán los qrdbtext.

En conclusión, quitalo de Autocreate y para mostrar el informe usas:
Código Delphi [-]
  FrmRporte := TFrmRporte.Create(nil);
  FrmRporte.quickreport1.PreviewModal
  FreeAndNil(FrmRporte); 
// destruyes la ventana que tiene el Reporte
// la ventana destruirá el QuickReport
// el QuickReport destruirá las bandas
// la banda Detail destruirá los qrdbtext.
// yo me destruyo a mi mismo 

Saludos

Edito: mensaje corregido, donde decía Available, debía decir AutoCreate.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 26-07-2006 a las 09:03:32.
Responder Con Cita
  #5  
Antiguo 26-07-2006
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
Hola Lepe

Gracias

Te comento que en este momento, tengo todas mis formas en autocreate no se si eso tenga que ver.

Supongo que en este caso, tendria que destruir el reporte y liberar memoria cuando lo cierren y volverlo a crear cuando lo manden llamar =)

Voy a checar y te digo que errores me marco.

Saludos

Muchas gracias otra vez
Responder Con Cita
  #6  
Antiguo 26-07-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Creo que me has entendido, aunque lo dije al revés.

Si está en Autocreate, se crea y solo se destruye al final de la aplicación.
Si está en Available, lo tienes que crear y destruir (es lo que debes hacer con ese informe).

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 18-08-2006
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
Hola!!!

Al parecer me va todo bien, a ver que sucede, todavia no he probado el sistema con los usuarios, les digo como fue.
Saludos!!!
y gracias de nuevo por su atencion.
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
Index is out of date... index table torito Conexión con bases de datos 7 10-12-2016 13:21:31
Index Out of Date mariofur Conexión con bases de datos 1 23-05-2006 13:30:11
¿index Of Out Date? Porque!!!!!!!!! seken Conexión con bases de datos 8 01-10-2004 17:34:06
El famoso 'Index out of date' cesarjbf Tablas planas 2 10-06-2004 07:53:33
Index out of date Luis_Alberto Tablas planas 3 27-11-2003 07:51:22


La franja horaria es GMT +2. Ahora son las 15:56:21.


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