...
Dica | ||
---|---|---|
| ||
Por se tratar de um relatório, o sub-relatório possui sua própria fonte de dados com seus filtros e/ou parâmetros. |
...
...
Para melhor exemplificar o uso do recurso, será criado um fluxo de uso a seguir, contendo o seguinte cenário:
O Conector que será usado, referente a um Provedor Nativo, possui os Objetos de Negócio: Funcionários e o Histórico de Férias desse funcionário.
Os dados demonstrados que serão usados para criação dos Relatórios estão disponíveis no seguinte endereço:
Bloco de código | ||
---|---|---|
| ||
https://run.mocky.io/v3/bec2d116-8298-4ff5-93c2-24a340ed0901 |
Conforme a representação, as informações de férias no relatório principal de Funcionários, vêm de um sub-relatório de Histórico de Férias.
O primeiro passo será criar o Relatório Principal, escolhendo o Objeto de Negócio Funcionários.
O segundo Relatório, que será referenciado como um Sub-Relatório, será configurado com o Objeto de Negócio Histórico de Férias.
Dica | ||
---|---|---|
| ||
Os objetos de Negócio possuem o campo "Chapa" em comum, é por ele que o sub-relatório Histórico de Férias fará a relação com o Funcionário listado no Relatório Principal. |
Seguindo o Modelo de Relatório Final, os dados de Histórico de Férias (Sub-Relatório) serão trazidos para cada Funcionário da Lista de Funcionários (Relatório Principal).
Para que isso aconteça, será usado o Filtro pelo Design do Relatório através da String de Filtro. Dessa forma a geração do sub-relatório acompanha cada linha gerada pelo Relatório Principal, assim, para cada Funcionário listado, será retornado Histórico de Férias referente a ele.
Adicionando o Parâmetro "pCHAPA" diretamente pelo Designer do Relatório, será adicionada a String de Filtro no relatório, condicionando campo CHAPA da Fonte de Dados com o Parâmetro "pCHAPA" criado:
Informações |
---|
O Filtro feito pelo Objeto de Negócio não se aplica para esse caso, uma vez que seria aplicado para toda a geração do Relatório. Por exemplo, filtrando o funcionário '00001', só seria retornado o Histórico de Férias desse Funcionário, não acompanhando outros funcionários listados pelo Relatório Principal. |
...
O componente de Sub-Relatório se encontra na Barra de Controles na lateral esquerda e assim como os outros controles, o componente deve ser arrastado para o Layout para configuração.
...
Nota |
---|
Ao definir o 'Nome' do componente, é alterado apenas a exibição do componente no layout do Designer e não irá refletir na Visualização/Geração do relatório. |
Para melhor exemplificar o uso do recurso, será criado um fluxo de uso a seguir, contendo o seguinte cenário:
Será impresso um relatório contendo como modelo as Versões Publicadas do TReports como Relatório Principal, sendo exibida para cada versão, a Quantidade de Instalações realizadas, que será representado por um sub-relatório. Chegando ao seguinte layout esperado:
Para a criação do Relatório Principal, será configurado o Objeto de Negócio "Histórico de Versões", aplicando um Filtro simples do campo Aplicação igual a um Parâmetro que será informado pelo usuário no momento da geração.
No Designer, além dos campos do Objeto de Negócio, será também No Designer do Relatório Principal, será trazido para o Layout o Componente de Sub-Relatório, referenciando assim um o relatório configurado com sua própria Fonte de Dados e seus Filtros/Parâmetros.
Esse Relatório, referenciado como um sub-relatório, configurado com o Objeto de Negócio "Instalações por Versão", também possui o Filtro da propriedade Aplicação como um Parâmetro, que será vinculado também ao Filtro criado no Relatório Principal.
Seguindo o Modelo de geração do Relatório Final, os dados de Quantidades de Instalações (Sub-Relatório), serão trazidos para cada Versão do Histórico de Versões (Relatório Principal), ou seja, para cada linha do Relatório Principal, será retornado o Sub-Relatório correspondente ao campo Versão do Relatório Principal.
Sendo assim, além do Filtro criado para o Objeto de Negócio, para esse Relatório será configurada também uma Parametrização feita pelo Designer do Relatório, para que a geração do sub-relatório acompanhe cada variação no campo Versão trazida pelo Relatório Principal.
Com o Parâmetro adicionado pelo Designer do Relatório, será adicionada a String de Filtro no relatório, vinculando a condição ao campo de versão da Fonte de Dados com o Parâmetro "Versão" criado:
Na geração individual desse Relatório, deverão ser informados os valores dos parâmetros criados pelo Designer e pelo Filtro do Objeto de Negócio, resultando no relatório de Quantidade de Instalações para a versão em específico.
de Histórico de Férias:
Informações | ||||
---|---|---|---|---|
| ||||
Para passar os parâmetros do relatório pai principal para o sub-relatório, deve ser definido um parâmetro no relatório que está sendo usado como sub-relatório. Ao inserir o sub-relatório no Relatório Principal, é possível selecionar o parâmetro do relatório e um valor que poderão ser passados do Relatório Principal para o parâmetro no sub-relatório. Para esse caso, será definido que:
|
O relatório Final será gerado, sendo informado pelo usuário o Parâmetro de Aplicação, vinculado ao Parâmetro de Objeto de Negócio do Sub-Relatório, e o Parâmetro de Designer acompanha cada versão diferente retornada pelo Relatório Principal.
...
onde no Modelo de Dados usado é trazido o Histórico de Férias do primeiro Funcionário, mas não do segundo, que não possui um histórico de Férias.
...
Informações | |||||||||
---|---|---|---|---|---|---|---|---|---|
| |||||||||
Há duas formas de seguir com o Cadastro de um Relatório para que ele seja disponibilizado na lista do componente para ser usado como um Sub-Relatório.
|
...