Ver Mensaje Individual
  #1  
Antiguo 17-08-2007
david.rguez david.rguez is offline
Miembro
 
Registrado: jun 2006
Ubicación: Zamora, la bien cercada
Posts: 104
Reputación: 18
david.rguez Va por buen camino
Problema con ADOTable y Rave Report

A ver si alguien me puede ayudar, porque ya no sé por dónde salir.

Explico: Estoy realizando un módulo de trazabilidad para poder seguir el historial de un depósito de una bodega. Este módulo y sus cálculos los he realizado mediante la técnica del backtracking hasta un nivel máximo de 10 anidaciones.

Ahora, una vez hechos y comprobados los cálculos, debo utilizar Rave Report para crear informes acerca de esa trazabilidad. Los resultados están agrupados según referencias, identificadas por un número.

En primer lugar permito sacar el informe relativo a una referencia elegida por el usuario. Y aquí empieza la odisea:

Los datos para el informe provienen de 4 TADOTable:

- T1 (que es el principal)
- T2 (tiene una relación de maestro/esclavo con T1, siendo T1 el maestro)
- T3 (tiene una relación de maestro/esclavo con T1, siendo T1 el maestro)
- T4 (tiene un filtro para decidir qué registros pasan y cuáles no)


Rave compone el informe recorriendo las tablas, vale, ningún problema.

PERO, cuando cierro el informe, he comprobado que antes de ejecutar la siguiente operación al "RvProject1.execute", empieza a intentar avanzar a través de la T1 y, cuando llega al final, da error al detectar el EOF. Esto lo solucioné con una variable booleana que activo antes de hacer el execute y desactivo después de realizarlo. En el BeforeScroll, si la variable está activada y estamos al final del fichero, hago un Abort, pues no tiene que hacer nada más.


Hasta ahí pude apañármelas, pero el problema viene en la segunda opción del informe, que es sacar por impresora directamente TODAS las referencias. Para ello, aprovecho el informe anterior y lo ejecuto reiteradamente una vez por cada referencia.

Pero aquí ya no puedo poner el Abort, pues tiene que seguir ejecutando las referencias posteriores... y si no lo pongo, me da el error que comenté antes.

¿Alguien puede darme alguna idea?
Responder Con Cita