2.Creando un informe RDP


El modelo de programación de informes en AX2012 utiliza el patrón MVC para separar la interface de usuario y la lógica de negocio.




El modelo MVC  distribuye las funciones como se explica a continuación:

View (Vista): Representa la visualización del informe.
Model (Modelo): Recupera los datos que se generan.
Controller (Controlador):  Son los parámetros y los constructores de interface de usuario que se utilizarán para generar el informe.

 

Modelo

Un modelo para un informe SSRS puede ser una consulta de AOT,  un RDP (Report Data Provider)  o una lógica de negocio.
La consulta AOT  son consultas modeladas utilizando el MorphX IDE (Queries), mientras que los RDP son clases que extienden  SRSReportDataProvider.
Un modelo RDP se utiliza cuando se necesitan datos calculados y que son difíciles de conseguir a través de una query.

Controlador
Es aquel que une las diferentes clases  y controla la ejecución del informe.
Se lleva a cabo por la clase SSRSReportRunController   y se puede extender para aplicar
controles específicos en los informes.


Constructor UI:

Esta es otra clase de controlador que se encarga  de la construcción de la interface de usuario, implementado por la clase SRSReportDataContractUIBuilder, la cual extiende de la SysOperationAutomaticUIBuilder y puede ser modificada para la implementación de un informe.
Se puede modificar para manejar eventos de interface de usuario, tales como validaciones y modificaciones.

Report Data Provider(RDP)
El concepto de RDP es muy simple.
La función principal  de una clase RDP es proveer los datos del informe.
Se rellena una tabla temporal  mediante una consulta o lógica de negocio con todos los campos necesarios para el informe. Luego se utiliza esta tabla temporal como fuente de datos para el informe.
Cualquier clase que extienda de SRSReportDataProviderbase / SRSReportDataProviderPreprocess puede actuar como un RDP.

Resumiendo un poco,  existen cuatro tipos de clases para crear los informes RDP:
Contract:  Encargada de los parámetros que aparecerán en los diálogos.
Controller: La encargada de lanzar el informe y modificar la query antes de mostrarse.
DataProvider: Clase encargada de modelar  los datos.
UIBuilder: Se utiliza para implementaciones, sobrescribir  eventos, así como validaciones y modificaciones.
 
 


Comentarios