PDA

Ver la Versión Completa : Añadir control de 'es copia' en FastReports


Toni
06-11-2012, 21:29:56
Hola a todos!

Tengo una aplicación realizada en C++ Builder 6 + Fast Reports 4 la cual imprime algunos documentos y quiero realizar que en el caso de los albaranes que cuando se impriman (no solo se visualicen) informen a la aplicación de que ya esta impreso, es decir informe el campo impreso = 'S' de la tabla donde se almacenan las cabeceras de los albaranes.

Por como esta integrada la aplicacón con el Fast Reports, la forma en la que he realizado esto es desde el propio report. Programando el evento OnAfterReportPrint que ejecute con ibquery con una sentencia slq tipo update que actualiza este campo.

Hasta aqui en modo diseño todo funciona correctamente, pero cual es mi sorpresa cuando guardo el informe y lo ejecuto en el modo normal. Pues parece ser que por algun motivo no ejecuta dicho evento :mad:

Para llegar a esta conclusion he puesto un ShowMessage('Pruebas'); que en modo diseño si sale y en modo normal no.

Alguien tiene alguna idea al respecto?

O otro modo de poder hacer este control de que documento se han iimpreso.

Muchas gracias!

movorack
06-11-2012, 22:45:54
Normalmente debería ejecutar el OnAfterReportPrint.

Agrega una serie de logs o mensajes por el camino que deberia recorrer tu aplicación en tiempo de ejecución a ver si logras encontrar la razón por la cual no hace la impresión.

Toni
07-11-2012, 16:44:49
Gracias movorack por tu respuesta.

Si esto que ya comentas es lo que he realizado poniendo en varios puntos una llamada a un showmessage para saber si se ejecuta el evento o no. Como decia en modo diseño si se ejecuta cuando selecciono la impresora y le doy a imprimir, pero en modo 'normal' no lo hace ya que no sale el mensaje del showmessage ni realiza la actualizacion que si hace en modo edición.

Este evento esta dentro del propio informe y el codigo que tiene que ejecutar es pascal script. El tema es que tal y como esta montado la aplicación este seria el sitio ideal, y de hecho solo falta saber porque no se ejecuta este evento o en su defecto otro lugar donde ejecutar este codigo.

Gracias!

Toni
08-11-2012, 11:14:14
Hola,

Al final me he decidio a contactar con el soporte de Fast Reports (a pesar de mi ingles..) y me han dado esta solucion:

Poner esta propiedad a false en el codigo del ejecutable:

TfrxReport.EngineOptionr.DestroyForms = false

Lo he probado y ahora si me funciona el evento :)

Lo que no tengo claro si me afectara en algo este cambio, por el momento lo he probado y no he notado nada extraño.