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. ![](/download/attachments/243630710/image2019-9-9_17-38-39.png?version=1&modificationDate=1568061520243&api=v2&effects=drop-shadow)
Expandir |
---|
title | Obs.: 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. ![](/download/thumbnails/243630710/image2019-9-9_15-55-15.png?version=1&modificationDate=1568055316027&api=v2&effects=drop-shadow) Aviso |
---|
| 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 |
---|
| 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 |
---|
title | Obs.: 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. ![](/download/attachments/243630710/image2019-9-9_17-14-47.png?version=1&modificationDate=1568060088447&api=v2&effects=drop-shadow)
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. ![](/download/attachments/243630710/image2019-9-9_16-50-41.png?version=1&modificationDate=1568058642783&api=v2&effects=drop-shadow)
![](/download/attachments/243630710/image2019-9-9_16-52-47.png?version=1&modificationDate=1568058768503&api=v2&effects=drop-shadow)
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. ![](/download/attachments/243630710/image2019-9-9_18-35-47.png?version=1&modificationDate=1568064948253&api=v2&effects=drop-shadow)
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.
|
|