Versões comparadas

Chave

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

Índice:


       

Índice
exclude.*ndice:

Objetivo:


       Esta página tem por finalidade descrever a usabilidade do controle Sub-relatório utilizada no Reports.

Introdução:


       O controle Sub-Relatório possibilita a inclusão de um ou mais relatórios na estrutura de um relatório principal.

       Informações úteis sobre o funcionamento de sub-relatórios:

  • A ferramenta não transfere ao sub-relatório o filtro cadastrado no relatório principal. Ele transfere apenas a chave da tabela da banda em que o sub-relatório está inserido.
  • Relatórios filhos baseados em consultas SQL que esperam parâmetros do relatório pai, não podem possuir campos em sua estrutura com a mesma nomenclatura do parâmetro do relatório pai.

       Para exemplificarmos a utilização desse controle chamaremos o relatório principal de relatório “Pai” e qualquer relatório acionado pelo controle Sub-Relatório de relatório “Filho”

Exemplos:


Informações
iconfalse
Deck of Cards
idExemplos
Card
idExemplo 1
labelExemplo 1
titleExemplo 1

       Criamos o relatório pai com a seguinte estrutura:

       Detalhe1 – Tabela de Seções (PSECAO).

       -- RodapédoDetalhe1 - Incluso o controle Sub-Relatório.

Expandir
titleObs.: Para inclusão do controle Sub-Relatório:

       Acesse o menu “Caixa de Ferramentas | Controles Avançados”, selecione o controle “Sub-Relatório”. Clique sobre o controle e mantendo o botão esquerdo do mouse pressionado, arraste o controle para o local desejado da estrutura do relatório.

       

Aviso
iconfalse

Caso o menu “Caixa de Ferramentas” não esteja visível acesse o menu “Exibição | Janelas | Caixa de Ferramentas”.

       Em seguida foi criado o relatório filho com a seguinte estrutura:
       Detalhe1 – Tabela de Funcionários (PFUNC).

       Concluído a elaboração dos relatórios filho é necessário fazer associação de ambos através do controle Sub-Relatório.

Expandir
titleObs.: Como realizar a associação do relatório filho no Sub-Relatório

       Para realizar a associação do relatório filho ao controle Sub-Relatório, clique sobre o controle e acesse suas propriedades pela smart tag, clique sobre a caixa na propriedade "relatório" e em reticências na pesquisa pelo registro.

       Ou selecione o controle e tecle F4 para apresentação das propriedades do controle. Na grade de propriedades selecione “Dados | Relatório”. Na caixa de pesquisas procure pelo código do relatório filho.

       Concluída a escolha do relatório lembre-se de informar qual o “Caminho” (relacionamento entre as tabelas dos relatórios) será utilizado.

       Concluída a associação dos relatórios através do controle Sub-Relatório, basta gera-lo. Ao final do nosso exemplo, no preview, teremos o relatório pai grifado na cor laranja e as informações do relatório filho em azul.

Card
idExemplo 2
labelExemplo 2
titleExemplo 2

       No exemplo seguinte vamos utilizar um relatório com mais bandas e com o relatório filho constituído por consulta SQL a fim de exemplificarmos a passagem de parâmetros do relatório pai para filho.

       No relatório pai utilizaremos a seguinte estrutura;

       - Detalhe1 – Tabela de Seções (PSECAO).

       -- Sub-Detalhe1 – Sem ligação.

       ---- Detalhe2 – Controle Sub-Relatório.

Expandir
titleObs.: Para inclusão do controle Sub-Relatório:

       Acesse o menu “Caixa de Ferramentas | Controles Avançados”, selecione o controle “Sub-Relatório”. Clique sobre o controle e mantendo o botão esquerdo do mouse pressionado, arraste o controle para o local desejado da estrutura do relatório.

       

Aviso
iconfalse

Caso o menu “Caixa de Ferramentas” não esteja visível acesse o menu “Exibição | Janelas | Caixa de Ferramentas”.

       No relatório filho, criaremos uma consulta SQL para retornar as informações do relatório. A consulta SQL terá o seguinte contexto;

Bloco de código
languagesql
SELECT PFUNC.CODSECAO,
       PFUNC.CHAPA,
       PFUNC.NOME,
       PFUNC.SALARIO
FROM   PFUNC ( NOLOCK )
WHERE  PFUNC.CODSECAO = :CODIGO1

       Na consulta SQL acima retornaremos dados dos funcionários de uma determinada seção. Utilizaremos o campo CODIGO1 como parâmetro para definir de qual seção os funcionários litados são correspondentes. Este campo, CODIGO1 (Código identificador da seção) está incluso no relatório pai.


Expandir
titleObs.: Como realizar a associação do relatório filho no Sub-Relatório

       Para realizar a associação do relatório filho ao controle Sub-Relatório, clique sobre o controle e acesse suas propriedades pela smart tag, clique sobre a caixa na propriedade "relatório" e em reticências na pesquisa pelo registro.

       Ou selecione o controle e tecle F4 para apresentação das propriedades do controle. Na grade de propriedades selecione “Dados | Relatório”. Na caixa de pesquisas procure pelo código do relatório filho.

       Diferente do relatório constituído por campo da base, quando fazemos a associação do relatório filho através do controle “Sub-relatório” não é necessário informar o “caminho”, o próprio campo do relatório pai utilizado como parâmetro na consulta SQL do relatório filho fará essa função.

Image Modified

Image Modified



       Concluída a associação do relatório pai com relatório filho através do controle “Sub-Relatório”, basta salvar e gera-lo. Ao final do nosso exemplo, no preview, teremos o relatório pai grifado na cor verde e as informações do relatório filho em vermelha.

Aviso
iconfalse

(aviso)       Reforçamos que relatórios filhos baseados em consultas SQL que esperam parâmetros do relatório pai, não podem possuir campos em sua estrutura com a mesma nomenclatura do parâmetro do relatório pai.

Informações
iconfalse
Informações
iconfalse

Produto: Framework

Informações
iconfalse

Versão: 12.1.XX

Informações
iconfalse

Processo: Sub- Relatórios

Informações
iconfalse
Informações
iconfalse

Status: Finalizado

Informações
iconfalse

Data:  

Informações
iconfalse

Autores:

Aline Cristina Braz de Oliveira

Erlon Cesar Lima De Freitas

Gustavo Naves De Castro

Lorena Roberta de Paiva Braga

Renan Ramos Moura

TIAGO ANDRADE GOMES SILVEIRA

Wesley Avelino De Carvalho