informes con logo


([N1] jec_ebenezer) #1

Nuevamente Buenas.
Bueno , tengo una tabla que me guarda información de la empresa y dentro de esa información se encuentra un campo con el logo de la empresa, Ahora bien, se necesitan elaborar unos informes donde no necesariamente esta la tabla de empresas enlazada, pero necesito en el informe imprimir el logo de la empresa. Como lo puedo hacer?. De antemano gracias.

Jorge C.


([N1] ebarbeito) #2

Hola,

El problema está en que no es posible cargar imágenes que no sean estáticas (objetos dibujo del proyecto) o provengan de un campo de una tabla. Por tanto, tendrás que añadir un campo enlace a aquellas tablas donde quieras mostrar dicha imagen.

En una aplicación lo hice utilizando un puntero indirecto virtual. En mi caso tengo una tabla de preferencias de usuario (PREF), otra de usuarios (USR) y la tabla de empresas (EMP) donde estaría el logo de la empresa. De modo que en las preferencias de usuario se establece cuál es la empresa en curso de cada usuario. En el resto de tablas tengo un puntero indirecto virtual (REC_LNK_PREF) con el que obtengo acceso a las preferencias del usuario que accede a cada ficha de mis tablas. La resolución del enlace es el ID de usuario del que tengo que obtener sus preferencias (mediante la siguiente llamada a la función fun:USR_ID@vLyceumDat.dat(sysUserName) que me devuelve el ID del sysUserName en el momento de resolver el puntero virtual).

De modo que en el informe de cualquier tabla (las cuales tienen todas el campo REC_LNK_PREF) incluyo un control de tipo campo objeto dibujo donde le especifico el logo de la empresa (REC_LNK_PREF.EMP.IMG)

Este método funciona muy bien. Al utilizar un puntero virtual incluso si tienes informes abiertos y cambias el logo de la empresa, verás como los informes se refrescan. PERO es una solución MUY POCO eficiente pues hablamos de un puntero virtual y un objeto lista (informe) donde por cada elemento de la lista el puntero será resuelto: n fichas, n resoluciones (pese a que la resolución sea igual para todas las fichas).

A mí esta técnica no me gusta nada pero no he sabido encontrar otro método. Intento siempre evitar el uso de los “recursos virtuales” que Velneo ofrece (fórmulas dinámicas, campos virtuales) porque son, por naturaleza, poco eficientes pero en el caso de los punteros indirectos virtuales la sensación que me han dado es que son realmente poco eficientes.

Un saludo


Enrique Barbeito García (@enriquebarbeito en twitter)
Mis demos en vatp://demo:@v7cloud3.velneo.com:7288


([N1] alamillos) #3

Buenos dias
Yo creo que la solución es facilisima, pon una condicion al campo del logo, y mediante un chek y un evento en el formulario podras imprimir a voluntad el logo. Otra solucion es crear dos informes el mismo que tienes haces una copia y le quitas el logo, al imprimir pones dos botones de impresora, uno con log y otra sin logo, rpoblemente tendras muchisimas mas opciones porque con una base de datos puedes hacer lo que quieras.


([N1] ebarbeito) #4

Hola jdalamillos,

El problema no es ese, mostrar o no el logo. El asunto es que la imagen no la define el programador, es el usuario en ejecución cuando a la hora de establecer los datos de una empresa indica también el logo que hay que imprimir en los informes (o en formularios o cualquier otro objeto ficha/lista que permita incluir imágenes)

El dilema es ¿cómo puedo cargar una imagen desde otro sitio (un fichero, sería lo más apropiado) que no sea un dibujo estático del proyecto o de un campo objeto dibujo? En informes diría que es imposible. vJavascript aquí no puede hacer nada, no hay componentes html en informes, liándola pardísima con una dll o alguna ñapa así diría que tampoco…

Hace unos días estuve pensando cómo ahorrarme ese puntero virtual y no le vi solución. Tampoco me maté mucho pero diría que no se puede. Si alguien tiene alguna otra solución por favor que hable que hay interés! :slight_smile:

Saludos


Enrique Barbeito García (@enriquebarbeito en twitter)
Mis demos en vatp://demo:@v7cloud3.velneo.com:7288


([N1] alamillos) #5

Entonces no lo he entendido bien
todo depende de como esten los enlaces hechos realmente, supongamos que el informe que tiene que hacer no esté enlazado con nada de nada sino simplemente mediante procesos, tubos o importaciones lleguen los datos a ese informe, pero ahora queremos que ese informe tenga un logo. pues no existen los milagros , tendriamos que tener una base de datos de logos para seleecionar el que nos interese.

existe otra posibilidad que algun dato de la linea del informe este enlazado de alguna forma no directamente sino indirectamente con esa tabla maestra no queda otra que saber el id de la ficha, seleccionarla leerla y el logo ponerlo en el informe.