Cómo implementar bucle para número de copias en diseños de informes de Word para NAV

Clara Salvador Tutoriales Leave a Comment

En las últimas versiones de NAV (Microsoft Dynamics 2015, Microsoft Dynamics 2016, Microsoft Dynamics 2017) existe la posibilidad de diseñar informes en Word, lo que puede facilitar posteriormente las personalizaciones de los mismos por parte de los propios usuarios.

Se proporcionan unas plantillas en las que poder basarse: oferta, pedido, factura, abono, etc. No es objeto de este post hablar de cómo personalizar un informe de Word, ya que ya se ha hablado mucho de ello desde su aparición.

Lo que vamos a proponer es una forma fácil de implementar la posibilidad de poder imprimir varias copias de los documentos en informes de Word (como sí se tiene con los informes RDLC, pero no con los informes de Word).

Vamos a usar como ejemplo el informe 1306 “Standard Sales – Invoice” de NAV 2017, aunque las modificaciones realizadas podrían aplicarse fácilmente también a las versiones anteriores (Microsoft Dynamics NAV 2016 y Microsoft Dynamics NAV 2015).

Modificaciones en código C/AL e informe

  1. Añadir las siguientes variables globales:

Cómo implementar bucle para número de copias en diseños de informes de Word para NAV

  1. A continuación, añadir la siguiente constante de texto:

Cómo implementar bucle para número de copias en diseños de informes de Word para NAV

  1. Incluir el siguiente campo en el “Request Page” (página con opciones de impresión que se muestra al usuario antes de imprimir el informe):

Cómo implementar bucle para número de copias en diseños de informes de Word para NAV

  1. Añadir la siguiente columna en el DataItem “Header” (Sales Invoice Header):

Cómo implementar bucle para número de copias en diseños de informes de Word para NAV

 

  1. Por último, incluir un DataItem de tipo “Integer” llamado “CopyLoop” por encima de todos los existentes con indentación 0 con la siguiente propiedad:

DataItemTableView              SORTING(Number) ORDER(Ascending)

 

  1. Seleccionar todo el resto de elementos del informe (DataItems + Columnas), excepto el dataItem recién creado “CopyLoop”, e indentarlos todos una posición a la derecha. NOTA: Se puede apreciar que este DataItem “CopyLoop” está ubicado en una posición diferente a como está en los informes RDLC.

Cómo implementar bucle para número de copias en diseños de informes de Word para NAV

 

  1. Cambiar la propiedad del informe “WordMergeDataItem”: en lugar de “Header”, poner “CopyLoop” (el nuevo DataItem recién creado).

Este es el punto crucial que indicará a la aplicación que se cree una sección nueva y se restablezca el número de página de la sección dentro del documento de Word por cada copia de cada documento que se imprima.

Cómo implementar bucle para número de copias en diseños de informes de Word para NAV

  1. Añadir el siguiente código C/AL en el nuevo DataItem recién creado “CopyLoop”:

Cómo implementar bucle para número de copias en diseños de informes de Word para NAV

 

Modificaciones en el diseño de Word

  1. Opcional: añadir la variable “CopyDesc” como texto plano al diseño de Word desde el panel de diseño de XML, para distinguir entre el original y las copias:Cómo implementar bucle para número de copias en diseños de informes de Word para NAV2. Recomendable: añadir o modificar si ya existe, la numeración de la página (número de página / páginas totales): las funciones Word a utilizar son (Page / SectionPages)

Con estos cambios ya es posible pedir a los usuarios que introduzcan el número de copias y que éstas se impriman correctamente con el correspondiente reinicio del número de página en informes hechos con diseño Word.

Cómo implementar bucle para número de copias en diseños de informes de Word para NAV

 

Si sigues los pasos que te he marcado no vas a tener ningún problema para implementar un bucle para número de copias en diseños de informes de Word. Y si tienes cualquier duda, ¡estamos a tu disposición!

Clara Salvador
Técnica Dynamics NAV

 

Si quieres ponerte en contacto con nosotros puedes usar este formulario o llamarnos al 902 500 358:

Deja una respuesta

Tu dirección de correo electrónico no será publicada.