Tempo aproximado para leitura: 00:03:00 min
Dúvida
Como utilizar Sub-relatório do RM Reports ?
Ambiente
Cross Segmentos - TOTVS Backoffice (Linha RM) - RM BI - Todas as versões
Solução
O novo gerador de relatórios, RM Reports, possui um recurso similar ao Balizador do gerador Delphi(Sobrepor grupo anterior). Siga os passos abaixo para criar um relatório utilizando o sub-relatório.
- Crie um novo relatório no RM Reports;
-
Como exemplo vamos fazer um relatório de envelope de pagamento para demonstrar a utilização do recurso.
Selecione o Detalhe1, clique com botão direito sobre o mesmo e selecione Inserir Sub - relatório. Ao abrir as propriedades do detalhe existe as opções de Inserir Sub-Relatório sem ligação, para trabalhar de forma independente, e com Ligação para utilizar fontes de dados presentes no relatório.
- Vamos criar um relatório com dados do funcionário para retornar a ficha financeira e seus eventos. No cabeçalho do detalhe1 incluir o Campo Nome da tabela PFUNC , esta será a tabela master do relatório principal, e no detalhe1 adicione os campos Mês e Ano da ficha financeira;
- Certifique - se que os campos que não pertencem a tabela máster estejam com o caminho correto para criar o relacionamento entre as tabelas;
-
Adicione um filtro para retornar um determinado período;
- Crie um novo relatório no RM Reports para podermos utilizar no controle avançado Sub - relatório;
- Crie apenas um Detalhe1 com a tabela Master PFFINANC com os campos desejados;
- Configuramos o tamanho e margem do relatório nas propriedades RptReport como mostrado abaixo, pois estes campos serão uma parte do primeiro relatório;
- Volte ao relatório principal e adicione o controle avançado Sub - Relatório;
- Associe o relatório secundário que foi criado;
- Parametrize o relacionamento entre as tabelas dos relatórios;
Salve e gere o relatório, note que o mesmo exibe os proventos conforme dados do funcionário:
Importante
- Ao utilizar o controle SubRelatório no RM Reports, a numeração de páginas não será apresentada de forma contínua entre o relatório principal e o Subrelatório.
Isso acontece porque o mecanismo de renderização do Reports trata o Subrelatório como uma instância independente de execução, com seu próprio ciclo de paginação. Ou seja:
- O relatório principal e o subrelatório possuem contextos de processamento distintos;
- Cada instância gera sua própria sequência de páginas, sem compartilhamento do contador global;
- Por esse motivo, a propriedade de numeração não é acumulativa entre os dois objetos;
- Ao inserir um sub-relatório, a opção padrão exibida visualmente será sempre Sem ligação. Porém, isso não significa que eles não possam se conversar! A ligação (o relacionamento Pai e Filho) não é feita na tela de inserção do componente, mas sim dentro da própria consulta SQL do sub-relatório, utilizando Parâmetros. Para que os dados do sub-relatório mudem dinamicamente conforme o relatório principal avança, a estrutura da consulta SQL do sub-relatório precisa esperar um parâmetro que virá do relatório principal, conforme exemplo do artigo: Cross Segmentos - Backoffice RM - BI - Passagem de parâmetro em Sub Relatório
Saiba mais
Para mais informações incluindo exemplo prático, acesse o Exemplo Sub - Relatório.
0 Comentários