Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Índice


       

Índice
exclude.*ndice
printablefalse

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.

Dica
iconfalse

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


     

...

       Na Barra de Propriedades, na lateral direita, é onde será configurado o Sub-Relatório, sendo na propriedade "Relatório Fonte Url" onde será selecionado o relatório a ser vinculado ao relatório principal como um Sub-Relatório.

 Image Removed

Informações

São listados na propriedade Relatório Fonte Url todos os relatórios aos quais o usuário logado possui permissão, sendo Proprietário, Editor ou Leitor do relatório em questã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.

Demonstração

...

 Para melhor exemplificar o uso do recurso, será criado um fluxo de uso a seguir, contendo o seguinte cenário:

   

...

Associação do Sub-Relatório e Vínculo de Parâmetros

       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 trazido para o Layout o Componente de Sub-Relatório, referenciando assim um relatório configurado com sua própria Fonte de Dados e seus Filtros/Parâmetros.

Image Removed

       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:

Image Removed

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.

Image Removed

...

iconfalse
titleVínculo de Parâmetros

Para passar os parâmetros do relatório pai para o sub-relatório, deve ser definido um parâmetro no relatório que está sendo usado como sub-relató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:

Bloco de código
titleConector Nativo
https://run.mocky.io/v3/bec2d116-8298-4ff5-93c2-24a340ed0901

Image Added    

       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:       

Image Added

Informações
titleFiltro 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:

Image Added

       

       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:

Image Added

       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.

Informações

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.

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.

       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.

...

Image Added

       O relatório Final será gerado

...

Image Removed

Adicionando um Sub-Relatório

...

iconfalse

, 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:

Image Added


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

...

iconfalse
  • Cadastro pelo fluxo de Novo Relatório no Menu Inicial do TReports.

       Nesse caso, pela Listagem de Relatórios, o fluxo a seguir será conforme qualquer outra criação de Relatório, seguindo para a definição de Objeto de Negócio e Filtros e Configuração do Layout pelo Designer

...

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.

Dica

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.

...

Nota
titleImportante

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.

Informações
titleDica

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

Informações

A aplicação conta com o Design de Relatórios da

...

DevExpress, para documentação sobre o uso de seus componentes, acesse:

...

Informações
iconfalse
Informações
iconfalse

Produto: Framework

Informações
iconfalse

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

Informações
iconfalse

Versão: 1.2 ou Superiores

Informações
iconfalse
Informações
iconfalse

Status: Concluído

Informações
iconfalse

Data:  

Informações
iconfalse

Autores:

Aline Cristina Braz de Oliveira

Carlos Philippe de Farias Marques

Cesar Henrique Silva Rodrigues_ 

Diogo Damiani Ferreira

Usuário desconhecido (fernando.souza)