NAV: Mostrar imagen dentro de un reporte

NAV: Mostrar imagen dentro de un reporte

En esta entrada pretendo mostrar los pasos para poder cargar una imagen dentro de un reporte en Dynamics NAV 2018. No resulta complicado pero sí es un proceso largo para realizar una tarea tan simple.

Los pasos a seguir serían los siguientes:

  1. Nos dirigimos al histórico de facturas de ventas, seleccionamos alguna y hacemos clic en “Imprimir”:
  2. Hacemos clic en el botón de “Vista previa”:
  3. Vemos un reporte bastante feo, donde remarco en rojo donde debería figurar el logo:
  4. En el entorno de desarrollo de NAV, nos dirigimos al reporte que deseamos modificar:
  5. Una vez abierto, hacemos clic derecho y seleccionamos “New”:
  6. Agreamos el campo “Picture” de la tabla “CompanyInfo” y le ponemos el nombre “Logo” a la variable “Name”:
  7. Nos dirigimos al código C/AL:
  8. Buscamos la llamada al método GET de “Company Information”:

  9. Agregamos el código necesario dentro del método OnAfterGetRecord del DataItem “Sales Invoice Header”:

    Sales Invoice Header - OnAfterGetRecord()
    //CMASDEV
    //Picture es un campo de tipo BLOB y para poder obtenerlo
    //debemos llamar al método siguiente que retorna el valor
    //desde la base de datos.
    CompanyInfo.CALCFIELDS(Picture);
    //CMASDEV
    ...
    

    Compilamos y guardamos el código.

  10. Abrimos el diseño del reporte, en este caso con “SQL Server Report Designer” y arrastramos el objeto “Image”:
  11. Completamos las propiedades, guardamos todos (diseñador de reporte y Reporte):
  12. Verificamos si tenemos un logo cargado en la página “Company Information”:
  13. Volvemos al paso Nº 1 e imprimimos el reporte:

Hemos seguido estos sencillos pero tediosos pasos para lograr colocar una imagen dentro de un reporte. La ventaja de esto es que ese logo lo obtenemos para todos los reportes desde el mismo lugar, aplicando la reutilización 😛

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.