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


           Criamos o relatório pai com a seguinte estrutura:

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

           -- RodapédoDetalhe1 - Incluso o 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.

           

    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.

           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.

           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.

           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.

           

    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;

    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.


           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.



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