Índice
Objetivo
O objetivo deste documento é mostrar o funcionamento do componente de sub-relatórios, que será configurada diretamente no Designer do Relatório.
Um sub-relatório é definido como parte de outro relatório. A inclusão de sub-relatórios permite a criação de layouts complexos com diferentes partes em um único documento, sendo preenchido usando diferentes fontes de dados.
Qualquer relatório pode ser usado como um sub-relatório, respeitando o acesso definido a ele individualmente.
Demonstração
Para melhor exemplificar o uso do recurso, será criado um fluxo de uso a seguir, contendo o seguinte cenário:
O Conector utilizado, referente a um Provedor Nativo, possui os Objetos de Negócio: Funcionários e o Histórico de Férias desse funcionário, pertencentes à área Simulação.
Os dados demonstrados, que serão usados para criação dos relatórios, estão disponíveis no seguinte endereço:
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. Para chegar no resultado esperado, os Objetos de Negócio a serem usados se relacionam através do campo "Chapa", que será parametrizado e será responsável por fazer a relação entre o sub-relatório com o Funcionário listado pelo Relatório Principal.
O primeiro passo será criar o Relatório que será referenciado como um Sub-Relatório. Para ele, será configurado com o Objeto de Negócio Histórico de Férias.
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 passagem de valores do relatório principal para o sub-relatório, deve ser definido um parâmetro. Para que isso aconteça, será necessário:
- Adicionar o Parâmetro "pCHAPA" diretamente pelo Designer do Relatório
- Adicionar a String de Filtro no relatório, condicionando campo CHAPA da Fonte de Dados com o Parâmetro "pCHAPA" criado:
Na geração individual desse Relatório, deve ser informado o valor dos parâmetros criado pelo Designer, resultando no relatório de Histórico de Férias referente ao Funcionário especificado:
O próximo passo será criar o Relatório Principal, escolhendo o Objeto de Negócio Funcionários. O relatório será uma lista simples de Funcionários e não conta com a adição de Filtros ou Parâmetros.
No Designer do Relatório Principal, será trazido para o Layout o Componente de Sub-Relatório, referenciando assim o relatório de Histórico de Férias:
O componente de Sub-Relatório se encontra na Barra de Controles na lateral esquerda do Designer e assim como os outros controles, deve ser arrastado para a banda de detalhes do Layout para configuração.
Selecionando o componente, na Barra de Propriedades, na lateral direita, encontra-se a propriedade "Relatório Fonte Url" onde será selecionado o relatório a ser vinculado ao relatório principal como um Sub-Relatório.
Ao inserir o sub-relatório no Relatório Principal, é possível fazer a ligação de um valor do Relatório Principal que deverá ser passado ao Parâmetro do sub-relatório.
Para esse caso, será aplicado da seguinte forma:
- O Parâmetro pCHAPA do sub-relatório será vinculado ao campo Chapa do Relatório Principal.
O relatório Final será gerado, preenchendo para cada linha do Relatório Principal, o Sub-Relatório referente a essa linha.
No Modelo de Dados usado é trazido o Histórico de Férias do primeiro Funcionário, trazendo os campos vazios para o segundo funcionário, que não possui um histórico de Férias:
Acessando um Relatório através do Componente Sub-Relatório
O Cadastro de um Relatório para ser usado como um Sub-Relatório pode ser feito diretamente no componente de Sub-Relatório.
Com o duplo-clique no componente que não está preenchido com nenhum sub-relatório, será aberta uma nova aba no Designer completamente vazia, onde ao clicar em Salvar, será aberta uma janela para informar o nome do Novo Relatório.
Qualquer relatório referenciado como um sub-relatório pode ser acessado pelo duplo-clique do componente. O Relatório acessado dessa forma, implica apenas em uma nova aba dentro do Designer. Isso significa que qualquer outro fluxo selecionado, como Informações Gerais ou configuração de Objeto de Negócio, será referente ao Relatório Principal em edição.