Ordenação / Quebra

Produto:

TOTVS Reports

Versões:

12.1.x

Ocorrência:

Ordenação / Quebra Após Migração

Ambiente:

 

Passo a passo:

Introdução


 

Com o advento da migração do TOTVS Reports da versão 11.8x para as versões superiores a versão 12.1.4, muitas alterações foram feitas principalmente na geração sobre demanda dos dados vinculados a cada componente presente no relatório.

Em relatórios da versão 11.8x, por exemplo, a geração sobre demanda dos dados era realizada no momento da impressão de cada componente, ao contrário dos das versões mais atuais (12.1.5 ou superiores), onde a geração dos dados é feita através de apenas uma consulta SQL (Fase de Preparação), que é gerada a partir das tabelas e consultas SQL vinculadas ao relatório.

Ordenação / Quebra


 

O agrupamento de dados no TOTVS Reports da versão 12.1.5 ou superiores é realizado da seguinte maneira:

1 - O campo que vai ser a referência para o agrupamento (quebra), no caso IDBOLETO deverá estar contido na estrutura do relatório. Conforme a imagem abaixo:


Imagem 1 - Campo FLAN.IDBOLETO está contido no detalhe onde o agrupamento será aplicado.


Imagem 2 - O agrupamento pelo campo FLAN.IDBOLETO foi aplicado com sucesso.

OBSERVAÇÃO

Caso se utilize um campo IDBOLETO, por exemplo, porém de tabela diferente (FBOLETO.IDBOLETO, em vez de FLAN.IDBOLETO ), o agrupamento não será aplicado. Conforme imagem abaixo:

 
Imagem 3 - O campo FLAN.IDBOLETO não está contido na estrutura do relatório, em vez disso, o campo FBOLETO.IDBOLETO está
presente em seu lugar, fazendo com que o agrupamento não seja aplicado.


Imagem 4 - O agrupamento pelo campo FLAN.IDBOLETO não foi aplicado.

Comportamento (Agrupamento Aplicado Corretamente)


 

SQL (Agrupamento Aplicado)

SELECT FLAN.IDBOLETO,FLAN.CODCOLIGADA,FLAN.IDLAN FROM FLAN FLAN (NOLOCK)

WHERE (FLAN.CODCOLIGADA = 1)

Observe que todos os campos da consulta apresentada acima (IDBOLETO, CODCOLIGADA, IDLAN) são pertencentes à tabela master FLAN. O Agrupamento é aplicado corretamente porque o campo referencia de agrupamento (quebra) foi preenchido no select gerado.
 


Imagem 5 - Dados Resultantes do SQL (Agrupamento Aplicado).

Internamente uma estrutura de dados é montada, vinculada a tabela FLAN, são utilizados os dados provenientes dessa tabela, para aplicar o agrupamento (quebra).


Imagem 6 - Estrutura de dados interna utilizada pelo agrupamento (quebra)

Comportamento (Agrupamento Não Aplicado)


 

SQL (Agrupamento Não Aplicado)

SELECT FLAN.CODCOLIGADA,FLAN.IDLAN,FBOLETO.IDBOLETO AS IDBOLETO_1965598223 FROM FLAN FLAN (NOLOCK) LEFT OUTER JOIN FLANBOLETO (NOLOCK) ON (FLANBOLETO.CODCOLIGADA = FLAN.CODCOLIGADA AND FLANBOLETO.IDLAN = FLAN.IDLAN ) LEFT OUTER JOIN FBOLETO (NOLOCK) ON (FBOLETO.CODCOLIGADA = FLANBOLETO.CODCOLIGADA AND FBOLETO.IDBOLETO = FLANBOLETO.IDBOLETO )

WHERE (FLAN.CODCOLIGADA = 1)

Observe que os campos (CODCOLIGADA e IDLAN) são pertencentes a tabela FLAN, porém o campo IDBOLETO é pertencente a tabela FBOLETO.


Imagem 6 - Dados Resultantes do SQL (Agrupamento Não Aplicado).

Internamente duas estruturas de dados são montadas, uma para a tabela FLAN e outra para a tabela FBOLETO, porém o agrupamento (quebra) utiliza os dados provenientes apenas da tabela master FLAN (tabela vinculada ao detalhe), fazendo com que a quebra não utilize os valores provenientes da tabela FBOLETO, fazendo com que o agrupamento (quebra) não seja aplicado.


Imagem 7 - Estrutura de dados interna utilizada pelo agrupamento (quebra)

Conclusão


 

Conforme o que foi explicado anteriormente, ao configurar a Propriedade Ordenação / Quebra, adicione o campo referência do agrupamento, no caso explicado (FLAN.IDBOLETO);


Imagem 8 - No Cabeçalho do Detalhe escolha o campo referência de agrupamento.

Lembre-se de adicionar o campo de referência de agrupamento na estrutura do relatório.

O campo em vermelho é o FBOLETO.IDBOLETO (apesar de ser o mesmo campo IDBOLETO, ele se encontra em uma tabela que não é master, não o utilize, pois a quebra não será aplicada)


Imagem 9 - Adicionar o campo referencia de agrupamento (FLAN.IDBOLETO) na estrutura do relatório.

Observações: