Diferencias de los informes entre una acción y un proceso


([N1] Anacreonte) #1

Hola a todos.

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?

Un saludo.
Paco.


([N1] wikan) #2

Depende como tengas definida la acción y desde donde se llame.
¿Te devuelve registros el proceso llamado desde la acción?

Prueba a usar depurador para verificar los comportamientos.


([N1] Anacreonte) #3

Hola Manuel,

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.

Un saludo.
Paco.


([N1] wikan) #4

Pues ni idea, la verdad es que no uso los informes nativos.

Si en la segunda opción pones un mensaje, se te muestra?


([N1] Anacreonte) #5

Pues no. De momento estoy tirando por la calle de enmedio, montando con globales.


([N3] pacosatu) #6

Hola Paco.

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

Pruébalo
Saludos
Paco Satué


([N1] Anacreonte) #7

Mil gracias Manuel y Paco,

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.

Un saludo.
Paco.