Esta funcionalidade visa possibilitar ao Gen.te Relata - Gerador de Relatórios criar relatórios mais complexos, sem, contudo, exigir muito esforço na criação dos mesmos. Isto é possível porque o relatório principal é dividido em partes menores que depois se inter-relacionam, ou seja, o que teremos é um relatório principal agregando o resultado de outros relatórios menores e mais específicos.
O processo de criação de um sub-relatório é exatamente o mesmo de um relatório normal. A mudança fica por conta da utilização de sub-relatórios.
A inserção de sub-relatórios ao relatório denominado de principal é feita através do objeto disponível na barra de ferramentas. Ao inserir o objeto, uma janela será aberta solicitando a identificação do arquivo contendo o relatório a ser usado.
Antes de o relatório ser Publicado ou Visualizado no Gen.te Relata - Gerador de Relatórios, é necessário fazer a configuração dos relacionamentos entre o relatório principal e os sub-relatórios, para que os dados gerados pelo sub-relatório sejam condizentes com o relatório principal. Isso é feito através da tela de Configuração dos Relacionamentos dos Sub-relatórios. Esta tela de configuração de relacionamentos pode ser apresentada pelo duplo clique em algum sub-relatório, pela opção Relacionamentos do menu de contexto (clique com botão direito do mouse) de algum sub-relatório, pela barra de ferramentas e ainda pelo menu Exibir, opção Relacionamentos sub-relatórios.
Um mesmo sub-relatório pode ser utilizado várias vezes dentro de um mesmo relatório principal, neste caso eles serão identificados por uma numeração crescente adicionada ao nome. Essa prática é útil quando um determinado sub-relatório pode gerar diferentes informações para diferentes valores de Seleção de Registros.
Os objetos de sub-relatórios possuem alguns comandos próprios em seu menu de contexto (clique com botão direito do mouse):
Relacionamentos - Aciona a tela de Configuração dos Relacionamentos dos Sub-relatórios e já apresenta tal sub-relatório selecionado na janela;
Sincronizar - Atualiza o sub-relatório perante qualquer modificação que o arquivo deste tenha sofrido desde a sua inserção no relatório;
Salvar arquivo - Permite salvar o sub-relatório como outro arquivo de relatório;
Editar- Permite abrir o arquivo do sub-relatório para edição, neste caso fechando o relatório principal. As alterações que por ventura venham a ocorrer no arquivo aberto do sub-relatório não são refletidas diretamente no relatório principal que foi fechado, para que isso ocorra deve-se abrir novamente o relatório principal e no sub-relatório em questão recorrer ao comando Sincronizar.
Atenção
Os objetos de sub-relatórios possuem uma característica específica de impressão em relação aos outros objetos. Na impressão de cada seção, esses objetos são impressos apenas após a impressão dos demais objetos, independente da sequência de impressão previamente definida.
Os sub-relatórios existentes dentro de sub-relatório não são processados, ou seja, caso algum arquivo de sub-relatório inserido no relatório principal também possua objetos de sub-relatório, estes últimos serão ignorados.
As Propriedades Específicas do Sub-relatório/Subleiaute são: Altura, Imprimir Após, Processar Quando, Quebra Linha CSV e Quebra Página Após.
Altura é utilizada apenas para a impressão de sub-relatórios sem registros processados, caso contrário, a altura será variável de acordo com a estrutura do sub-relatório e a quantidade de registros processados;
Imprimir Após é utilizada para determinar a sequência de impressão não paralela de sub-relatórios. Essa propriedade oferece uma lista de sub-relatórios existentes na mesma seção para que possam ser selecionados.
Exemplo
Considere o caso de existirem três sub-relatórios chamados de XXX, YYY e ZZZ.
Para imprimir o sub-relatório YYY só depois da impressão de XXX, seleciona-se XXX na propriedade de Imprimir Após de YYY.
Para imprimir o sub-relatório ZZZ só depois da impressão de YYY, seleciona-se YYY na propriedade de Imprimir após de ZZZ.
Processar Quando determina quando o sub-relatório será processado. Os valores possíveis para esta propriedade são Seção Visível e o valor Sempre
Seção Visível onde o sub-relatório é processado apenas se a seção estiver visível, esse é o valor padrão dessa propriedade.
Sempre que indica que o sub-relatório será processado mesmo quando a seção, aonde ele está presente, estiver invisível.
Atenção
Relatórios processados em seções invisíveis não imprimem nenhuma informação, apenas processam e retornam valores.
Adicionalmente às opções Seção Visível e Sempre, é possível determinar através de uma fórmula condicional, quando um sub-relatório será processado. Assim, se o resultado desta fórmula for Verdadeiro e a condição Sempre Visível ou Sempre for satisfeita, o sub-relatório será processado, caso contrário, o seu processo será inibido.
Para criar uma fórmula condicional, basta clicar sobre o botão , que apresenta a funcionalidade Editor de Fórmulas para que a fórmula possa ser criada ou editada.
Para remover uma fórmula condicional existente, clique sobre o botão .
Na geração do relatório em formato CSV, a forma de impressão do relatório principal é diferente da forma de impressão dos sub-relatórios. Assumindo a visualização do arquivo CSV no formato de planilha, como no Excel, o relatório principal imprime cada seção em uma linha enquanto que os sub-relatórios têm suas informações impressas todas na mesma linha em que forem iniciados, independente da quantidade destas informações.
Quebra de Linha CSV permite que seja aplicado no sub-relatório o mesmo comportamento de quebras de linhas por seção que o relatório principal aplica, incluindo a impressão das informações a partir da primeira coluna quando a quebra de linha ocorrer. Além disso, quando o sub-relatório com esta propriedade não for processado, por não retornar registros ou por não obedecer à eventual regra de fórmula condicional da propriedade Processar Quando, uma quebra de linha ocorrerá para indicar o ponto de processamento do sub-relatório.
Quebra Página Após força uma quebra de página após o processamento de tal sub-relatório, desde que não exista outro sub-relatório ainda sendo processado (ainda sendo impresso). Para sub-relatórios dentro de outros sub-relatórios está propriedade é suprimida, ou seja, mesmo que o sub-relatório dentro de outro sub-relatório estiver marcado para quebrar página, ele não quebrará. Está propriedade só é válida para sub-relatórios presentes diretamente no relatório principal.
A configuração da propriedade de Quebra página pode ser melhor orientada se realizada em conjunto com a configuração Imprimir após.
Atenção
Aos objetos de sub-relatório NÃO são permitidas configurações de Fontes e Cor de Fundo, mas as configurações de fontes e cores feitas aos objetos e às seções dentro do arquivo do sub-relatório serão mantidas;