Árvore de páginas

Í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.

Por se tratar de um relatório como outro qualquer, o sub-relatório possui sua própria fonte de dados com seus filtros e/ou parâmetros.

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:

Conector Nativo
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:       

Filtro do Relatório

O Filtro do Relatório será feito 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.

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 (sub-relatório) desse Funcionário, não retornando outros funcionários listados pelo Relatório Principal.

       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.

São listados na propriedade "Relatório Fonte Url" todos os relatórios aos quais o usuário autenticado possui permissão, sendo Proprietário, Editor ou Leitor.

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.

       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.

Ao fazer a criação de um Relatório através da abertura de Nova Guia pelo componente de Sub-Relatórios, o relatório criado é automaticamente vinculado como um Sub-Relatório pelo componente, no entanto, é necessário que essa alteração seja salva no Designer do Relatório Principal.

       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.

Importante

A definição de Objeto de Negócio deve ser feita pela edição específica do Relatório, acessada através da Listagem Principal de Relatórios.

Dica

Configurando um Sub-Relatório no Protheus: Sub-Relatório – 3 Tabelas

A aplicação conta com o Design de Relatórios da DevExpress, para documentação sobre o uso de seus componentes, acesse: https://docs.devexpress.com/XtraReports/2162/reporting



Produto: Framework

Processo: Relatórios (Novo) - Sub-Relatórios

Versão: 1.2 ou Superiores