FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema con TCrpe
Hola,
Tengo un problema, parece que de refresco, con el componente TCrpe Para el desarrollo de la aplicación uso Delphi 2007, Crystal 10 y una base de datos Access. La rutina que da el problema se encarga de imprimir una factura pasandole como parámetro un "IdFactura" y funciona de la siguiente manera: - Vacío una tabla temporal - Lleno esta tabla con una serie de registros (las lineas de la factura correspondiente) - Asigno una serie de parámetros del informe de Crystal - Ejecuto el informe La primera vez que llamo a este procedimiento muestra correctamente todos los datos. La segunda vez que lo llamo actualiza correctamente los parámetros del informe pero muestra los datos de la llamada anterior. Si insisto y vuelvo a pedir la misma factura muestra correctamente todo. A partir de aquí funciona bien aparentemente, por que de vez en cuando vuelve a producirse el mismo fallo. El informe está guardado con la opción de "Save Data With Report" desactivada. Además utilizo la función "DiscardSavedData" de la clase del componente. He buscado este mismo error por internet, incluso he buscado otros componentes pero no encuentro solución, ¿alguna ayuda? Muchas gracias |
#2
|
|||
|
|||
Solucionado
Hola de nuevo,
Finalmente he conseguido solucionar el problema cambiando la forma de pasar los datos al informe, lo comento por si le sirve a alguien: Hasta ahora pasaba los datos de esta forma: - La cabecera (Nombre, cif, etc.) y algunos parametros para formatear dinamicamente el informe (Negrita, NoImprimirTotal, etc.) los pasaba mediante paramFields al rpt. - Las lineas del la factura (articulo, cantidad, precio, etc.) los pasaba mediante una tabla de access. El problema, además de que no se actualizaba bien, era que cuando ocurría el error teníamos una cabecera de factura con las lineas de la factura anterior. Esto era mas grave que el imprimir una factura anterior o posterior. La solución: No utilizar los parametros (paramFields) de crystal para pasar información al report. Para pasar los datos de cabecera y lineas de la factura he utilizado una consulta. Parto de las dos tablas de facturas en access: FACTURAS y FACTURAS LINEAS (cabecera y lineas respectivamente) Creo en access una consulta que relaciona ambas con todos los campos necesarios (si, la podría haber creado directamente en crystal). Creo otra tabla denominada FACTURAS A IMPRIMIR, con dos únicos campos: un Id y un IdFactura. El Id es un autonumerico y el IdFactura almacena los numeros de facturas a imprimir. En crystal agrego esta consulta al informe y se enlazan mediante el campo IdFactura. En las opciones del enlace le indico Enforced Both De esta forma, tanto si quiero imprimir una factura como lanzar una remesa de facturas, solo tengo que vaciar la tabla FACTURAS A IMPRIMIR y llenarla con los IdFactura correspondientes. Crystal filtrará los datos para que solo se impriman las facturas cuyo IdFactura coincida con los relacionados en la tabla FACTURAS A IMPRIMIR. Saludos |
#3
|
|||
|
|||
Un poco de código vale mas que mil palabras
Para imprimir una unica factura:
Para imprimir todas las facturas indicadas en la tabla FACTURAS A IMPRIMIR
PD: Finalmente el problema inicial era que olvidaba esta línea
Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Conectar Crystal Report (TCrpe) con un Ttable o TQuery | Jose_Pérez | Impresión | 9 | 07-09-2006 01:35:58 |
conectar tcrpe con query e imprimir | dmagui | Impresión | 5 | 02-11-2005 18:03:20 |
Cambiando Servidor a través de un Tcrpe... | dunia_lv | Impresión | 0 | 28-04-2005 18:17:16 |
Componente TCrpe para Crystal Reports | samame | Impresión | 0 | 24-05-2004 09:46:29 |
|