Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

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.

Informações
titleOBSERVAÇÃ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 devidamente aplicado.


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

A explicação para esse comportamento é:

Informações
iconfalse
titleSQL (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 devidamente preenchido no select gerado.
 


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

Informações
iconfalse
titleSQL (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 devidamente aplicado.

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

A saber, apenas os dados da tabela master de cada detalhe é levado em consideração pelo agrupamento (quebra), nesse caso a tabela FLAN.

Observações: