Páginas filhas
  • RPTMIG00019.1.1 - Executando Fórmulas onde Resultado deve ser Mostrado de Imediato

Versões comparadas

Chave

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

...

Executando Fórmulas onde Resultado deve ser Mostrado de Imediato

Temos exemplos recorrentes de relatórios em formato de boleto, onde a Consulta SQL, vinculada a banda onde o controle de código de barras se encontra, recebe como parâmetro uma fórmula que gera o código de barras (diretamente ou através de uma expressão), fazendo com que o código de barra não gere corretamente.
 

Produto:

TOTVS Reports

Versões:

12.1.x

Ocorrência:

 

Ambiente:

 

Passo a passo:

Conteúdo


Índice
excludeConteúdo|

Consulta SQL Vinculada a Bandas do Relatorio|Galeria Consulta SQL Vinculada a Banda|Galeria Consulta SQL Não Vinculada a Banda

Executando Fórmulas onde Resultado deve ser Mostrado de Imediato

Introdução

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.

1 -

Consulta SQL Vinculada a Bandas do Relatório

 

Executando Fórmulas onde Resultado deve ser Mostrado de Imediato


Existem diversos tipos de fórmulas, com diversos propósitos, vamos tratar, porém, de fórmulas, que necessitam do resultado imediato, para que o relatório apresente os valores devidamente atualizados.Ao se utilizar uma Consulta SQL vinculada a Bandas do Relatório, primeiro precisamos saber:

 

1.1 -

Parâmetros de uma Consulta SQL Vinculada a Bandas do Relatório

Executando Fórmulas com Resultado Imediato (1180)


Vamos utilizar o relatório abaixo como exemploOs parâmetros utilizados na Consulta SQL podem ser vinculados aos seguintes controles:

 

Nome do ControleDescrição
1Parâmetros do RelatórioImage Removed
2Filtros

Image Removed

Image Removed

3Campo Texto (Vinculado a Campos de Tabela)Image Removed
Informações
titleObservação

Qualquer outro controle [Fórmula, Expressão, Texto (Valor Fixo), Totalizador, Variáveis] não funcionará ao servir de parâmetro para uma Consulta SQL vinculada a uma banda do relatório.

O motivo desse comportamento está explicitado na Introdução desse documento.

O Novo Reports foi reestruturado e com isso dividido em duas fases:

  • Preparação dos dados
  • Execução e Impressão dos Controles.

Na fase de Preparação dos dados, apenas os controles de [Campo Texto (Vinculado a Campos de Tabela), Filtros e Parâmetro do Relatório] estão com os valores preenchidos.

O Restante dos controles estarão preenchidos com os valores apenas na fase de Execução e Impressão dos Controles.

 

1.2 - Parâmetros de uma Consulta SQL Não Vinculada a Bandas do Relatório

 

Quando Adicionada uma Consulta SQL, como fonte de dados, onde essa consulta não tem qualquer vinculo com alguma banda do relatório, diversos controles podem ser utilizados como parâmetro:

Nome
1Parâmetros do Relatório
2Filtros
3Campo Texto (Vinculado a Campos de Tabela)
4Fórmula
5Expressão
6Campo Texto (Valor Fixo)
7Totalizador
8Variável
Informações
titleObservação

Quando uma Consulta SQL não está vinculada a uma Banda do Relatório, a mesma é utilizada apenas na 2 Fase (Execução), onde todos os controles já estão com seus devidos valores, diferentemente de uma consulta SQL vinculada a uma banda do relatório que é utilizada na 1 Fase (Preparação) onde apenas alguns controles foram preenchidos, como já citado no item 1.1 Parâmetros de uma Consulta SQL Vinculada a Bandas do Relatório

 

1.3 - Tirando o Vinculo entre uma Consulta SQL e uma Banda

 

Em alguns casos pode ser necessário retirar o vinculo de uma Consulta SQL de uma banda. Quando se deve fazer isso?

Quando o controle a ser utilizado como parâmetro pela Consulta SQL não se encontra na lista de Parâmetros de uma Consulta SQL Vinculada a Bandas do Relatório.
Informações
iconfalse
titleExemplo
Galeria
columns2
excludeimage2016-7-27 15:20:22.png, image2016-7-27 15:18:50.png, image2016-7-27 15:16:51.png, image2016-7-27 15:14:46.png, image2016-7-27 16:59:56.png, image2016-7-27 17:1:39.png, image2016-7-27 16:59:16.png
titleGaleria Consulta SQL Vinculada a Banda

Galeria
columns2
excludeimage2016-7-27 15:20:22.png, image2016-7-27 15:18:50.png, image2016-7-27 15:16:51.png, image2016-7-27 15:14:46.png, image2016-7-27 16:59:56.png, image2016-7-27 17:3:30.png, image2016-7-27 17:0:24.png
titleGaleria Consulta SQL Não Vinculada a Banda

 

RELATÓRIO PRINCIPAL 1180

Image Added


OBS: A fórmula FRM003 atualiza a tabela "Histórico de Disciplinas Concluídas".

Temos os campos necessários para a execução da Fórmula e para a execução da Consulta SQL vinculada a banda "Detalhe2".

Como na versão 1180 gera as informações sobre demanda, ou seja, prepara e executa os controles em um mesmo momento, a fórmula será executada, a tabela Histórico de Disciplinas Concluídas será atualizada, e consequentemente o relatório será gerado com as informações já atualizadas.

 

Image Added

 

1.2 - Executando Fórmulas com Resultado Imediato (1200)


Com a migração da versão 1180 para a 1200, teremos que mudar a estrutura do relatório para que tenhamos o mesmo resultado.

Motivo: Com a Reestruturação do Reports em duas fases, os controles não mais são preparados e executados num mesmo momento, pelo contrário, as fases são bem distintas, onde os dados são recuperados na fase de Preparação e os controlessão executados na fase de Geração.

Por esse motivo, não poderemos executar num mesmo relatório a Fórmula e o restante da informação.

Teremos que dividir esse relatório em dois, onde a fórmula será executada no relatório principal, e o restante da informação, em um sub-relatório (controle), dentro do relatório principal.


RELATÓRIO PRINCIPAL 1200

Image Added

Image Added


OBS: A fórmula FRM003 atualiza a tabela "Histórico de Disciplinas Concluídas".

Temos os campos necessários para a execução da Fórmula e para a execução da Consulta SQL vinculada a banda "Detalhe1", localizada no próprio sub-relatório.

 

Image Added


O sub-relatório deverá conter o restante das informações. Cada relatório é executado por completo; após a execução do relatório principal o sub-relatório também é executado, fazendo com que a Fórmula pertencente ao relatório principal execute primeiro, já que o relatório principal é executado antes, fazendo com que os dados do relatório gerem atualizados.

 

Image Added

 

1.3 - Executando Fórmulas com Resultado Imediato (Outras Considerações)


Caso o relatório modelo da versão 1180 seja executado na versão 12 (a partir da versão 12.1.5), o relatório será gerado normalmente, porém as informações mostradas não estarão atualizadas.

Motivo: A Consulta SQL recuperará os dados antes da execução da Fórmula, fazendo com que os dados mostrados no relatório não sejam os mais atualizados.

 

Image Added

 

Será necessário a execução do relatório uma segunda vez para que a atualização provocada pela execução da fórmula seja percebida.

 

Image Added

 

 

Glossário

 

NomeDescriçãoLink Externo
1BandasRepresenta uma área especifica do relatório, usada para definir como renderizar os controles que pertencem a ela.Mais sobre bandas...
2DetalhesRepresenta um relatório detalhe, ou seja, anexo a um relatório mestre. Deve ser utilizado nos casos onde a fonte de dados do relatório implemente uma relação mestre-detalhe entre o objeto vinculado ao relatório mestre e o objeto vinculado ao relatório detalhe.Mais sobre detalhes...
3Membro de DadosObjetos vinculados as bandas do relatório que provem os dados a serem apresentados no mesmo. 
4Fase de Preparação dos Dados1 Fase do Reports. Se concentra em reunir todas as fontes de dados vinculadas aos controles do relatório e cria uma consulta única que será submetida ao banco de dados. 
5Fase de Execução e Impressão dos Controles2 Fase do Reports. Se concentra em preencher os valores dos controles a serem impressos e a apresenta-los em uma interface como formato de Relatório. 
6Fonte de DadosProvedores de Dados, assim como Tabelas do Banco, Consultas SQL, Providers. 
Informações
titleObservação
Os links externos disponibilizados acima estão em inglês e com teor técnico.

Observações: