Buscar en este blog

martes, 29 de diciembre de 2015

Reportes SSRS en distintos idiomas en Dynamics Ax 2012

Cuando se trabaja con reportes en Ax, existe la posibilidad de que para clientes internacionales sea requerido que los documentos como facturas, remisiones o reportes personalizados se envíen en el idioma del cliente o proveedor, para este objetivo, Ax tiene en la configuración de clientes y proveedores una opción de idioma, que de acuerdo a la documentación oficial de Microsoft con solo cambiar el campo de idioma esto debería bastar para presentar facturas, remisiones y algunos otros reportes estándar en el idioma elegido, siempre y cuando existan las etiquetas del sistema.


Pero al parecer esto no funciona como debería, así que debemos hacer un ajuste para mandar el parámetro del idioma a nuestro reporte desde la clase controller.

En este ejemplo se ilustra el proceso para dos escenarios, un reporte estándar y un reporte personalizado.

Reporte personalizado

Si ya tenemos nuestro diseño de reporte creado en visual studio, necesitamos asegurarnos que usemos etiquetas de Ax que tengan traducción en los distintos idiomas que requerimos los reportes.

Por ejemplo, en Visual Studio, el campo debería tener algo como esto:


Y si buscamos ese identificador de etiqueta en Ax (MorphX, Herramientas > Etiquetas > Editor de etiquetas), podremos verificar en cada idioma qué es lo que se mostrara.



  

Ahora lo importante, en nuestra clase controller, debemos pasar el idioma en cuál queremos que se muestre el reporte, para este ejemplo, el idioma lo estoy tomando de la configuración del cliente, así que primero busco el idioma del cliente y después en el método preRunModifyContract, incluyo la línea:

this.parmReportContract().parmRdlContract().parmLanguageId(dirParty.parmLanguageId());


Con esto, el reporte cuando se lance, mostrará las etiquetas en el idioma que se haya seleccionado.


Reporte estándar

Para el caso de clientes, el campo "Idioma"  esta en la sección "General" del módulo  "Cuentas por cobrar > Común > Clientes", este campo va a indicar el idioma en que los documentos relacionados a ese cliente se van a mostrar. Para este caso, necesitamos que el idioma sea inglés solo para ese cliente.



En la clase controller de factura electrónica por ejemplo, tendríamos que agregar las líneas para buscar el idioma del cliente y posterior a eso, mandar en un método parm del contract, el idioma del cliente
 

Con este parámetro, cuando se ejecute el reporte de factura, Ax envía el idioma en el que se desea que se muestren las etiquetas, y de esta forma, todas las etiquetas que tengan traducción en el idioma seleccionado serán mostradas en el reporte.




Post relacionados:
Reportes SQL Reporting services (SSRS) en Microsoft Dynamics Ax 2012
Filtrar reportes en Dynamics Ax 2012 SSRS basado en query con un parámetro especifico
Reportes SSRS en Dynamics Ax 2012 basados en RDP (Report data provider)
Crear reportes SSRS usando RDP (Report Data Provider) con clase controladora en Dynamics Ax 2012


Y por cierto, acuérdate de darle click a algún anuncio si el post te sirvió de algo.


No olvides que te puedes unir a la página en Facebook Aprendiendo Dynamics Ax donde únicamente se tratan temas de desarrollo y se busca crear una comunidad de desarrollador@s de Ax en nuestro idioma. 




No hay comentarios.:

Publicar un comentario