Tengo una duda sobre los informes nativos de Velneo, ya que he definido dos informes con estas características:
Informe 01
Salida por defecto.: Presentación preliminar
Impresora lógica…: Definida
Conexión de evento.: Pre-Inicialización
Manejador de evento: Evt_Pre_Inicialización, teniendo este último una llamada a una función que devuelve una serie de
codificaciones que si o si tiene que imprimirse en la cabecera de página
Llamada del informe: Acción, con objeto 1 un proceso y objeto 2 el informe
Informe 02
Salida por defecto.: Fichero
Ruta del fichero…: Definida
Conexión de evento.: Pre-Inicialización
Manejador de evento: Evt_Pre_Inicialización, teniendo este último una llamada a una función que devuelve una serie de
codificaciones que si o si tiene que imprimirse en la cabecera de página
Llamada del informe: Acción, con un solo objeto que ejecuta un proceso y este último se encarga de “Imprimir informe
(NOMBRE_INFORME@Nombre_Proyecto)”
Pues bien, en el Informe 01, se ejecuta sin problemas la conexión de evento y por ende el manejador de evento, generando dicha cofidicación e imprimiéndose en la cabecera. Sin embargo, en el informe 02 hace caso omiso tanto a la conexión como al manejador, no devolviendo ni
imprimiento dicha codificación. ¿Esto es normal?
El informe funciona perfectamente en ambos casos, lo único es que en la cabecera, tenemos que imprimir una serie de codificaciones dependiendo de una biblioteca de formatos para el departemento de calidad, el resto de datos se muestran ok.
En nuestro caso no podemos usar el depurador ya que estamos en la versión 7.15.
La acción del informe 01, se llama desde un botón en el formulario que tiene la rejilla con los datos, y en el informe 02 la acción se llama desde un menú lateral.
Seguramente el comando “Imprimir informe” no ejecuta los eventos del Informe porque la salida es directa a la impresora y no hay Interfaz Velneo de por medio. Es una suposición mía.
Por lo tanto, tendrás que sacar el Informe por Vista previa para ejecutar los eventos.
Sustituye el comando “Imprimir informe” por “Crear manejador de objeto -> Añadir lista -> Disparar objeto”.
Si no te interesa ver la Vista previa del Informe y quieres salida directa a impresora, tendrás que prescindir del evento PRE_INICIALIZAOD. Llama a la función antes de ejecutar el informe y pasa los valores al Informe con “Set variable local de objeto”.
Ejemplo:
Set VAR1 = func:MiFuncion()
Set VAR2 = func:MiFuncion()
Crear manejador de objeto (oInf, MiInforme)
Añadir lista al objeto
Set variable local de objeto (VAR1, VAR1)
Set variable local de objeto (VAR2, VAR2)
Disparar objeto
Esta última solución me funciona perfectamente. La verdad es que tiene bastante sentido que cuando un informe tiene salida directa a impresora o a fichero no se ejecuten los eventos definidos.