Cómo poner marcas de agua en Microsoft RDLC

Cómo poner marcas de agua en Microsoft RDLC

Luis Tabuenca Tutoriales Leave a Comment

En el presente post vamos a abordar el tema de las marcas de agua en Microsoft RDLC y, más concretamente, en reports de ventas como podría ser una factura o un albarán. ¿Te interesa?

Ajuste de dimensiones y resolución

Con frecuencia el cliente envía imágenes que serán utilizadas como marca de agua. Estas imágenes tienen una calidad muy alta y, por tanto, las dimensiones y la resolución no son aplicables a las dimensiones del report que, en general, suelen ser de DIN A4 (21cm x 29,7 cm).

Por tanto, el primer paso a realizar es ajustar estas imágenes a través de un editor, bien sea Adobe Photoshop u otros que se pueden encontrar en Internet. Las propiedades que deben tener las imágenes para que encajen bien deben ser aproximadamente 794 x 1122 píxeles y 96 PPI de resolución.

Introducción en NAV (Navision)

Una vez editadas las imágenes hay que introducirlas en el sistema. Para ello, por ejemplo, se puede crear un campo tipo “BLOB” en la “tabla 79 – Company information” con el nombre “Marca Agua”. Este campo tendrá propiedades similares a las de “Picture” y, como es lógico, en la “página 1” se deberá incluir el campo en el esquema para ser visible desde el cliente de roles y poder introducir la imagen el propio usuario.

Ajuste a nivel de layout

En este punto las imágenes están en el sistema y solo se necesita ajustarlas a nivel de layout. Cabe destacar que en ocasiones, la marca de agua se desea solo a nivel de “body”. En ese supuesto, se debe acceder a “body properties” clicando con el botón secundario en una parte del “body” sin contenido. Ahí aparecerá una propiedad llamada “Backgroundimage” con sus correspondientes subpropiedades.

En primer lugar, aparece “Source”, que indica la fuente de la que proviene la imagen. Gracias a ella se puede introducir la imagen de forma manual o que se cargue desde un campo de una tabla como se explica en el presente post.

La segunda subpropiedad es “Value” que indica, en el caso de “Database” en “Source”, el campo que contiene la imagen. Se recomienda utilizar =Convert.ToBase64String(First!(Field!CampoEnElQueSeEncuentraLaImágen)).

La tercera subpropiedad es “MIMETYPE” que simplemente indica qué formato tiene la imagen, por ejemplo, bmp, jpeg…

Por último, “BackgroundRepeat” indica cómo se va a repetir la marca de agua. Si se selecciona:

  • Repeat” se repite varias veces en la hoja
  • “Clip” muestra la marca de agua de forma completa una sola vez
  • Repeat X” en el eje horizontal
  • Repeat Y” en el eje vertical

Hasta este punto el report ya funcionaría perfectamente y mostraría una marca de agua siempre. Pero, ¿el cliente va a querer que aparezca siempre o que, por ejemplo, cuando envíe las facturas por email no aparezca dicha marca de agua?

¿Cómo filtrar entonces que la marca de agua salga para determinados supuestos?

Por desgracia, en del layout no existe la propiedad “Hidden” del “Backgroundimage” para condicionar su visibilidad. Por tanto, no queda otro remedio que hacerlo por código.

En primer lugar, en el “request page” se debe añadir una variable de tipo “boolean”, que se podría llamar “Imprimir con marca de agua” con la que el usuario podrá configurar la aparición o no de la marca de agua. Esa variable condicionará en el “OnPreReport” el “calcfields” del campo de la tabla que contiene la marca de agua.

 

Si quieres conocer más sobre Microsoft RDLC, te recomendamos la lectura de ‘La importancia de los rectángulos en Microsoft RDLC‘ o ‘Cuándo debemos activar saltos de página en Microsoft RDLC‘.

Luis-Tabuenca

 

Luis Tabuenca
Dynamics

 

 

Deja un comentario