Utilizamos o padrão de Factory e Parameter Object para otimizar nossas telas de relatório. Veja em detalhes o que precisa ser feito para invocar um relatório.

Tem alguns vídeos que fiz explicando como criar o relatório do zero.

No vídeo abaixo mostro a parte mais técnica do parameter e relatório.