- Criado por Jefferson Duarte Rodrigues, última alteração em 28 nov, 2022
Índice:
Introdução
Este documento tem como objetivo explicar a ordem de execução das bandas e dos controles no RM Report. Antes de mais nada precisamos entender o que é Fonte de Dados, Bandas e Controles. Para depois entendermos o momento de execução de cada um deles.
A Fonte de Dados, como o próprio nome sugere, são os dados que serão impressos em um relatório. Esses dados podem ser oriundos de Tabela da Base, Sentença SQL ou Provedor de Dados.
Fonte de Dados: Tabela da Base | Fonte de Dados: Sentença SQL | Fonte de Dados: Provedor de Dados |
---|---|---|
|
|
|
As bandas são faixas que podem ser inseridas no layout do relatório. São exemplos de bandas: Cabeçalho de Página, Detalhe, Rodapé de Página, Cabeçalho do Detalhe, Rodapé do Detalhe.
Os controles de relatório são elementos básicos que você pode arrastar e soltar nas bandas (faixas) do relatório, associar a fonte de dados, organizar e personalizar para construir um layout de relatório. São exemplos de controles: Texto, Totalizador, Expressão, Fórmula, entre outros.
Entendendo o Momento da Extração da Fonte de Dados
A extração da fonte de dados é realizada e mantida em memória antes mesmo da renderização da banda em que está vinculada. No exemplo ilustrado abaixo temos uma fonte de dados Tabela da Base vinculada à Banda de Detalhe1.
Nas propriedades da Banda de Detalhe conseguimos ver se ela possui uma ligação de Fonte de Dados. Neste exemplo a fonte de dados é a tabela de Funcionários (PFUNC).
Como a extração da Fonte de Dados acontece em um momento anterior à impressão da Banda de Detalhe (vinculada a fonte de dados), podemos utilizar suas informações em uma formatação condicional, por exemplo para colorir o fundo do detalhe de acordo com um determinado valor.
Exemplo de uma formatação condicional utilizando um campo da Fonte de Dados:
Aplicando a formatação Condicional, apenas o detalhe do funcionário de chapa 00001 ficou com o fundo vermelho.
Entendendo a Ordem de Execução dos Controles
Inicialmente os controles são impressos levando em consideração a ordem que os mesmos foram adicionados no layout do relatório, mas esta ordem pode ser alterada através do menu Ordenação de Controles. Essa ordem é muito importante, pois um Controle A, por exemplo, pode utilizar dados do Controle B e neste caso temos que garantir que o Controle B seja executado antes do Controle A. Isso é possivel através do recurso menu Ordenação de Controles.
Ao contrário da Fonte de Dados, os controles são executados em um momento posterior à execução da Banda de Detalhe.
Vamos imaginar o seguinte cenário para facilitar o entendimento: Temos um relatório que lista os dependentes de cada funcionário.
- Na Banda de Detalhe de Funcionários temos um controle Expressão_Tempo_Serviço que calcula o tempo de serviço do funcionário;
- Criamos uma Formatação condicional FormataçãoCondicional1 que utiliza o controle Expressão_Tempo_Serviço.
- Não podemos aplicarmos a Formatação Condicional FormataçãoCondicional1 na Banda de Detalhe de Funcionários, pois a formatação utiliza o controle Expressão_Tempo_Serviço que está na Banda de Detalhe de Funcionários.
- Podemos aplicar a Formatação Condicional FormataçãoCondicional1 na Banda de Detalhe de Dependentes, pois esta banda é impressa após o controle Expressão_Tempo_Serviço ser executado.
Exemplo de uma formatação condicional utilizando um Controle:
Após aplicar a formatação condicional na Banda de Detalhe de Dependentes apenas dependentes de funcionários com 32 anos ou mais de serviço foram coloridos de amarelo corretamente.
Entendendo a Ordem de Execução das Bandas
Abaixo segue exemplo de um relatório que lista os funcionários e seus respectivos dependentes.
A ordem de execução das bandas é a seguinte:
- CabeçalhodePágina1
- CabeçalhodoDetalhe1
- Detalhe1
- SubDetalhe1
- CabeçalhodoDetalhe2
- Detalhe2
- RodapédePágina1
Obs: No momento da impressão de cada Banda de Detalhe os controles contidos nela são impressos na ordem explicada no tópico Entendendo a Ordem de Execução dos Controles.
Produto: Framework
Versão: 12.1.34
Processo: Ordem de Execução dos Controlese Bandas